[Bug 1817055] Re: Broken dependency when setting swift-proxy on Bionic
Brian Murray
brian at ubuntu.com
Tue Mar 5 18:57:47 UTC 2019
Hello Pedro, or anyone else affected,
Accepted python-eventlet into cosmic-proposed. The package will build
now and be available at https://launchpad.net/ubuntu/+source/python-
eventlet/0.20.0-5ubuntu0.18.10.1 in a few hours, and then in the
-proposed repository.
Please help us by testing this new package. See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed. Your feedback will aid us getting this
update out to other Ubuntu users.
If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested and change the tag from
verification-needed-cosmic to verification-done-cosmic. If it does not
fix the bug for you, please add a comment stating that, and change the
tag to verification-failed-cosmic. In either case, without details of
your testing we will not be able to proceed.
Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in
advance for helping!
N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.
** Changed in: python-eventlet (Ubuntu Cosmic)
Status: In Progress => Fix Committed
** Tags added: verification-needed verification-needed-cosmic
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to python-eventlet in Ubuntu.
https://bugs.launchpad.net/bugs/1817055
Title:
Broken dependency when setting swift-proxy on Bionic
Status in OpenStack swift-proxy charm:
Invalid
Status in python-eventlet package in Ubuntu:
Fix Released
Status in python-eventlet source package in Bionic:
Fix Committed
Status in python-eventlet source package in Cosmic:
Fix Committed
Status in python-eventlet source package in Disco:
Fix Released
Bug description:
[Impact]
Swift proxy server will sometimes fail to start due to racy-ness in monkey patching by eventlet and daemon startup. Swift dies, no object storage.
[Test Case]
Deploy swift using the reference bundles for deploying OpenStack with Juju and the OpenStack charms.
Depending on the number of cores being used the stacktrace in the original bug report will be seen and swift-proxy will fail to startup.
[Regression Potential]
The workaround fix to ensure that the eventlet hub is correctly initialised has been in the upstream codebase since 2017 so low potential for regression.
[Original Bug Report]
Charm options:
swift-proxy:
charm: cs:swift-proxy
num_units: 3
bindings:
"": *oam-space
public: *public-space
admin: *admin-space
internal: *internal-space
swift-storage: *swift-cluster-space
options:
openstack-origin: *openstack-origin
vip: *swift-proxy-vip
region: *openstack-region
zone-assignment: manual
partition-power: *partition-power
workers: *workers
to:
- lxd:0
- lxd:1
- lxd:2
Setting up swift-proxy on Bionic causes swift-proxy.service to fail at
start with:
Feb 21 11:16:07 juju-29125a-0-lxd-15 systemd[1]: Stopped LSB: Swift proxy server.
Feb 21 11:16:07 juju-29125a-0-lxd-15 systemd[1]: swift-proxy.service: Failed to reset devices.list: Operation not permitted
Feb 21 11:16:07 juju-29125a-0-lxd-15 systemd[1]: Starting LSB: Swift proxy server...
Feb 21 11:16:07 juju-29125a-0-lxd-15 swift-proxy[41939]: * Starting Swift Swift proxy server swift-init proxy-server
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: Starting proxy-server...(/etc/swift/proxy-server.conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: Traceback (most recent call last):
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/bin/swift-proxy-server", line 23, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: sys.exit(run_wsgi(conf_file, 'proxy-server', **options))
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 912, in run_wsgi
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: loadapp(conf_path, global_conf=global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 390, in loadapp
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: ctx = loadcontext(loadwsgi.APP, conf_file, global_conf=global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 374, in loadcontext
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: global_conf=global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 296, in loadcontext
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: global_conf=global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 320, in _loadconfig
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: return loader.get_context(object_type, name, global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 66, in get_context
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: object_type, name=name, global_conf=global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 450, in get_context
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: global_additions=global_additions)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 562, in _pipeline_app_context
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: for name in pipeline[:-1]]
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/swift/common/wsgi.py", line 66, in get_context
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: object_type, name=name, global_conf=global_conf)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 458, in get_context
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: section)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 517, in _context_from_explicit
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: value = import_string(found_expr)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 22, in import_string
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: return pkg_resources.EntryPoint.parse("x=" + s).load(False)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2324, in load
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: return self.resolve()
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2330, in resolve
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: module = __import__(self.module_name, fromlist=['__name__'], level=0)
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py", line 221, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from keystoneauth1 import adapter
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/keystoneauth1/adapter.py", line 16, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from keystoneauth1 import session
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/keystoneauth1/session.py", line 40, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: import osprofiler.web as osprofiler_web
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/osprofiler/web.py", line 20, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from osprofiler import profiler
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/osprofiler/profiler.py", line 26, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from osprofiler import notifier
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/osprofiler/notifier.py", line 16, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from osprofiler.drivers import base
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/osprofiler/drivers/__init__.py", line 4, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from osprofiler.drivers import loginsight # noqa
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/osprofiler/drivers/loginsight.py", line 24, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from oslo_concurrency.lockutils import synchronized
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 27, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: import fasteners
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/fasteners/__init__.py", line 23, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from fasteners.lock import locked # noqa
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/fasteners/lock.py", line 24, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from fasteners import _utils
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/fasteners/_utils.py", line 22, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: from monotonic import monotonic as now # noqa
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: File "/usr/lib/python2.7/dist-packages/monotonic.py", line 164, in <module>
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: raise RuntimeError('no suitable implementation for this system')
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: RuntimeError: no suitable implementation for this system
Feb 21 11:16:08 juju-29125a-0-lxd-15 swift-proxy[41939]: ...fail!
Feb 21 11:16:08 juju-29125a-0-lxd-15 systemd[1]: Started LSB: Swift proxy server.
Looking at errors for monotonic lib, I can find other references around github:
https://github.com/nameko/nameko/issues/533
https://github.com/eventlet/eventlet/issues/401
Swift-proxy indeed depends on eventlet:
root at juju-29125a-0-lxd-15:~# dpkg -l | grep eventlet
ii python-eventlet 0.20.0-4 all concurrent networking library - Python 2.x
And then the issue described at:
https://github.com/eventlet/eventlet/issues/401 applies.
Moving back to Xenial seems to stabilize swift proxy.
To manage notifications about this bug go to:
https://bugs.launchpad.net/charm-swift-proxy/+bug/1817055/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list