monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] hang on Win32/MinGW with sync file:


From: Stephen Leake
Subject: [Monotone-devel] hang on Win32/MinGW with sync file:
Date: Sun, 02 Dec 2007 12:41:33 -0500
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/22.1 (windows-nt)

I have a reproducible hang on Win32/MinGW during a sync file:. I've
saved copies of the two databases.

The command is:

mtn --debug --db /Gnu/monotone/tests/temp_2/gds-local-1.db sync \
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db

Here's the last couple of transactions from the debug output:

mtn: processing 0 byte input buffer from peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db
mtn: processing refine cmd for cert node at level 1
mtn: queueing refinement query of revision node '08', level 1
mtn: queueing refinement query of revision node '09', level 1
mtn: queueing refinement query of cert node '30', level 2
mtn: queueing refinement query of revision node '0a', level 1
mtn: queueing refinement query of cert node '60', level 2
mtn: queueing refinement query of revision node '0d', level 1
mtn: queueing refinement response of cert node '00', level 1
mtn: queueing refinement query of revision node '0e', level 1
mtn: wrote 72 bytes to fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: wrote 92 bytes to fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: queueing refinement response of revision node '', level 0
mtn: i/o probe with 0 armed
mtn: wrote 333 bytes to fd 1944 (peer stdio)
mtn: i/o probe with 0 armed
mtn: wrote 353 bytes to fd 1944 (peer stdio)
mtn: wrote 313 bytes to fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: WaitForSingleObject(,21600000)
mtn: read 686 bytes from fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: ticks: >="bytes in"/1024, <="bytes out"/1024, r="revs in"/1, R="revs out"/1
mtn: >
mtn: processing 353 byte input buffer from peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db
mtn: processing refine cmd for cert node at level 1
mtn: queueing refinement query of cert node '31', level 2
mtn: queueing refinement query of cert node '61', level 2
mtn: queueing refinement query of cert node 'c1', level 2
mtn: queueing refinement response of cert node '01', level 1
mtn: wrote 72 bytes to fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: processing 0 byte input buffer from peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db
mtn: processing refine cmd for cert node at level 1
mtn: queueing refinement query of cert node '02', level 2
mtn: queueing refinement query of cert node '32', level 2
mtn: queueing refinement query of cert node 'a2', level 2
mtn: queueing refinement query of cert node 'b2', level 2
mtn: queueing refinement query of cert node 'c207', level 3
mtn: queueing refinement query of cert node 'f2', level 2
mtn: queueing refinement response of cert node '02', level 1
mtn: wrote 72 bytes to fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: wrote 72 bytes to fd 1952 (peer 
file:/Gnu/monotone/tests/temp_2/gds-remote-1.db)
mtn: i/o probe with 0 armed
mtn: wrote 273 bytes to fd 1944 (peer stdio)
mtn: i/o probe with 0 armed
mtn: wrote 273 bytes to fd 1944 (peer stdio)
mtn: i/o probe with 0 armed
mtn: wrote 313 bytes to fd 1944 (peer stdio)
mtn: i/o probe with 0 armed
(hang - aborted with ^c)


The debug from both processes is mixed together here. read/write to
'peer stdio' is the remote process, 'file:...' is the local process.

Specifying '--dump' instead of '--debug' didn't work; apparently
aborting with ^c doesn't trigger the dump.

I can run the "local" process in the debugger; the hang is in
netxx_pipe.cc Netxx::PipeStream::write 

I'm not clear where the "remote" process is at that point. 'attach' in
gdb doesn't seem to work in MinGW. I'd guess it's waiting to be woken
up, but for some reason doesn't realize there is data to read.

Any hints on debugging this?

-- 
-- Stephe




reply via email to

[Prev in Thread] Current Thread [Next in Thread]