Bug 1082584

Summary: libmpi.so.0: cannot open shared object file: No such file or directory
Product: [Fedora] Fedora EPEL Reporter: Chris Webb <christopher.webb>
Component: pyparAssignee: Susi Lehtola <susi.lehtola>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: el6CC: susi.lehtola
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: pypar-2.1.5_108-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-04-15 23:29:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Chris Webb 2014-03-31 12:03:12 UTC
Description of problem:

pypar fails to load

Version-Release number of selected component (if applicable):

[spimcmw@nanlnx1 ~]0% rpm -q openmpi pypar-common pypar-openmpi
openmpi-1.5.4-2.el6.x86_64
pypar-common-2.1.4_94-3.el6.noarch
pypar-openmpi-2.1.4_94-3.el6.x86_64
[spimcmw@nanlnx1 ~]0% 


How reproducible:

Every time.

Steps to Reproduce:

[spimcmw@nanlnx15 ~]0% python
Python 2.6.6 (r266:84292, Nov 21 2013, 12:39:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pypar
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/openmpi/pypar/__init__.py", line 33, in <module>
    from pypar import *
  File "/usr/lib64/python2.6/site-packages/openmpi/pypar/pypar.py", line 863, in <module>
    mpi = CDLL('libmpi.so.0', RTLD_GLOBAL)
  File "/usr/lib64/python2.6/ctypes/__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libmpi.so.0: cannot open shared object file: No such file or directory
>>> 

Actual results:

pypar fails to import

Expected results:

pypar should import

Additional info:

libmpi.so.0 does not exist:

[spimcmw@nanlnx15 ~]0% ls -l /usr/lib64/openmpi/lib/libmpi.so*
lrwxrwxrwx. 1 root root      15 Feb 21 10:59 /usr/lib64/openmpi/lib/libmpi.so -> libmpi.so.1.0.2
lrwxrwxrwx. 1 root root      15 Feb 21 10:59 /usr/lib64/openmpi/lib/libmpi.so.1 -> libmpi.so.1.0.2
-rwxr-xr-x. 1 root root 1395848 Nov 25 19:20 /usr/lib64/openmpi/lib/libmpi.so.1.0.2

However libmpi.so.0 is not linked against:

[spimcmw@nanlnx15 ~]0% ldd /usr/lib64/python2.6/site-packages/openmpi/pypar/mpiext.so 
	linux-vdso.so.1 =>  (0x00007fff39788000)
	libmpi.so.1 => /usr/lib64/openmpi/lib/libmpi.so.1 (0x00007fa32f205000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fa32efe9000)
	libpython2.6.so.1.0 => /usr/lib64/libpython2.6.so.1.0 (0x00007fa32ec43000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa32ea26000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fa32e691000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fa32e478000)
	libutil.so.1 => /lib64/libutil.so.1 (0x00007fa32e275000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fa32dff0000)
	libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fa32dde7000)
	/lib64/ld-linux-x86-64.so.2 (0x00000036ae800000)
[spimcmw@nanlnx15 ~]0% 


/usr/lib64/python2.6/site-packages/openmpi/pypar/pypar.py contains:

    # Work around bug in OpenMPI (December 2009): 
    # https://bugs.launchpad.net/ubuntu/+source/petsc4py/+bug/232036
    from ctypes import *
    mpi = CDLL('libmpi.so.0', RTLD_GLOBAL)
    # End work around

Update libmpi.so.0 to libmpi.so.1 and it works:


[spimcmw@nanlnx15 ~]0% python
Python 2.6.6 (r266:84292, Nov 21 2013, 12:39:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pypar
Pypar (version 2.1.4) initialised MPI OK with 1 processors
>>>

Comment 1 Susi Lehtola 2014-03-31 12:46:21 UTC
Does it work if you remove the

    # Work around bug in OpenMPI (December 2009): 
    # https://bugs.launchpad.net/ubuntu/+source/petsc4py/+bug/232036
    from ctypes import *
    mpi = CDLL('libmpi.so.0', RTLD_GLOBAL)
    # End work around

section altogether?

Comment 2 Chris Webb 2014-03-31 12:55:01 UTC
I did try that, it generates the followimg error:

[spimcmw@cnsdesk1 ~]0% python
Python 2.6.6 (r266:84292, Nov 21 2013, 12:39:37) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pypar
python: symbol lookup error: /usr/lib64/openmpi/lib/openmpi/mca_paffinity_hwloc.so: undefined symbol: mca_base_param_reg_int
[spimcmw@cnsdesk1 ~]127%

Comment 3 Susi Lehtola 2014-03-31 13:13:39 UTC
This is the same issue as in bug #754262.
I'm syncing the EPEL6 branch with rawhide.

Comment 4 Fedora Update System 2014-03-31 13:25:26 UTC
pypar-2.1.5_108-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/pypar-2.1.5_108-1.el6

Comment 5 Fedora Update System 2014-03-31 18:25:05 UTC
Package pypar-2.1.5_108-1.el6:
* should fix your issue,
* was pushed to the Fedora EPEL 6 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing pypar-2.1.5_108-1.el6'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2014-1019/pypar-2.1.5_108-1.el6
then log in and leave karma (feedback).

Comment 6 Fedora Update System 2014-04-15 23:29:21 UTC
pypar-2.1.5_108-1.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.