Glance deployment with python3 + "keystone" paste_deploy flavor Fails
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Invalid
|
Undecided
|
Unassigned | ||
keystonemiddleware |
Fix Released
|
Undecided
|
wangxiyuan | ||
oslo.config |
Invalid
|
Undecided
|
Unassigned | ||
python-keystonemiddleware (Ubuntu) |
Fix Released
|
High
|
James Page |
Bug Description
This happens with oslo.config >= 6.3.0([1]) + python3 + "keystone" paste_deploy + current glance(before https:/
Testing in devstack: https:/
The glance api service fails to start with below Error, reproducing here: https:/
ERROR: dictionary changed size during iteration , see logs below
Failure logs from job:- http://
The Runtime Error is returned at keystonemiddlew
Adding code snippet here:-
if self._conf.
oslo_
So with pdb found that an additional key(fatal_
There are multiple ways to avoid it, like use the paste_deploy configuration that works(ex: keystone+
with keystone+
But it seems a real issue to me as it may happen in python3 at different places. So it would be good if Teams from affected projects(
To me it looks like keystonemiddleware is not handling(comparing the dict) it properly for python3, as the conf is dynamically updated(how ? and when ?).
- so can oslo.config Team check if glance and keystonmiddleware are handling/using oslo.config properly.
- i checked keystone+
- If it's wrongly used in keystonemiddlew
Initially detected while testing with Fedora[2], but later digged on why it's working in CI with Ubuntu and started [3].
[1] https:/
[2] https:/
[3] https:/
Changed in python-keystonemiddleware (Ubuntu): | |
status: | New → In Progress |
assignee: | nobody → James Page (james-page) |
importance: | Undecided → High |
I suspect that != line should be changed to "is not" for an object identity comparison instead of equality comparison.