ImportError: /usr/lib/python2.7/dist-packages/pyeclib_c.so: undefined symbol: liberasurecode_backend_available

Bug #1586220 reported by clayg
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PyECLib
Fix Released
High
Thiago da Silva
liberasurecode
Fix Released
High
Thiago da Silva

Bug Description

Building pyeclib release 1.2.1 produces a *warning*

src/c/pyeclib_c/pyeclib_c.c: In function 'pyeclib_c_check_backend_available':
src/c/pyeclib_c/pyeclib_c.c:1185:5: warning: implicit declaration of function 'liberasurecode_backend_available' [-Wimplicit-function-declaration]
     if (liberasurecode_backend_available(backend_id)) {
     ^

and then doesn't work:

Traceback (most recent call last):
  File "/opt/ss/bin/swift-object-reconstructor", line 17, in <module>
    from swift.obj.reconstructor import ObjectReconstructor
  File "/usr/lib/pymodules/python2.7/swift/obj/reconstructor.py", line 42, in <module>
    from swift.obj.diskfile import DiskFileRouter, get_data_dir, \
  File "/usr/lib/pymodules/python2.7/swift/obj/diskfile.py", line 55, in <module>
    from swift.common.request_helpers import is_sys_meta
  File "/usr/lib/pymodules/python2.7/swift/common/request_helpers.py", line 32, in <module>
    from swift.common.storage_policy import POLICIES
  File "/usr/lib/pymodules/python2.7/swift/common/storage_policy.py", line 25, in <module>
    from pyeclib.ec_iface import ECDriver, ECDriverError, VALID_EC_TYPES
  File "/usr/lib/python2.7/dist-packages/pyeclib/ec_iface.py", line 29, in <module>
    from pyeclib_c import check_backend_available
ImportError: /usr/lib/python2.7/dist-packages/pyeclib_c.so: undefined symbol: liberasurecode_backend_available

It seems that pyeclib 1.2.1 requires a newer (unreleased) version of liberasurecode and doesn't know it - and then doesn't have the good sense not to build.

I'd be happy with just a release of liberasurecode that includes the needed bits:

https://github.com/openstack/liberasurecode/commit/c7a94df0724af30b26e3856f9c14344fc9b73a09

Changed in pyeclib:
assignee: nobody → Thiago da Silva (thiagodasilva)
Changed in liberasurecode:
assignee: nobody → Thiago da Silva (thiagodasilva)
importance: Undecided → High
Changed in pyeclib:
importance: Undecided → High
Revision history for this message
clayg (clay-gerrard) wrote :

this is all sorts of totally working for me now

Changed in pyeclib:
status: New → Confirmed
Changed in liberasurecode:
status: New → Confirmed
Revision history for this message
Kota Tsuyuzaki (tsuyuzaki-kota) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to pyeclib (master)

Reviewed: https://review.openstack.org/351564
Committed: https://git.openstack.org/cgit/openstack/pyeclib/commit/?id=10802bac59b694c0935e2b72ef47972ded702e76
Submitter: Jenkins
Branch: master

commit 10802bac59b694c0935e2b72ef47972ded702e76
Author: Kota Tsuyuzaki <email address hidden>
Date: Fri Aug 5 01:18:58 2016 -0700

    Add tox/requirements settings to pass gate job

    Plus, we need liberasurecode version handling for a few place because
    some tests/engine itself is broken with a lack of backword
    compatibility.

    Closes-Bug: #1586220

    Change-Id: I72adaefa10875a73e3e5304eb40fe5d9f6d2598a

Changed in pyeclib:
status: Confirmed → Fix Released
Changed in liberasurecode:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.