Comment 34 for bug 405251

Revision history for this message
Frits Jalvingh (fjalvingh) wrote :

Pull and push performance is still abyssmal. I'm currently waiting for a trivial push containing a single small commit (the repo is one commit behind). It has transferred 15MB and is now pausing for no appearent reason; I'm already waiting for 15 minutes. The amount of data changed is very, very small and nowhere near the 15MB transferred.
Yesterday I attempted a pull of a week's worth of commits; it took 4 hours and transferred some 300MB of data - the evening was a total loss. My colleagues work hard but *not* that hard 8-/.

Actually, appearently the pull will never complete. It transferred 15MB then hangs. I did an strace on the process; it hangs on a recvfrom(4); FD(4) is the TCP/IP connection to the smart server (bzr 14087 jal 4u IPv4 884639 TCP 172.22.128.28:41612->192.168.0.110:4155 (ESTABLISHED)]. I did an strace on that smart server too to see what it was doing:
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAKE, 1) = 1
poll([{fd=4, events=POLLIN}], 1, 1000) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAKE, 1) = 1
poll([{fd=4, events=POLLIN}], 1, 1000) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAKE, 1) = 1
poll([{fd=4, events=POLLIN}], 1, 1000) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x937a5a8, FUTEX_WAIT, 0, NULL) = 0
futex(0x937a5a8, FUTEX_WAKE, 1) = 1
poll([{fd=4, events=POLLIN}], 1, 1000) = 0

so essentially it seems to check if data is arriving and it's doing nothing at all. I checked the target directory and it is locked by that smart server process; and it was locked by my push (I checked that beforehand). It seems like a nice deadly embrace: the server is waiting for data from the client and vice versa.

I am ready to start crying now.