In article <[EMAIL PROTECTED]>, Tanaka Akira <[EMAIL PROTECTED]> writes:
> I found that cvs-1.11.2 server and cvs-1.11.1p1 client hangs up when > communication is compressed by -z. I investigated the problem by strace. I concluded that cvs-1.11.2 server waits EOF on a connection after deflated stream is terminated but cvs-1.11.1p1 client doesn't close it after terminating deflated stream. So they waits EOF from each other and they hangs. Since cvs-1.11.1p1 server doesn't waits EOF, cvs-1.11.1p1 client/server has no problem. Since cvs-1.11.2 client shutdown a connection just after deflated stream termination, cvs-1.11.2 client/server has no problem. The change is not backward compatible. Is it intentional? It is changed by introducing stdio_buffer_shutdown between 2001-05-03 00:00:00 GMT and 2001-05-07 00:00:00 GMT. I think http://mail.gnu.org/pipermail/bug-cvs/2002-March/007367.html and http://mail.gnu.org/pipermail/bug-cvs/2001-August/006217.html are same problem. system call trace of cvs-1.11.2 server: ... read(0, "Root /home/akr/.cvsroot\nValid-responses ok error Valid-requests Checked-in New-entry Checksum Copy-file Updated Created Update-existing Merged Patched Rcs-diff Mode Mod-time Removed Remove-entry Set-static-directory Clear-static-directory Set-sticky Clear-sticky Template Set-checkin-prog Set-update-"..., 4096) = 381 ... write(1, "Valid-requests Root Valid-responses valid-requests Repository Directory Max-dotdot Static-directory Sticky Checkin-prog Update-prog Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Questionable Case Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set "..., 544) = 544 read(0, "UseUnchanged\nGzip-stream 1\nx\1r,J/\315M\315+Q\320\365\343r\204\263\3\220\330\311H\354\354|.\227\314\242\324\344\222\374\242J\5=.\375\214\374\334T\375\304\354\"}\275\344\262\342\242\374\374\22\256\344|.\0\0\0\0\377\377", 4096) = 93 ... write(1, "x\1\2\0\0\0\377\377", 8) = 8 ... --- SIGCHLD (Child exited) --- ... write(1, "\312\317\346\2\0\0\0\377\377", 9) = 9 read(0, "\3\0\227\333\33\351", 4096) = 6 # deflate stream termination received. the last four bytes are ADLER-32 checksum. ... read(0, # check EOF. system call trace of cvs-1.11.1p1 client: ... write(5, "Root /home/akr/.cvsroot\nValid-responses ok error Valid-requests Checked-in New-entry Checksum Copy-file Updated Created Update-existing Merged Patched Rcs-diff Mode Mod-time Removed Remove-entry Set-static-directory Clear-static-directory Set-sticky Clear-sticky Template Set-checkin-prog Set-update-"..., 381) = 381 read(6, "Valid-requests Root Valid-responses valid-requests Repository Directory Max-dotdot Static-directory Sticky Checkin-prog Update-prog Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Questionable Case Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set "..., 4096) = 544 write(5, "UseUnchanged\n", 13) = 13 ... write(5, "Gzip-stream 1\nx\1r,J/\315M\315+Q\320\365\343r\204\263\3\220\330\311H\354\354|.\227\314\242\324\344\222\374\242J\5=.\375\214\374\334T\375\304\354\"}\275\344\262\342\242\374\374\22\256\344|.\0\0\0\0\377\377", 80) = 80 read(6, "x\1\2\0\0\0\377\377", 4096) = 8 read(6, "\312\317\346\2\0\0\0\377\377", 4096) = 9 write(5, "\3\0\227\333\33\351", 6) = 6 # deflate stream termnation sent. read(6, # check EOF. command line: CVS_RSH=/home/akr/src/cvs/cvs-1.11.2/strace-cvs-server strace -s300 -o cvs-1.11.2/client.log /home/akr/src/cvs/cvs-1.11.1p1/cvs -d :ext:akr@localhost:/home/akr/.cvsroot -z1 co -c cvs-1.11.2/strace-cvs-server: #!/bin/sh d=/home/akr/src/cvs/cvs-1.11.2 strace -s300 -o $d/server.log $d/cvs server -- Tanaka Akira _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
