[ python-Bugs-1110242 ] gzip.GzipFile.flush() does not flush all internal buffers

SourceForge.net noreply at sourceforge.net
Thu Mar 3 09:38:10 CET 2005


Bugs item #1110242, was opened at 2005-01-26 22:42
Message generated for change (Comment added) made by loewis
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1110242&group_id=5470

Category: Python Library
Group: Python 2.4
>Status: Closed
>Resolution: Accepted
Priority: 5
Submitted By: David Schnepper (dschnepper)
Assigned to: Nobody/Anonymous (nobody)
Summary: gzip.GzipFile.flush() does not flush all internal buffers

Initial Comment:
flush() is expected to output all pending data stored
in internal buffers.

gzip.GzipFile.flush() does perform a flush on its
fileobj, but does not flush the state of its compressobj
prior to the IO flush.

This results in being able to use gzip.GzipFile to zip 
output to a socket and having the other side unzip it
in sync with originators flush calls.

----------------------------------------------------------------------

>Comment By: Martin v. Löwis (loewis)
Date: 2005-03-03 09:38

Message:
Logged In: YES 
user_id=21627

Thanks for the patch. I believe it does not fully fix the
bug reported: not all input data are flushed with
Z_SYNC_FLUSH, but only some (up to an output byte boundary
or some such). I also believe that a "complete" fix for the
bug is not possible, as flushing all input data would
require Z_FINISH, and then no more additional data could be
written into the stream.

As this is still an improvement over the current status, I
committed it as

gzip.py 1.43
NEWS 1.1251


----------------------------------------------------------------------

Comment By: Alan McIntyre (ESRG) (alanmcintyre)
Date: 2005-02-27 05:33

Message:
Logged In: YES 
user_id=1115903

This patch appears to fix the bug as described, and running
the regression tests on Python 2.5a0 (CVS HEAD) plus this
patch turns up no problems.  Since the documentation says
that a GzipFile "simulates most of the methods of a file
object," I would expect GzipFile.flush() to act in the way
that David described in the first paragraph of the bug
report, and his patch seems to provide that as far as I can
tell.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1110242&group_id=5470


More information about the Python-bugs-list mailing list