Bug 865080

Summary: [abrt] python-nose-1.1.2-1.fc16: html.py:246:read:ValueError: unsupported pickle protocol: 3
Product: [Fedora] Fedora Reporter: Peter Portante <pportant>
Component: python-coverageAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: a.badger, dmalcolm, fschwarz, lmacken, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard: abrt_hash:8087a5bab2475162c9e1dc969a597532e128f05e
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-20 15:42:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Peter Portante 2012-10-10 19:03:21 UTC
libreport version: 2.0.10
abrt_version:   2.0.7
cmdline:        /usr/bin/python /usr/bin/nosetests --with-coverage --cover-package pycscope --cover-erase --cover-html
executable:     /usr/bin/nosetests
kernel:         3.4.9-2.fc16.x86_64
time:           Tue 02 Oct 2012 08:13:47 AM EDT
uid:            17930
username:       pportant

backtrace:
:html.py:246:read:ValueError: unsupported pickle protocol: 3
:
:Traceback (most recent call last):
:  File "/usr/bin/nosetests", line 9, in <module>
:    load_entry_point('nose==1.1.2', 'console_scripts', 'nosetests')()
:  File "/usr/lib/python2.7/site-packages/nose/core.py", line 118, in __init__
:    **extra_args)
:  File "/usr/lib64/python2.7/unittest/main.py", line 95, in __init__
:    self.runTests()
:  File "/usr/lib/python2.7/site-packages/nose/core.py", line 197, in runTests
:    result = self.testRunner.run(self.test)
:  File "/usr/lib/python2.7/site-packages/nose/core.py", line 63, in run
:    result.printErrors()
:  File "/usr/lib/python2.7/site-packages/nose/result.py", line 110, in printErrors
:    self.config.plugins.report(self.stream)
:  File "/usr/lib/python2.7/site-packages/nose/plugins/manager.py", line 94, in __call__
:    return self.call(*arg, **kw)
:  File "/usr/lib/python2.7/site-packages/nose/plugins/manager.py", line 162, in simple
:    result = meth(*arg, **kw)
:  File "/usr/lib/python2.7/site-packages/nose/plugins/cover.py", line 166, in report
:    self.coverInstance.stop()
:  File "/usr/lib64/python2.7/site-packages/coverage/control.py", line 590, in html_report
:    reporter.report(morfs, config=self.config)
:  File "/usr/lib64/python2.7/site-packages/coverage/html.py", line 72, in report
:    self.status.read(config.html_dir)
:  File "/usr/lib64/python2.7/site-packages/coverage/html.py", line 246, in read
:    status = pickle.load(open(status_file, "rb"))
:ValueError: unsupported pickle protocol: 3
:
:Local variables in innermost frame:
:status_file: 'cover/status.dat'
:directory: 'cover'
:usable: False
:self: <coverage.html.HtmlStatus object at 0x2990410>

smolt_data:
:
:
:General
:=================================
:UUID: 1f04c76f-c1ca-4fb0-9d5e-33733f8d191f
:OS: Fedora release 16 (Verne)
:Default run level: Unknown
:Language: en_US.UTF-8
:Platform: x86_64
:BogoMIPS: 5382.86
:CPU Vendor: GenuineIntel
:CPU Model: Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
:CPU Stepping: 7
:CPU Family: 6
:CPU Model Num: 42
:Number of CPUs: 4
:CPU Speed: 2701
:System Memory: 7870
:System Swap: 10015
:Vendor: LENOVO
:System: 4243B37 ThinkPad T520
:Form factor: Notebook
:Kernel: 3.4.11-1.fc16.x86_64
:SELinux Enabled: 1
:SELinux Policy: targeted
:SELinux Enforce: Enforcing
:MythTV Remote: Unknown
:MythTV Role: Unknown
:MythTV Theme: Unknown
:MythTV Plugin: 
:MythTV Tuner: -1
:
:
:Devices
:=================================
:(32902:7247:6058:8655) pci, None, PCI/ISA, QM67 Express Chipset Family LPC Controller
:(4480:59427:6058:8655) pci, sdhci-pci, BASE, N/A
:(32902:294:6058:8655) pci, i915, VIDEO, 2nd Generation Core Processor Family Integrated Graphics Controller
:(32902:7190:6058:8655) pci, pcieport, PCI/PCI, 6 Series/C200 Series Chipset Family PCI Express Root Port 4
:(32902:7184:6058:8655) pci, pcieport, PCI/PCI, 6 Series/C200 Series Chipset Family PCI Express Root Port 1
:(32902:7186:6058:8655) pci, pcieport, PCI/PCI, 6 Series/C200 Series Chipset Family PCI Express Root Port 2
:(32902:7192:6058:8655) pci, pcieport, PCI/PCI, 6 Series/C200 Series Chipset Family PCI Express Root Port 5
:(32902:7200:6058:8655) pci, snd_hda_intel, MULTIMEDIA, 6 Series/C200 Series Chipset Family High Definition Audio Controller
:(32902:5378:6058:8654) pci, e1000e, ETHERNET, 82579LM Gigabit Network Connection
:(32902:7213:6058:8655) pci, ehci_hcd, USB, 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2
:(32902:7202:6058:8655) pci, i801_smbus, SERIAL, 6 Series/C200 Series Chipset Family SMBus Controller
:(4480:59442:6058:8655) pci, firewire_ohci, FIREWIRE, FireWire Host Controller
:(32902:16952:32902:4369) pci, iwlwifi, NETWORK, Centrino Ultimate-N 6300 3x3 AGN
:(32902:7171:6058:8655) pci, ahci, STORAGE, 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller
:(32902:7229:6058:8655) pci, serial, 16550_SERIAL, 6 Series/C200 Series Chipset Family KT Controller
:(32902:7206:6058:8655) pci, ehci_hcd, USB, 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1
:(32902:260:6058:8655) pci, agpgart-intel, HOST/PCI, 2nd Generation Core Processor Family DRAM Controller
:(32902:7226:6058:8655) pci, None, SIMPLE, 6 Series/C200 Series Chipset Family MEI Controller #1
:
:
:Filesystem Information
:=================================
:device mtpt type bsize frsize blocks bfree bavail file ffree favail
:-------------------------------------------------------------------
:/dev/mapper/vg_frodo-lv_root / ext4 4096 4096 12901535 9886649 9755627 3276800 2962698 2962698
:/dev/mapper/vg_frodo-lv_home /home ext4 4096 4096 104623298 100855022 95540462 26574848 26399218 26399218
:/dev/sda1 /boot ext4 1024 1024 495844 407201 381601 128016 127737 127737
:/dev/sr0 WITHHELD udf 2048 2048 3893277 0 0 31 0 0
:

Comment 1 Toshio Ernie Kuratomi 2012-10-11 05:30:04 UTC
This looks like the traceback is being raised in the python-coverage package.

From the mention of pickle. I'd guess that there are coverage stats that were generated using a different version of python.  When nosetests were run against it, coverage tried to read the cached data for the last run and was unable to.

Python docs say this about pickle protocol 3 "Protocol version 3 was added in Python 3.0. It has explicit support for bytes and cannot be unpickled by Python 2.x pickle modules."

Reading the coverage code, this piece of code is inside a try: except:

        try:
            status_file = os.path.join(directory, self.STATUS_FILE)
            status = pickle.load(open(status_file, "rb"))
        except IOError:
            usable = False

It looks like upstream python-coverage committed a fix for this just 7 days ago:

https://bitbucket.org/ned/coveragepy/changeset/16020b834643bb8b9953b8d4bcc09691deb549b9

(Raw diff format):
https://bitbucket.org/ned/coveragepy/changeset/16020b834643bb8b9953b8d4bcc09691deb549b9/raw/

Comment 2 Fedora Update System 2012-10-11 07:09:27 UTC
python-coverage-3.5.3-2.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/python-coverage-3.5.3-2.fc18

Comment 3 Fedora Update System 2012-10-11 07:09:39 UTC
python-coverage-3.5.1-0.3.b1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/python-coverage-3.5.1-0.3.b1.fc17

Comment 4 Fedora Update System 2012-10-11 07:09:50 UTC
python-coverage-3.5-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/python-coverage-3.5-2.fc16

Comment 5 Fedora Update System 2012-10-11 17:20:04 UTC
Package python-coverage-3.5.3-2.fc18:
* should fix your issue,
* was pushed to the Fedora 18 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-coverage-3.5.3-2.fc18'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-15927/python-coverage-3.5.3-2.fc18
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2012-12-20 15:42:15 UTC
python-coverage-3.5.3-2.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.