Bug 787761

Summary: undefined symbol: libvirt_event_poll_purge_timeout_semaphore
Product: Red Hat Enterprise Linux 6 Reporter: Alex Jia <ajia>
Component: libvirtAssignee: Gunannan Ren <gren>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.3CC: acathrow, dallan, dyuan, gsun, mzhan, rwu, veillard
Target Milestone: rcKeywords: TestBlocker
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.9.10-0rc2.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 06:47:56 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 Alex Jia 2012-02-06 16:47:38 UTC
Description of problem:
Undefined symbol: libvirt_event_poll_purge_timeout_semaphore.

Version-Release number of selected component (if applicable):
# rpm -qa|grep libvirt
libvirt-python-0.9.10-0rc1.el6.x86_64
libvirt-0.9.10-0rc1.el6.x86_64

How reproducible:
always

Steps to Reproduce:
# python
Python 2.6.6 (r266:84292, Sep 12 2011, 14:03:14) 
[GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import libvirt

  
Actual results:
>>> import libvirt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 25, in <module>
    raise lib_e
ImportError: /usr/lib64/python2.6/site-packages/libvirtmod.so: undefined symbol: libvirt_event_poll_purge_timeout_semaphore


Expected results:
fix it.

Additional info:

Comment 1 Alex Jia 2012-02-06 17:05:23 UTC
The bug will block other python binding client work such as vdsm and virt-manager etc.

# virt-manager
Traceback (most recent call last):
  File "/usr/share/virt-manager/virt-manager.py", line 383, in <module>
    main()
  File "/usr/share/virt-manager/virt-manager.py", line 246, in main
    from virtManager import cli
  File "/usr/share/virt-manager/virtManager/cli.py", line 29, in <module>
    import libvirt
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 25, in <module>
    raise lib_e
ImportError: /usr/lib64/python2.6/site-packages/libvirtmod.so: undefined symbol: libvirt_event_poll_purge_timeout_semaphore

Comment 3 Gunannan Ren 2012-02-07 02:53:02 UTC
The problem is that we need to link probes.o to libvirtmod.
Now, After we do it, it shows another problem in libvirtmod as the link showed.
https://www.redhat.com/archives/libvir-list/2012-February/msg00249.html
these two issue could be solved together.

Comment 4 Gunannan Ren 2012-02-07 14:24:05 UTC
According to the mail thread in comment 3.
The problem is made by the python library link against 'libvirt_util.la'.

Comment 5 Alex Jia 2012-02-07 15:07:43 UTC
The patch has been ACKed and pushed, and I verified the patch, it indeed works well for me, so move the bug to POST status, please change bug status if it has still any question.

commit f2445e4de70547e32a6bcec3e1e8e51f02ac5b36
Author: Michal Privoznik <mprivozn>
Date:   Tue Feb 7 13:30:42 2012 +0100

    pyhton: Don't link against libvirt_util.la
    
    As we already link with libvirt.la which contains libvirt_utils.la.
    Double linking causes global symbols to be presented twice and
    thus confusion. This partially reverts c700613b8d463212d142c97108b7a2352e23e559

Comment 6 Daniel Veillard 2012-02-08 09:52:17 UTC
Fixed in libvirt-0.9.10-0rc2.el6

Daniel

Comment 7 Alex Jia 2012-02-08 10:07:06 UTC
The bug has been verified on rhel6.3 with libvirt-0.9.10-0rc2.el6.

# python
Python 2.6.6 (r266:84292, Sep 12 2011, 14:03:14) 
[GCC 4.4.5 20110214 (Red Hat 4.4.5-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import libvirt
>>> con = libvirt.open(None)
>>> con.listDefinedDomains()
['win2008', 'foo-clone', 'foo', 'vr-rhel5u8-x86_64-kvm']
>>> dom = con.lookupByName(con.listDefinedDomains()[0])
>>> dom.vcpuPinInfo(0)
[(True, True)]
......

I can successfully import libvirt module.

Comment 10 Alex Jia 2012-02-28 03:53:23 UTC
Move the bug to VERIFIED status based on Comment 7.

Comment 12 errata-xmlrpc 2012-06-20 06:47:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2012-0748.html