darcs

Issue 424 Problem with darcs pull hanging or maybe infinite loop??

Title Problem with darcs pull hanging or maybe infinite loop??
Priority bug Status resolved
Milestone Resolved in
Superseder pull => hangs (1.0.8)
View: 425
Nosy List darcs-devel, dmitry.kurochkin, kowey, markstos, netrek, thorkilnaur, tommy
Assigned To droundy
Topics

Created on 2007-03-31.00:08:56 by netrek, last changed 2009-08-27.14:06:27 by admin.

Messages
msg1554 (view) Author: netrek Date: 2007-03-31.00:08:38
I am running darcs on a remote shell account using ssh. I am not root
on this machine just a regular user and darcs wasn't installed (Debian
system) so I downloaded the latest darcs Linux x86 binary I coud find,
darcs1.0.8, and ran that but darcs hangs when I try to download
patches.

The repo I am trying to update needs 490 new patches pulled.

This machine is sitting on a T1 university line so bandwidth and
latency shouldn't be an issue. I used top to verify no one else was
eating up all the cpu or memory.

When I run darcs in Debian on my home machine (dialup) there is no
problem though it does take a long time for it to pull all the patch
information if there are many to do however it does eventually get
them all.

I'm using:
~/darcs/darcs1.0.8  pull http://james.tooraweenah.com/darcs/netrek-server/

After I execute this command it takes a good 5 minutes before it comes
back telling me how many patches it's found! This seems a bit slow for
a machine on a T1 line.

Is there some race condition in darcs?

When I did "a" to grab all 490 patches it hung. It did work when I
grabbed just 10 patches but I timed it and it took 9 minutes! And each
of these patches are very small, as in only a few kb each.

I also tried:
 LD_LIBRARY_PATH=~/darcs ~/darcs/darcs1.0.8 pull
http://james.tooraweenah.com/darcs/netrek-server/

But that didn't seem to result in any increase in the speed.

Another issue, I have not changed any files in this repo (neither
manually nor did I record any changes) yet it is saying my repo is in
an inconsistent state! Here is the output:

Shall I pull this patch? (11/490)  [ynWvpxqadjk], or ? for help: d
We have conflicts in the following files:
./Vanilla/ChangeLog ./Vanilla/PROJECTS ./Vanilla/ntserv/genspkt.c
./Vanilla/robotd/decide.c ./Vanilla/robotd/socket.c
./Vanilla/robotd/update_players.c ./Vanilla/robotd/util.c

darcs failed:  user error (Error applying patch to recorded.
Running 'darcs repair' on the target repository may help.
./Vanilla/aclocal.m4: openBinaryFile: does not exist (No such file or
directory))
Your repository is now in an inconsistent state.
This must be fixed by running darcs repair.

How can I fix my repo? I've never used darcs repair before.

Here is some more info:

chaos@bismuth:~/www/netrek-server$ ~/darcs/darcs1.0.8 --exact-version
darcs compiled on Jul 18 2006, at 15:08:59
# configured Tue Jul 18 15:03:25 JST 2006
./configure --with-static-libs

Context:

[TAG 1.0.8
Tommy Pettersson <ptp@lysator.liu.se>**20060616160213]

chaos@tellurium:~/www$ uname -a
Linux tellurium.club.cc.cmu.edu 2.6.12.6-xenu #1 Fri Dec 30 14:15:09
EST 2005 i86 GNU/Linux

Here are the strace results:

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 51.05   15.314900          34    445415           rt_sigprocmask
 20.57    6.171687       12393       498           waitpid
 9.22    2.767199        5568       497           fork
 6.52    1.957659          32     61350        21 sigreturn
 5.70    1.710863        3355       510         6 unlink
 5.67    1.701966        1123      1516         7 open
 0.39    0.116336          47      2485         1 read
 0.24    0.073289          49      1509           close
 0.14    0.040587          16      2531           fstat64
 0.07    0.019928          10      2030           fcntl64
 0.05    0.015212          10      1476           _llseek
 0.05    0.014753         151        98         1 lstat64
 0.05    0.014592          14      1060      1011 ioctl
 0.05    0.013914          26       529           getcwd
 0.04    0.012338          25       493           old_mmap
 0.03    0.009270          19       494           munmap
 0.03    0.008079          72       112        64 stat64
 0.03    0.007730          15       503           getpid
 0.02    0.007299          14       511           gettimeofday
 0.02    0.005116        1279         4         2 rmdir
 0.01    0.004180        2090         2           rename
 0.01    0.003922         123        32           chdir
 0.01    0.003346        1673         2           mkdir
 0.01    0.001937         969         2           ftruncate64
 0.01    0.001839         920         2           chmod
 0.01    0.001834          37        50           write
 0.00    0.001335        1335         1           link
 0.00    0.000707          35        20           mmap2
 0.00    0.000337          84         4           getdents64
 0.00    0.000133          10        14           rt_sigaction
 0.00    0.000081           9         9           select
 0.00    0.000041          10         4           times
 0.00    0.000031          16         2           uname
 0.00    0.000026          13         2           setitimer
 0.00    0.000025          13         2           brk
 0.00    0.000007           7         1           vfork
------ ----------- ----------- --------- --------- ----------------
100.00   30.002498                523770      1113 total

The strace logfile was 68 MB (1.3 million lines!) after running darcs
for nearly 1 hour to pull the 409 patches! I killed the job. It looks
like darcs is doing something weird since when I again did the darcs
pull to see if it grabbed any of the 409 patches it had not done any
of them in that whole hour! So either something very bad happened or
darcs pulls all patches before it applies any of them or is not
keeping track of the patches it already is aware of which need to be
pulled if the job is interrupted. Perhaps darcs could dynamically
cache this stuff? I've attached the first and last 1,000 lines from
the strace logfile.

The machine has a relatively fast 1 GHz CPU, 1 GB of RAM, very low system load.

If it isn't connection speed, and my memory and cpu are fine then what
is the bottleneck? I have used CVS to pull significantly bigger repos
and it took no where near 50 minutes, and darcs ended up not even
pulling anything.

Regards,
Zach
msg1556 (view) Author: droundy Date: 2007-03-31.00:22:07
Duplicate, resolving.
msg2604 (view) Author: markstos Date: 2008-01-19.17:41:07
dupe of issue425, which was just resolved.
History
Date User Action Args
2007-03-31 00:08:56netrekcreate
2007-03-31 00:22:08droundysetstatus: unread -> unknown
nosy: droundy, tommy, beschmi, kowey, netrek
messages: + msg1556
2007-03-31 00:22:49droundysetstatus: unknown -> resolved
nosy: droundy, tommy, beschmi, kowey, netrek
2007-08-26 09:32:40koweysetstatus: resolved -> duplicate
nosy: droundy, tommy, beschmi, kowey, netrek
2008-01-19 17:41:08markstossetstatus: duplicate -> resolved-in-unstable
nosy: + markstos
superseder: + pull => hangs (1.0.8)
messages: + msg2604
2008-01-22 15:12:45droundysetnosy: droundy, tommy, beschmi, kowey, markstos, netrek
assignedto: droundy
2008-09-04 21:30:41adminsetstatus: resolved-in-unstable -> resolved
nosy: + dagit
2009-08-06 17:43:28adminsetnosy: + jast, Serware, dmitry.kurochkin, darcs-devel, zooko, mornfall, simon, thorkilnaur, - droundy, netrek
2009-08-06 20:40:24adminsetnosy: - beschmi
2009-08-10 22:02:30adminsetnosy: + netrek, - darcs-devel, zooko, jast, Serware, mornfall
2009-08-10 23:59:50adminsetnosy: - dagit
2009-08-25 17:56:35adminsetnosy: + darcs-devel, - simon
2009-08-27 14:06:27adminsetnosy: tommy, kowey, markstos, darcs-devel, netrek, thorkilnaur, dmitry.kurochkin