Bug 758447

Summary: zlib.error: Error -3 while decompressing: invalid distance code
Product: [openSUSE] openSUSE 12.2 Reporter: Forgotten User Si7ddX0wxG <forgotten_Si7ddX0wxG>
Component: BasesystemAssignee: E-mail List <bnc-team-screening>
Status: RESOLVED NORESPONSE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: forgotten_Si7ddX0wxG
Version: Factory   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Forgotten User Si7ddX0wxG 2012-04-23 04:56:58 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20100101 Firefox/8.0

Hello
I get an error when I run this command
# time createrepo /media/disk/factory/rpms

Result:
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Traceback (most recent call last):
  File "/usr/share/createrepo/genpkgmetadata.py", line 263, in <module>
    main(sys.argv[1:])
  File "/usr/share/createrepo/genpkgmetadata.py", line 241, in main
    mdgen.doRepoMetadata()
  File "/usr/lib64/python2.7/site-packages/createrepo/__init__.py", line 896, in doRepoMetadata
    while data.read(zfo, 2**16):
  File "/usr/lib64/python2.7/site-packages/yum/misc.py", line 237, in read
    data = fo.read(size)
  File "/usr/lib64/python2.7/gzip.py", line 252, in read
    self._read(readsize)
  File "/usr/lib64/python2.7/gzip.py", line 303, in _read
    uncompress = self.decompress.decompress(buf)
zlib.error: Error -3 while decompressing: invalid distance code
lib.error: Error -3 while decompressing: invalid distance code

real    23m56.941s
user    6m41.521s
sys     0m53.911s


Reproducible: Always

Steps to Reproduce:
1.Run command # time createrepo /media/disk/factory/rpms
# generates error
Traceback (most recent call last):
  File "/usr/share/createrepo/genpkgmetadata.py", line 263, in <module>
    main(sys.argv[1:])
  File "/usr/share/createrepo/genpkgmetadata.py", line 241, in main
    mdgen.doRepoMetadata()
  File "/usr/lib64/python2.7/site-packages/createrepo/__init__.py", line 896, in doRepoMetadata
    while data.read(zfo, 2**16):
  File "/usr/lib64/python2.7/site-packages/yum/misc.py", line 237, in read
    data = fo.read(size)
  File "/usr/lib64/python2.7/gzip.py", line 252, in read
    self._read(readsize)
  File "/usr/lib64/python2.7/gzip.py", line 303, in _read
    uncompress = self.decompress.decompress(buf)
zlib.error: Error -3 while decompressing: invalid distance code
lib.error: Error -3 while decompressing: invalid distance code

Actual Results:  
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Traceback (most recent call last):
  File "/usr/share/createrepo/genpkgmetadata.py", line 263, in <module>
    main(sys.argv[1:])
  File "/usr/share/createrepo/genpkgmetadata.py", line 241, in main
    mdgen.doRepoMetadata()
  File "/usr/lib64/python2.7/site-packages/createrepo/__init__.py", line 896, in doRepoMetadata
    while data.read(zfo, 2**16):
  File "/usr/lib64/python2.7/site-packages/yum/misc.py", line 237, in read
    data = fo.read(size)
  File "/usr/lib64/python2.7/gzip.py", line 252, in read
    self._read(readsize)
  File "/usr/lib64/python2.7/gzip.py", line 303, in _read
    uncompress = self.decompress.decompress(buf)
zlib.error: Error -3 while decompressing: invalid distance code
lib.error: Error -3 while decompressing: invalid distance code

real    23m56.941s
user    6m41.521s
sys     0m53.911s

Expected Results:  
save metadata

# rpm -qa | grep -i python | sort
apache2-mod_python-3.3.1-167.1.2.x86_64
dbus-1-python-0.83.2-7.1.3.x86_64
evolution-python-plugins-3.2.1-2.2.2.x86_64
gimp-plugins-python-2.6.11-28.23.2.x86_64
libboost_python1_46_1-1.46.1-8.1.3.x86_64
libpeas-loader-python-1.2.0-3.1.2.x86_64
libpyglib-gi-2_0-python0-3.0.2-2.3.1.x86_64
libpython2_7-1_0-2.7.2-7.1.2.x86_64
libpython2_7-1_0-32bit-2.7.2-7.1.2.x86_64
libvirt-python-0.9.6-3.1.2.x86_64
libxml2-python-2.7.8+git20110708-3.1.2.x86_64
patterns-openSUSE-devel_python-12.1-25.21.1.x86_64
python-2.7.2-7.1.3.x86_64
python-32bit-2.7.2-7.1.3.x86_64
python-Louie-1.1-2.1.2.noarch
python-M2Crypto-0.21.1-4.1.2.x86_64
python-Twisted-11.0.0-3.1.3.x86_64
python-atspi-2.2.1-2.1.2.noarch
python-base-2.7.2-7.1.2.x86_64
python-base-32bit-2.7.2-7.1.2.x86_64
python-beautifulsoup-3.0.8.1-8.1.1.noarch
python-bonobo-2.28.1-12.1.2.x86_64
python-brlapi-4.2-16.1.2.x86_64
python-cairo-1.10.0-3.1.3.x86_64
python-ccm-0.9.5.94-2.1.2.noarch
python-coherence-0.6.6.2-8.1.2.noarch
python-compizconfig-0.9.5.94-2.1.2.x86_64
python-cups-1.9.59-2.1.3.x86_64
python-cupshelpers-1.3.7-2.2.2.noarch
python-curses-2.7.2-7.1.3.x86_64
python-devel-2.7.2-7.1.2.x86_64
python-distribute-0.6.21-6.1.1.noarch
python-gconf-2.28.1-12.1.2.x86_64
python-gdata-2.0.14-3.1.2.noarch
python-gnome-2.28.1-12.1.2.x86_64
python-gnome-menus-3.0.1-10.1.2.x86_64
python-gnomecanvas-2.28.1-12.1.2.x86_64
python-gnomekeyring-2.32.0-11.1.2.x86_64
python-gnomevfs-2.28.1-12.1.2.x86_64
python-gobject-3.0.2-2.3.1.x86_64
python-gobject-cairo-3.0.2-2.3.1.x86_64
python-gobject2-2.28.6-9.1.3.x86_64
python-gstreamer-0_10-0.10.21-5.1.2.x86_64
python-gtk-2.24.0-3.1.2.x86_64
python-gtk-vnc-0.4.3-6.1.2.x86_64
python-httplib2-0.7.1-3.1.1.noarch
python-kde4-4.7.2-2.1.2.x86_64
python-kdebase4-4.7.2-6.4.1.x86_64
python-libproxy-0.4.7-7.1.3.noarch
python-louis-2.3.0-3.1.2.x86_64
python-lxml-2.3-6.1.3.x86_64
python-notify-0.1.1-20.1.2.x86_64
python-numpy-1.6.1-3.1.2.x86_64
python-optcomplete-1.2_devel-6.1.1.noarch
python-orbit-2.24.0-11.1.2.x86_64
python-pam-0.5.0-79.1.2.x86_64
python-pyOpenSSL-0.12-3.1.2.x86_64
python-pycrypto-2.3-3.1.2.x86_64
python-pycurl-7.19.0-2.1.3.x86_64
python-pyserial-2.5-2.1.3.noarch
python-pyudev-0.12-2.1.2.noarch
python-qt4-4.8.5-5.2.2.x86_64
python-satsolver-0.44.3-2.1.3.x86_64
python-simplejson-2.2.1-2.1.3.x86_64
python-sip-4.12.4-5.1.3.x86_64
python-smbc-1.0.11-3.1.3.x86_64
python-speechd-0.7.1-7.1.2.x86_64
python-telepathy-0.15.19-7.1.2.noarch
python-urlgrabber-3.9.1-2.1.2.noarch
python-vte-0.28.2-4.1.2.x86_64
python-xdg-0.19-10.1.1.x86_64
python-xlib-0.14-96.1.1.noarch
python-xml-2.7.2-7.1.2.x86_64
python-zope.interface-3.8.0-2.1.1.noarch
rpm-python-4.9.1.2-1.2.x86_64
xchat-python-2.8.8-8.3.2.x86_64
Comment 1 Forgotten User Si7ddX0wxG 2012-04-23 05:00:37 UTC
  File "/usr/lib64/python2.7/gzip.py", line 303, in _read
    uncompress = self.decompress.decompress(buf)
zlib.error: Error -3 while decompressing: invalid distance code
lib.error: Error -3 while decompressing: invalid distance code


# head -303 /usr/lib64/python2.7/gzip.py | tail -1
        uncompress = self.decompress.decompress(buf)
Comment 2 Kun Kun Zhang 2012-04-23 08:31:18 UTC
Hi,could you please help to have a look this?I did not find the zlib maintainers.Feel free to reassign it.Thank you.
Comment 3 Forgotten User Si7ddX0wxG 2012-04-23 16:43:45 UTC
Hello,
I tried again with 12.2 milestone 3 - no luck. This is what I got:
# time createrepo /media/disk/factory/rpms
Spawning worker 0 with 7852 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Traceback (most recent call last):
  File "/usr/share/createrepo/genpkgmetadata.py", line 279, in <module>
    main(sys.argv[1:])
  File "/usr/share/createrepo/genpkgmetadata.py", line 257, in main
    mdgen.doRepoMetadata()
  File "/usr/lib64/python2.7/site-packages/createrepo/__init__.py", line 978, in doRepoMetadata
    while data.read(zfo, 2**16):
  File "/usr/lib64/python2.7/site-packages/yum/misc.py", line 266, in read
    data = fo.read(size)
  File "/usr/lib64/python2.7/gzip.py", line 252, in read
    self._read(readsize)
  File "/usr/lib64/python2.7/gzip.py", line 299, in _read
    self._read_eof()
  File "/usr/lib64/python2.7/gzip.py", line 334, in _read_eof
    crc32 = read32(self.fileobj)
  File "/usr/lib64/python2.7/gzip.py", line 25, in read32
    return struct.unpack("<I", input.read(4))[0]
struct.error: unpack requires a string argument of length 4

real    14m34.265s
user    6m25.214s
sys     0m34.256s
Comment 4 Andreas Jaeger 2012-06-22 10:58:16 UTC
Glenn, on what file does the error happen? does a simple gunzip work on it?

I'd like to figure out whether this is a bug in python, gunzip - or in the file itself.
Comment 5 Andreas Jaeger 2012-07-03 16:52:14 UTC
No reaction, thereofore closing
Comment 6 Forgotten User Si7ddX0wxG 2012-07-04 05:21:50 UTC
FYI this now works --Glenn

# time createrepo /media/disk/factory/rpms
Spawning worker 0 with 13702 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

real    43m57.370s
user    14m25.622s
sys     1m59.326s

# rpm -qa | grep -i createrepo
createrepo-0.9.9-2.1.1.x86_64

# rpm -qa | grep -i python | sort
dbus-1-python-1.0.0-2.1.x86_64
gimp-plugins-python-2.8.0-2.1.x86_64
libpyglib-gi-2_0-python0-3.2.2-1.1.x86_64
libpython2_7-1_0-2.7.3-2.1.x86_64
python-2.7.3-2.1.x86_64
python-base-2.7.3-2.1.x86_64
python-cairo-1.10.0-5.3.x86_64
python-cups-1.9.61-1.3.x86_64
python-cupshelpers-1.3.9-1.3.noarch
python-curses-2.7.3-3.1.1.x86_64
python-deltarpm-3.5.git-10.1.1.x86_64
python-distribute-0.6.27-1.1.noarch
python-gnomekeyring-2.32.0-14.3.x86_64
python-gobject-3.2.2-1.1.x86_64
python-gobject-cairo-3.2.2-1.1.x86_64
python-gobject2-2.28.6-13.5.x86_64
python-gtk-2.24.0-6.4.x86_64
python-kde4-4.8.4-1.1.x86_64
python-kdebase4-4.8.4-1.2.x86_64
python-libxml2-2.7.8+git20120223-7.3.x86_64
python-lxml-2.3.4-2.1.1.x86_64
python-notify-0.1.1-22.4.x86_64
python-numpy-1.6.2-2.1.x86_64
python-pycurl-7.19.0-5.1.x86_64
python-pyudev-0.15-1.2.noarch
python-qt4-4.9.1-1.1.x86_64
python-satsolver-0.45.0-1.2.x86_64
python-simplejson-2.5.2-1.1.x86_64
python-sip-4.13.2-2.1.x86_64
python-smbc-1.0.13-1.3.x86_64
python-urlgrabber-3.9.1-3.3.noarch
python-xdg-0.19-12.2.x86_64
python-xml-2.7.3-2.1.x86_64
python-yum-3.4.3-2.1.1.x86_64
rpm-python-4.9.1.2-17.1.x86_64