1ed9f9dac5
When the resource tracker has to lock a compute host for updates or inspection, it uses a single semaphore. In most cases, this is fine, as a compute process only is tracking one hypervisor. However, in Ironic, it's possible for one compute process to track many hypervisors. In this case, wait queues for instance claims can get "stuck" briefly behind longer processing loops such as the update_resources periodic job. The reason this is possible is because the oslo.lockutils synchronized library does not use fair locks by default. When a lock is released, one of the threads waiting for the lock is randomly allowed to take the lock next. A fair lock ensures that the thread that next requested the lock will be allowed to take it. This should ensure that instance claim requests do not have a chance of losing the lock contest, which should ensure that instance build requests do not queue unnecessarily behind long-running tasks. This includes bumping the oslo.concurrency dependency; fair locks were added in 3.29.0 (I37577becff4978bf643c65fa9bc2d78d342ea35a). Change-Id: Ia5e521e0f0c7a78b5ace5de9f343e84d872553f9 Related-Bug: #1864122
172 lines
2.9 KiB
Plaintext
172 lines
2.9 KiB
Plaintext
alembic==0.9.8
|
|
amqp==2.2.2
|
|
appdirs==1.4.3
|
|
asn1crypto==0.24.0
|
|
attrs==17.4.0
|
|
automaton==1.14.0
|
|
Babel==2.3.4
|
|
bandit==1.1.0
|
|
cachetools==2.0.1
|
|
castellan==0.16.0
|
|
cffi==1.11.5
|
|
cliff==2.11.0
|
|
cmd2==0.8.1
|
|
colorama==0.3.9
|
|
coverage==4.0
|
|
cryptography==2.7
|
|
cursive==0.2.1
|
|
ddt==1.0.1
|
|
debtcollector==1.19.0
|
|
decorator==3.4.0
|
|
deprecation==2.0
|
|
dogpile.cache==0.6.5
|
|
enum34==1.0.4
|
|
enum-compat==0.0.2
|
|
eventlet==0.20.0
|
|
extras==1.0.0
|
|
fasteners==0.14.1
|
|
fixtures==3.0.0
|
|
flake8==3.6.0
|
|
future==0.16.0
|
|
futurist==1.8.0
|
|
gabbi==1.35.0
|
|
gitdb2==2.0.3
|
|
GitPython==2.1.8
|
|
greenlet==0.4.10
|
|
hacking==2.0
|
|
idna==2.6
|
|
iso8601==0.1.11
|
|
Jinja2==2.10
|
|
jmespath==0.9.3
|
|
jsonpatch==1.21
|
|
jsonpath-rw==1.4.0
|
|
jsonpath-rw-ext==1.1.3
|
|
jsonpointer==2.0
|
|
jsonschema==2.6.0
|
|
keystoneauth1==3.16.0
|
|
keystonemiddleware==4.20.0
|
|
kombu==4.1.0
|
|
linecache2==1.0.0
|
|
lxml==3.4.1
|
|
Mako==1.0.7
|
|
MarkupSafe==1.0
|
|
mccabe==0.6.0
|
|
microversion-parse==0.2.1
|
|
mock==3.0.0
|
|
monotonic==1.4
|
|
msgpack==0.5.6
|
|
msgpack-python==0.5.6
|
|
munch==2.2.0
|
|
netaddr==0.7.18
|
|
netifaces==0.10.4
|
|
networkx==1.11
|
|
numpy==1.14.2
|
|
openstacksdk==0.35.0
|
|
os-brick==2.6.2
|
|
os-client-config==1.29.0
|
|
os-resource-classes==0.4.0
|
|
os-service-types==1.7.0
|
|
os-traits==2.1.0
|
|
os-vif==1.14.0
|
|
os-win==3.0.0
|
|
os-xenapi==0.3.3
|
|
osc-lib==1.10.0
|
|
oslo.cache==1.26.0
|
|
oslo.concurrency==3.29.0
|
|
oslo.config==6.1.0
|
|
oslo.context==2.21.0
|
|
oslo.db==4.44.0
|
|
oslo.i18n==3.15.3
|
|
oslo.log==3.36.0
|
|
oslo.messaging==10.3.0
|
|
oslo.middleware==3.31.0
|
|
oslo.policy==2.3.0
|
|
oslo.privsep==1.33.2
|
|
oslo.reports==1.18.0
|
|
oslo.rootwrap==5.8.0
|
|
oslo.serialization==2.21.1
|
|
oslo.service==1.40.1
|
|
oslo.upgradecheck==0.1.1
|
|
oslo.utils==3.40.2
|
|
oslo.versionedobjects==1.35.0
|
|
oslo.vmware==2.17.0
|
|
oslotest==3.8.0
|
|
osprofiler==1.4.0
|
|
ovs==2.10.0
|
|
ovsdbapp==0.15.0
|
|
packaging==17.1
|
|
paramiko==2.0.0
|
|
Paste==2.0.2
|
|
PasteDeploy==1.5.0
|
|
pbr==2.0.0
|
|
pluggy==0.6.0
|
|
ply==3.11
|
|
prettytable==0.7.1
|
|
psutil==3.2.2
|
|
psycopg2==2.7
|
|
py==1.5.2
|
|
pyasn1==0.4.2
|
|
pyasn1-modules==0.2.1
|
|
pycadf==2.7.0
|
|
pycparser==2.18
|
|
pyflakes==2.0.0
|
|
pycodestyle==2.4.0
|
|
pyinotify==0.9.6
|
|
pyroute2==0.5.4
|
|
PyJWT==1.7.0
|
|
PyMySQL==0.7.6
|
|
pyOpenSSL==17.5.0
|
|
pyparsing==2.2.0
|
|
pyperclip==1.6.0
|
|
pypowervm==1.1.15
|
|
pytest==3.4.2
|
|
python-barbicanclient==4.5.2
|
|
python-cinderclient==3.3.0
|
|
python-dateutil==2.5.3
|
|
python-editor==1.0.3
|
|
python-glanceclient==2.8.0
|
|
python-ironicclient==2.7.0
|
|
python-keystoneclient==3.15.0
|
|
python-mimeparse==1.6.0
|
|
python-neutronclient==6.7.0
|
|
python-subunit==1.2.0
|
|
pytz==2018.3
|
|
PyYAML==3.12
|
|
repoze.lru==0.7
|
|
requests==2.14.2
|
|
requests-mock==1.2.0
|
|
requestsexceptions==1.4.0
|
|
retrying==1.3.3
|
|
rfc3986==1.1.0
|
|
Routes==2.3.1
|
|
simplejson==3.13.2
|
|
six==1.10.0
|
|
smmap2==2.0.3
|
|
sortedcontainers==2.1.0
|
|
SQLAlchemy==1.2.19
|
|
sqlalchemy-migrate==0.13.0
|
|
sqlparse==0.2.4
|
|
statsd==3.2.2
|
|
stestr==1.0.0
|
|
stevedore==1.20.0
|
|
suds-jurko==0.6
|
|
taskflow==2.16.0
|
|
Tempita==0.5.2
|
|
tenacity==4.9.0
|
|
testrepository==0.0.20
|
|
testresources==2.0.0
|
|
testscenarios==0.4
|
|
testtools==2.2.0
|
|
tooz==1.58.0
|
|
traceback2==1.4.0
|
|
unittest2==1.1.0
|
|
urllib3==1.22
|
|
vine==1.1.4
|
|
voluptuous==0.11.1
|
|
warlock==1.2.0
|
|
WebOb==1.8.2
|
|
websockify==0.9.0
|
|
wrapt==1.10.11
|
|
wsgi-intercept==1.7.0
|
|
zVMCloudConnector==1.3.0
|