just installing scciclient may break ironic-conductor

Bug #1518999 reported by Pavlo Shchelokovskyy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
Undecided
Naohiro Tamura

Bug Description

we got that when using ironic from debian packages as of stable/liberty

Note: I am not sure how appropriate the reproducer below is, but that's generally how things would work when installing from built packages, not development versions as devstack does.

to repro that on recent devstack/master with ironic/master do the following:

$ # make a new clean virtual env (I'm using virtualenvwrapper)
$ mkvirtualenv ironic

$ pip install git+https://github.com/openstack/ironic.git

$ # install some missing dependencies in the virtualenv
$ pip install pymysql python-ironic-inspector-client

$ # no irmc drivers are even enabled
$ grep enabled_drivers /etc/ironic/ironic.conf | grep -v "^#"
enabled_drivers = fake,agent_ssh,agent_ipmitool

$ # no irmc drivers are installed
$ # start ironic-conductor from virtualenv, stop by Ctrl-C
$ which ironic-conductor
/home/pshchelo/.virtualenvs/ironic/bin/ironic-conductor
$ ironic-conductor --config-file=/etc/ironic/ironic.conf

$ # everything works
$ # now install python-scciclient, even without dependencies
$ pip install python-scciclient --no-deps
$ pip freeze | grep scci
python-scciclient==0.2.0

$ # and try starting ironic-conductor again
$ ironic-conductor --config-file=/etc/ironic/ironic.conf

you get the following traceback

Traceback (most recent call last):
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 457, in fire_timers
    timer()
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/eventlet/hubs/timer.py", line 58, in __call__
    cb(*args, **kw)
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/eventlet/semaphore.py", line 145, in _do_acquire
    waiter.switch()
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main
    result = function(*args, **kwargs)
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/oslo_service/service.py", line 660, in run_service
    service.start()
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/ironic/common/service.py", line 81, in start
    self.manager.init_host()
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/ironic/conductor/manager.py", line 257, in init_host
    self._driver_factory = driver_factory.DriverFactory()
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 87, in __init__
    DriverFactory._init_extension_manager()
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 254, in inner
    return f(*args, **kwargs)
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 127, in _init_extension_manager
    on_load_failure_callback=_catch_driver_not_found))
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/stevedore/dispatch.py", line 155, in __init__
    verify_requirements=verify_requirements,
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/stevedore/enabled.py", line 60, in __init__
    verify_requirements=verify_requirements,
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/stevedore/extension.py", line 92, in __init__
    verify_requirements)
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/stevedore/extension.py", line 170, in _load_plugins
    self._on_load_failure_callback(self, ep, err)
  File "/home/pshchelo/.virtualenvs/ironic/local/lib/python2.7/site-packages/ironic/common/driver_factory.py", line 116, in _catch_driver_not_found
    raise exception.DriverLoadError(driver=ep.name, reason=exc)
DriverLoadError: Driver fake could not be loaded. Reason: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. Are you sure that git is installed?.

even when installing scciclient with dependencies, which downgrades pbr to 0.11.0, error and traceback are the same

Even bigger problem is that the traceback is very cryptic, as it gives impression that the problem is with fake driver. Only enabling some logging in pbr/packaging.py:get_version reveals that it breaks when processing scciclient.

Ironic should at least fail with more clear message in such cases.

Reason seems to be python-scciclient is still requiring pbr < 1.0, while ironic requires pbr>=1.6. I will file a bug to python-scciclient on LP as well.

Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :
Changed in ironic:
assignee: nobody → Naohiro Tamura (naohirot)
Revision history for this message
Naohiro Tamura (naohirot) wrote :
Revision history for this message
Naohiro Tamura (naohirot) wrote :

Removed the duplication tag with https://bugs.launchpad.net/python-scciclient/+bug/1519000, since driver-requirements.txt
 is necessary to update.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/253358

Changed in ironic:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/253362

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/254518

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on ironic (stable/liberty)

Change abandoned by Naohiro Tamura (<email address hidden>) on branch: stable/liberty
Review: https://review.openstack.org/254518
Reason: duplicated with https://review.openstack.org/#/c/253362/

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/253358
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=e936fbfda1294c050674332a204ce4ee77aa1f8e
Submitter: Jenkins
Branch: master

commit e936fbfda1294c050674332a204ce4ee77aa1f8e
Author: Naohiro Tamura <email address hidden>
Date: Fri Dec 4 16:31:01 2015 +0900

    Update python-scciclient version number

    This patch updates python-scciclient version number for iRMC drivers.

    Change-Id: I79e8b82b34e702e59ebe0f92746d10a0f3c955a8
    closes-bug: #1518999
    closes-bug: #1519000

Changed in ironic:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (stable/liberty)

Reviewed: https://review.openstack.org/253362
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=fcc01c1ebc4c44ecf421f37f3fdede581ea04e6b
Submitter: Jenkins
Branch: stable/liberty

commit fcc01c1ebc4c44ecf421f37f3fdede581ea04e6b
Author: Naohiro Tamura <email address hidden>
Date: Fri Dec 4 16:31:01 2015 +0900

    Update python-scciclient version number

    This patch updates python-scciclient version number for iRMC drivers.

    Change-Id: I3f0a15b09d05379f6e4e59c81754c2c76712200b
    closes-bug: #1518999
    closes-bug: #1519000
    (cherry picked from commit e936fbfda1294c050674332a204ce4ee77aa1f8e)

tags: added: in-stable-liberty
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.