logo       
Google Custom Search
    AddThis Social Bookmark Button

CVS update: /ccvs/, /ccvs/src/: msg#00011

Subject: CVS update: /ccvs/, /ccvs/src/
User: dprice  
Date: 05/06/02 10:53:03

Modified:
 /ccvs/
  ChangeLog, NEWS
 /ccvs/src/
  ChangeLog, sanity.sh, zlib.c

Log:
 Merge changes from 1.11.x.

File Changes:

Directory: /ccvs/
=================

File [changed]: ChangeLog
Url: https://ccvs.cvshome.org/source/browse/ccvs/ChangeLog?r1=1.1222&r2=1.1223
Delta lines:  +4 -0
-------------------
--- ChangeLog   1 Jun 2005 19:33:34 -0000       1.1222
+++ ChangeLog   2 Jun 2005 17:52:59 -0000       1.1223
@@ -1,3 +1,7 @@
+2005-06-02  Derek Price  <derek@xxxxxxxxxxx>
+
+       * NEWS: Note server compression hang fix.
+
 2005-06-01  Derek Price  <derek@xxxxxxxxxxx>
 
        * TODO (214): Remove completed item.

File [changed]: NEWS
Url: https://ccvs.cvshome.org/source/browse/ccvs/NEWS?r1=1.320&r2=1.321
Delta lines:  +3 -0
-------------------
--- NEWS        27 May 2005 18:07:47 -0000      1.320
+++ NEWS        2 Jun 2005 17:52:59 -0000       1.321
@@ -23,6 +23,9 @@
 
 BUG FIXES
 
+* A problem where the server could block indefinitely waiting for an EOF from
+  the client when compression was enabled has ben fixed.
+
 * `cvs diff' no longer splits its arguments on spaces.
 
 * Thanks to an old report and patch from Stewart Brodie <stewart@xxxxxx>, a

Directory: /ccvs/src/
=====================

File [changed]: ChangeLog
Url: 
https://ccvs.cvshome.org/source/browse/ccvs/src/ChangeLog?r1=1.3203&r2=1.3204
Delta lines:  +8 -0
-------------------
--- ChangeLog   1 Jun 2005 01:42:35 -0000       1.3203
+++ ChangeLog   2 Jun 2005 17:53:00 -0000       1.3204
@@ -1,3 +1,11 @@
+2005-06-02  Derek Price  <derek@xxxxxxxxxxx>
+
+       * zlib.c (compress_buffer_input): Don't request more bytes from the
+       underlying buffer than asked for.
+       (compress_buffer_shutdown_input): Don't attempt to read EOF from the
+       client during shutdown.  It might never be sent.
+       * sanity.sh (abspath2): Test for this.
+
 2005-05-31  Derek Price  <derek@xxxxxxxxxxx>
 
        * rcscmds.c (call_diff_argc_allocated): Rename to...

File [changed]: sanity.sh
Url: 
https://ccvs.cvshome.org/source/browse/ccvs/src/sanity.sh?r1=1.1065&r2=1.1066
Delta lines:  +5 -1
-------------------
--- sanity.sh   27 May 2005 18:07:48 -0000      1.1065
+++ sanity.sh   2 Jun 2005 17:53:00 -0000       1.1066
@@ -15267,7 +15267,11 @@
          # cvs checkout: warning: cannot make directory CVS in /: Permission 
denied
          # cvs [checkout aborted]: cannot make directory /foo: Permission 
denied
          # $
-         dotest_fail abspath2-1 "${testcvs} co /foo" \
+         #
+         # The -z9 in this test also checks for an old server bug where the
+         # server would block indefinitely attempting to read an EOF from the
+         # client in the compression buffer shutdown routine.
+         dotest_fail abspath2-1 "$testcvs -z9 co /foo" \
 "$CPROG \[checkout aborted\]: Absolute module reference invalid: \`/foo'" \
 "$SPROG \[server aborted\]: Absolute module reference invalid: \`/foo'
 $CPROG \[checkout aborted\]: end of file from server (consult above messages 
if any)"

File [changed]: zlib.c
Url: https://ccvs.cvshome.org/source/browse/ccvs/src/zlib.c?r1=1.28&r2=1.29
Delta lines:  +5 -15
--------------------
--- zlib.c      10 Mar 2005 16:29:16 -0000      1.28
+++ zlib.c      2 Jun 2005 17:53:00 -0000       1.29
@@ -227,8 +227,7 @@
           would fetch all the available bytes, and at least one byte.  */
 
        status = (*cb->buf->input) (cb->buf->closure, bd->text,
-                                   need > 0 ? 1 : 0,
-                                   BUFFER_DATA_SIZE, &nread);
+                                   need, BUFFER_DATA_SIZE, &nread);
 
        if (status == -2)
            /* Don't try to recover from memory allcoation errors.  */
@@ -399,19 +398,10 @@
     struct compress_buffer *cb = buf->closure;
     int zstatus;
 
-    /* Pick up any trailing data, such as the checksum.  */
-    while (1)
-    {
-       int status;
-       size_t nread;
-       char buf[100];
-
-       status = compress_buffer_input (cb, buf, 0, sizeof buf, &nread);
-       if (status == -1)
-           break;
-       if (status != 0)
-           return status;
-    }
+    /* Don't make any attempt to pick up trailing data since we are shutting
+     * down.  If the client doesn't know we are shutting down, we might not
+     * see the EOF we are expecting.
+     */
 
     zstatus = inflateEnd (&cb->zstr);
     if (zstatus != Z_OK)



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>