info-cvs
[Top][All Lists]
Advanced

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

Re: compressed communication between 1.11.2 server and 1.11.1p1 client h


From: Tanaka Akira
Subject: Re: compressed communication between 1.11.2 server and 1.11.1p1 client hangs up
Date: 13 May 2002 02:43:06 +0900
User-agent: T-gnus/6.14.5 (based on Gnus v5.8.7) (revision 08) SEMI/1.14.0 (Iburihashi) Deisui/1.14.0 (Kikuhime) APEL/10.3 Emacs/21.0.104 (i386-unknown-freebsd4.2) MULE/5.0 (SAKAKI)

In article <address@hidden>,
  Tanaka Akira <address@hidden> 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:address@hidden:/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



reply via email to

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