transport_url is being parsed different when forking with oslo.service
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Invalid
|
Undecided
|
Unassigned | ||
oslo.messaging |
Fix Released
|
Undecided
|
ChangBo Guo(gcb) |
Bug Description
This is a strange one. I had setup my transport_url incorrectly which made me discover this. I am filing this bug because I believe there is one.
When using a correctly formatted transport_url that was missing data _and_ multiple workers for conductor it would incorrectly parse the transport_url.
Here is the incorrect transport_url:
rabbit:
The correct transport_url should be:
rabbit:
According to the docs [1], when the username and password is not specified, the server should be omitted from the list of servers. So for the incorrect transport_url only server01 would be setup. Here is a list of scenarios and what the behavior I see is.
* with the incorrect transport_url and a single thread all services contact only server01
* with the incorrect transport_url and multiple threads all services contact only server01 _except_ conductor which will attempt to contact server02 with the default username and password
* with the correct transport_url all services contact server01 and server02 properly
To reproduce this, get two rabbitmq hosts and set the incorrect transport_url and at least 2 conductor workers. Look at the rabbitmq logs on server02 and youll see it is trying to login via the guest user. Set the number of workers to 1 and notice there is no bad logins in rabbitmq logs. Fix the transport_url and it will use all servers appropriately no matter the number of workers.
The following is a gut feeling. I believe the issue is around the point it gets forked with oslo.service. It may not properly be reparsing the transport_url. I couldn't prove that though.
Nova versions tested: 13.0.0 and 13.1.0
all libraries were within the upper-constraints for mitaka
[1] http://
this feels like it may very well be an issue in oslo.service itself, adding that