Comment 7 for bug 1451992

Revision history for this message
Victor Stinner (vstinner) wrote : Re: swift-object-server fails to start in devstack which kills the gate

Description of the traceback:

* swift/obj/diskfile.py imports the xattr module
* xattr is Python binding of the libxattr library, it is implemented with cffi
* if available, cffi uses the compiled module. For example, on my DevStack it's the file /usr/local/lib/python2.7/dist-packages/xattr/_cffi__x282d9483x6ee6f75.so (xattr 0.7.5, cffi 0.9.2)
* the compiled module is missing, cffi tries to write a C code to compile it as a library, but it fails to write the file, probably because the directory doesn't exist: /usr/local/lib/python2.7/dist-packages/xattr/__pycache__/_cffi__x282d9483x6ee6f75.c
* (cffi tries to create the directory, but ignores any OS error)

The "_cffi__(...).so" library is created at the installation of the cffi module.

There is no wheel package for xattr. DevStack builds a local wheel package for xattr. The wheel package contains the .so library, but it's not installed in the path expected by cffi. cffi looks in the .../xattr/__pycache__/ directory, whereas it is written in .../xattr/.