[Bug 766778] New: Crash is happening on the latest update of python-xml package in OpenSUSE 12.1
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c0 Summary: Crash is happening on the latest update of python-xml package in OpenSUSE 12.1 Classification: openSUSE Product: openSUSE 12.1 Version: Final Platform: All OS/Version: openSUSE 12.1 Status: NEW Severity: Critical Priority: P5 - None Component: Other AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: goutamkk@gmail.com QAContact: qa-bugs@suse.de Found By: --- Blocker: --- Created an attachment (id=494589) --> (http://bugzilla.novell.com/attachment.cgi?id=494589) Screenshot of terminal window displaying the error message User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 We are the HPLIP (HP Linux Imaging and Printing) driver developers. We are facing certain issue with the updated version of the Python-xml package (python-xml-2.7.2-7.14.1) present in the OpenSUSE 12.1 repositories. Below is the terminal output which describes the problem clearly; Running command "hp-toolbox" from terminal window gives the below output: Traceback (most recent call last): File "/usr/bin/hp-toolbox", line 38, in <module> import base.utils as utils File "/usr/share/hplip/base/utils.py", line 44, in <module> import xml.parsers.expat as expat File "/usr/lib/python2.7/xml/parsers/expat.py", line 4, in <module> from pyexpat import * ImportError: /usr/lib/python2.7/lib-dynload/pyexpat.so: undefined symbol: _Py_HashSecret The pyexpat library has a undefined symbol _Py_HashSecret. Guessing this is due to some latest changes in the Python-xml package. Below are the details of the version of python-xml which got updated recently. ----------------------------------------------------------------------------- linux-tenk:/home/hptest/Downloads # zypper update python-xml Loading repository data... Reading installed packages... Resolving package dependencies... The following package is going to be upgraded: python-xml 1 package to upgrade. Overall download size: 181.0 KiB. No additional space will be used or freed after the operation. Continue? [y/n/?] (y): y Retrieving package python-xml-2.7.2-7.14.1.i586 (1/1), 181.0 KiB (861.0 KiB unpacked) Retrieving: python-xml-2.7.2-7.14.1.i586.rpm [done (159.1 KiB/s)] Installing: python-xml-2.7.2-7.14.1 [done] There are some running programs that use files deleted by recent upgrade. You may wish to restart some of them. Run 'zypper ps' to list these programs. ------------------------------------------------------------------------------ The python applications using pyexpat.so will have this problem. Please provide us the fix at the earliest as this will break lot of other applications. Reproducible: Always Steps to Reproduce: 1.Zypper update python-xml 2.Run command "hp-setup","hp-toolbox","hp-check" etc 3.The error : ImportError: /usr/lib/python2.7/lib-dynload/pyexpat.so: undefined symbol: _Py_HashSecret , is displayed in the terminal. Actual Results: ImportError: /usr/lib/python2.7/lib-dynload/pyexpat.so: undefined symbol: _Py_HashSecret Expected Results: ImportError should not come and the commands should run smoothly. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c kk zhang <kkzhang@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kkzhang@suse.com AssignedTo|bnc-team-screening@forge.pr |jmatejek@suse.com |ovo.novell.com | -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c1 Johannes Meixner <jsmeix@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO CC| |jsmeix@suse.com InfoProvider| |goutamkk@gmail.com --- Comment #1 from Johannes Meixner <jsmeix@suse.com> 2012-06-14 12:56:00 UTC --- As far as I see at a first glance it seems there is no official update of python-xml for openSUSE 12.1 so that I assume what you got via "zypper update python-xml" is not from an official openSUSE 12.1 repository but form elsewhere. What results # zypper repos -d for you? What results # rpm -qi python-xml for you? What results # rpm -q --changelog python-xml | head -n20 for you? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c2 Johannes Meixner <jsmeix@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW InfoProvider|goutamkk@gmail.com | --- Comment #2 from Johannes Meixner <jsmeix@suse.com> 2012-06-14 13:11:11 UTC --- Stupid me! I got confused by those awkward sub-package names: ---------------------------------------------------------------- # rpm -qi python-xml | grep Source Source RPM : python-base-2.7.2-7.14.1.src.rpm ---------------------------------------------------------------- I.e. the package "python-xml" is a sub-package of "python-base" and for "python-base" there is an official update for openSUSE 12.1. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c3 --- Comment #3 from Johannes Meixner <jsmeix@suse.com> 2012-06-14 13:24:38 UTC --- For me it seems to work: --------------------------------------------------------------------- $ rpm -qi python-xml Name : python-xml Version : 2.7.2 Release : 7.14.1 Architecture: x86_64 Install Date: Tue 12 Jun 2012 10:28:15 CEST ... $ rpm -qf /usr/lib64/python2.7/lib-dynload/pyexpat.so python-xml-2.7.2-7.14.1.x86_64 $ hp-check -r -l error /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning) error: Not found. SANE backend 'hpaio' NOT properly setup (needs to be added to /etc/sane.d/dll.conf). error: 4 errors and/or warnings. $ --------------------------------------------------------------------- I run "hp-check" on an openSUSE 12.1 system where I am logged in via ssh (I have no X server access there if that matters) and I get no errors regarding _Py_HashSecret. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c4 Jan Matejek <jmatejek@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P1 - Urgent Status|NEW |ASSIGNED Summary|Crash is happening on the |python modules requiring |latest update of |_Py_HashSecret |python-xml package in | |OpenSUSE 12.1 | Severity|Critical |Major --- Comment #4 from Jan Matejek <jmatejek@suse.com> 2012-06-14 15:39:00 UTC --- i can reproduce this - it is caused by updating python-xml without the corresponding libpython update, which is apparently due to a missing Requires on the same library version. you can fix this problem by issuing "zypper up libpython2_7-1_0" (so i'm lowering the severity) the question remaining is whether it's safe enough to put the missing Requires into python-xml, or if other packages might be affected as well -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c Jan Matejek <jmatejek@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|python modules requiring |python modules requiring |_Py_HashSecret |_Py_HashSecret don't depend | |on updated libpython2_7 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c5 --- Comment #5 from goutam kodu <goutamkk@gmail.com> 2012-06-15 06:23:33 UTC --- (In reply to comment #4)
i can reproduce this - it is caused by updating python-xml without the corresponding libpython update, which is apparently due to a missing Requires on the same library version. you can fix this problem by issuing "zypper up libpython2_7-1_0" (so i'm lowering the severity) the question remaining is whether it's safe enough to put the missing Requires into python-xml, or if other packages might be affected as well
Hi Jan Matijek, Thanks for the update. This workaround is working fine. Please let us know, when can we expect an actual fix (putting missing Requires into python-xml or some other fix, which works without the need of updating libpython package seperately) for this issue. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c6 --- Comment #6 from Johannes Meixner <jsmeix@suse.com> 2012-06-15 07:52:43 UTC --- Adding a hardcoded RPM Requires into python-xml could help to enforce the dependcency but as far as I see there is already such a hardcoded RPM Requires: In OBS openSUSE:12.1:Update python-base python-base.spec there is --------------------------------------------------------------------------- Name: python-base ... # explicitly, see bnc#697251 Requires: libpython2_7-1_0 = %{version}-%{release} . . . %package -n python-xml Requires: python-base = %{version} --------------------------------------------------------------------------- Accordingly at least on the openSUSE 12.1 system as in comment #3 it "just works". Details: That openSUSE 12.1 system is a machine of a colleague and he did not do any manual updates regarding Python (in particular he did no manual "zypper up libpython2_7-1_0"). On that openSUSE 12.1 system there is the RPM dependcency between libpython2_7-1_0 and python-xml: --------------------------------------------------------------------------- $ rpm -e --test libpython2_7-1_0 2>&1 | grep python-xml libpython2.7.so.1.0()(64bit) is needed by (installed) python-xml-2.7.2-7.14.1.x86_64 $ rpm -q --requires python-xml ... libpython2.7.so.1.0()(64bit) rpm -q --whatprovides 'libpython2.7.so.1.0()(64bit)' libpython2_7-1_0-2.7.2-7.14.1.x86_64 --------------------------------------------------------------------------- On that openSUSE 12.1 system both packages were updated at the same time: --------------------------------------------------------------------------- $ rpm -qi libpython2_7-1_0 | grep 'Install Date' Install Date: Tue 12 Jun 2012 10:27:10 CEST $ rpm -qi python-xml | grep 'Install Date' Install Date: Tue 12 Jun 2012 10:28:15 CEST --------------------------------------------------------------------------- On that openSUSE 12.1 system it "just works": --------------------------------------------------------------------------- $ cat testy.py #!/usr/bin/env python import xml.parsers.expat as expat print "Hello" $ python testy.py Hello $ python -v testy.py 2>&1 | grep expat # /usr/lib64/python2.7/xml/parsers/expat.pyc matches /usr/lib64/python2.7/xml/parsers/expat.py import xml.parsers.expat # precompiled from /usr/lib64/python2.7/xml/parsers/expat.pyc dlopen("/usr/lib64/python2.7/lib-dynload/pyexpat.so", 2); import pyexpat # dynamically loaded from /usr/lib64/python2.7/lib-dynload/pyexpat.so # cleanup[1] pyexpat # cleanup[1] xml.parsers.expat # cleanup[2] pyexpat.errors # cleanup[2] pyexpat.model $ ls -l /usr/lib64/python2.7/xml/parsers/expat.py /usr/lib64/python2.7/xml/parsers/expat.pyc ... 106 May 10 15:28 /usr/lib64/python2.7/xml/parsers/expat.py ... 279 May 10 15:28 /usr/lib64/python2.7/xml/parsers/expat.pyc $ rpm -qf /usr/lib64/python2.7/xml/parsers/expat.py python-xml-2.7.2-7.14.1.x86_64 $ rpm -qf /usr/lib64/python2.7/xml/parsers/expat.pyc python-xml-2.7.2-7.14.1.x86_64 $ rpm -qi python-xml | grep 'Build Date' Build Date : Thu 10 May 2012 15:55:50 CEST ---------------------------------------------------------------------------
From my current point of view the actual root cause is not in the Python packages but more likely somewhere in the package management system (from RPM and zypper up to OBS and various repositories and things like that).
-- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c7 --- Comment #7 from Johannes Meixner <jsmeix@suse.com> 2012-06-15 08:13:34 UTC --- Perhaps the root cause is in the Python packages because --------------------------------------------------------------------------- %package -n python-xml Requires: python-base = %{version}-%{release} --------------------------------------------------------------------------- might be needed to enforce an update of the whole stuff in case of updates where the version does not change (i.e. in particular in case of maintenance updates). Jan, I learned this lesson some time ago with CUPS where a maintenance update only of the RPM binary package "cups" was released but without the RPM binary sub-package "cups-libs" (both come from the RPM source package "cups") and guess what horribly crashed at all our customers... Of course developers cannot detect such issues because when developers test it they cannot install the maintenance update because this does not exist at the time when developers make a fix. Therefore I have in cups.spec: ------------------------------------------------------------------------- Name: cups ... # Require the exact matching version-release of the cups-libs # sub-package because non-matching CUPS libraries may let # CUPS software crash (e.g. segfault) because all CUPS software # is built from the one same CUPS source tar ball # so that there are CUPS-internal dependencies via CUPS # private API calls (which do not happen for third-party software # which uses only the CUPS public API). The exact matching # version-release of the cups-libs sub-package is available # on the same package repository where the cups package is because # all are built simulaneously from the same cups source package # and all required packages are provided on the same repository: Requires: cups-libs = %{version}-%{release} ------------------------------------------------------------------------- When I split upstream software which we get as one tar ball into RPM sub-packages, I use often RPM Requires for %{version}-%{release} for core stuff like "libraries" to ensure the integrity of the upstream software. I do the same in HPLIP: ------------------------------------------------------------------------- Name: hplip ... # Require the exact matching version-release of the hpijs sub-package # to make sure to have the exact matching version of libhpip # and libhpmud installed. The exact matching version-release of # the sub-package is available on the same repository where the # main-package is ... Requires: %{name}-hpijs = %{version}-%{release} ------------------------------------------------------------------------- -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c8 --- Comment #8 from Jan Matejek <jmatejek@suse.com> 2012-06-19 14:44:06 UTC --- (In reply to comment #7)
Perhaps the root cause is in the Python packages because --------------------------------------------------------------------------- %package -n python-xml Requires: python-base = %{version}-%{release} --------------------------------------------------------------------------- might be needed to enforce an update of the whole stuff in case of updates where the version does not change (i.e. in particular in case of maintenance updates).
yes, this is exactly the case. i'll have to add such line to all binary subpackages that might be using private APIs (those that don't trigger .so version update) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c9 --- Comment #9 from Jan Matejek <jmatejek@suse.com> 2012-06-21 15:04:29 UTC --- the change was submitted as maint incident #125657 to openSUSE 12.1 i'll close the bug when i submit the same to Factory -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c10 --- Comment #10 from Benjamin Brunner <bbrunner@suse.com> 2012-07-02 12:11:57 CEST --- Update released for 12.1. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c11 --- Comment #11 from Swamp Workflow Management <swamp@suse.de> 2012-07-02 11:08:38 UTC --- openSUSE-RU-2012:0806-1: An update that has one recommended fix can now be installed. Category: recommended (low) Bug References: 766778 CVE References: Sources used: openSUSE 12.1 (src): python-2.7.2-7.17.1, python-base-2.7.2-7.17.1, python-doc-2.7-7.17.1 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c12 Ismail Donmez <idonmez@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO CC| |idonmez@suse.com InfoProvider| |jmatejek@suse.com --- Comment #12 from Ismail Donmez <idonmez@suse.com> 2012-08-12 11:12:26 UTC --- Currenly in Factory we have (for 64bit) python-2.7.3-6.1.x86_64.rpm python-base-2.7.3-6.2.x86_64.rpm Notice that the release versions differ, this can happen when the python-{base}.spec is updated but one of the package contents don't change and build-compare will detect that. Currently ~1000 packages are unresolvable due to this. I suggest reverting the change in python.spec. Leaving the changes in python-base.spec should fix the bug. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c13 --- Comment #13 from Ismail Donmez <idonmez@suse.com> 2012-08-12 15:51:14 UTC --- https://build.opensuse.org/request/show/130676 does what I said here. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c14 --- Comment #14 from Ismail Donmez <idonmez@suse.com> 2012-08-13 12:51:45 UTC --- I will check SR# 130676 in to unbreak the Factory, please speak up soon if you want to solve it some other way. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c15 Jan Matejek <jmatejek@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |RESOLVED InfoProvider|jmatejek@suse.com | Resolution| |FIXED --- Comment #15 from Jan Matejek <jmatejek@suse.com> 2012-08-13 15:53:44 UTC --- i checked-in the SR, un-breaking Factory is more important at this point. This still leaves the possibility of breakage if a subpackage of python.spec gets updated and doesn't pull the corresponding libpython or python-base. I don't really see a way out. Defining "custom release" symbol and propagating it through all specs could work, as this would make the new packages require a non-auto-generated value and thus they'd be different every time this value changed. But it would be error-prone and pain to maintain, which i'm trying to avoid here, not to mention that it partially defeats the purpose of build-compare. I guess we'll have to keep it at that and hope that no more cross-package changes happen in a bugfix release. I'm closing the bug as this specific issue is fixed; if any of you have suggestions on how to solve this, please comment. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c16 --- Comment #16 from Bernhard Wiedemann <bwiedemann@suse.com> 2012-08-13 18:00:08 CEST --- This is an autogenerated message for OBS integration: This bug (766778) was mentioned in https://build.opensuse.org/request/show/130731 Factory / python -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c17 --- Comment #17 from Bernhard Wiedemann <bwiedemann@suse.com> 2013-08-28 16:00:09 CEST --- This is an autogenerated message for OBS integration: This bug (766778) was mentioned in https://build.opensuse.org/request/show/196659 Maintenance / -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c18 --- Comment #18 from Bernhard Wiedemann <bwiedemann@suse.com> 2013-08-30 17:01:16 CEST --- This is an autogenerated message for OBS integration: This bug (766778) was mentioned in https://build.opensuse.org/request/show/196899 12.2 / python -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c Swamp Workflow Management <swamp@suse.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Status Whiteboard| |obs:running:1972:moderate -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=766778 https://bugzilla.novell.com/show_bug.cgi?id=766778#c19 --- Comment #19 from Swamp Workflow Management <swamp@suse.de> 2013-09-13 08:07:06 UTC --- openSUSE-SU-2013:1440-1: An update that solves one vulnerability and has one errata is now available. Category: security (moderate) Bug References: 766778,834601 CVE References: CVE-2013-4238 Sources used: openSUSE 12.2 (src): python-2.7.3-3.9.1, python-base-2.7.3-3.9.1, python-doc-2.7-3.9.1 -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=766778 Swamp Workflow Management <swamp@suse.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Whiteboard|obs:running:1972:moderate | -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com