This patch is to fix a recent issue that we saw with Swift in
the overcloud. The basic problem is a version mismatch between
the version of cffi installed in the Swift venv and the version
of cffi for which the python xattr module in the Swift venv
has pre-built support. The version of xattr installed has
pre-built support for cffi 0.8.2, whereas cffi 0.8.6 is installed.
Because of this, at swift-object start-up the cffi 0.8.6 module
attempts to build the appropriate C file in the python xattr
directory and fails because it doesn't have write permission
on the python xattr directory. The reason is that the Swift venv
is installed by root, whereas Swift is run as the "swift" user.
To fix this we've added a new module 76-swift-cffi which is run at
install time and executes a simple python command:
from xattr import getxattr, setxattr
in the Swift venv. This forces a build of the correct cffi library
in the xattr module.
Reviewed: https:/ /review. openstack. org/119381 /git.openstack. org/cgit/ openstack/ tripleo- image-elements/ commit/ ?id=e20862dfed7 07a1b534e6cd953 a673eff7ffa4b4
Committed: https:/
Submitter: Jenkins
Branch: master
commit e20862dfed707a1 b534e6cd953a673 eff7ffa4b4
Author: Eamonn O'Toole <email address hidden>
Date: Fri Sep 5 15:07:18 2014 +0100
Fix swift object-server cffi version mismatch bug
This patch is to fix a recent issue that we saw with Swift in
the overcloud. The basic problem is a version mismatch between
the version of cffi installed in the Swift venv and the version
of cffi for which the python xattr module in the Swift venv
has pre-built support. The version of xattr installed has
pre-built support for cffi 0.8.2, whereas cffi 0.8.6 is installed.
Because of this, at swift-object start-up the cffi 0.8.6 module
attempts to build the appropriate C file in the python xattr
directory and fails because it doesn't have write permission
on the python xattr directory. The reason is that the Swift venv
is installed by root, whereas Swift is run as the "swift" user.
To fix this we've added a new module 76-swift-cffi which is run at
install time and executes a simple python command:
from xattr import getxattr, setxattr
in the Swift venv. This forces a build of the correct cffi library
in the xattr module.
Change-Id: Ied7cbd1db2bf5a 0638324dcb8ac71 35d03ed9aad
Closes-Bug: #1340776