rabbitmq-server is always restarted on config-changed hook firing
Bug #1409805 reported by
Billy Olsen
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
rabbitmq-server (Juju Charms Collection) |
Fix Released
|
High
|
Billy Olsen |
Bug Description
Whenever a juju config-changed hook is fired on the rabbitmq-server services, the rabbitmq service is restarted - regardless of whether a change was actively made or not.
This causes problems in deployments such as openstack services which are using the rabbitmq-server as they do not have any heartbeating mechanism so it causes various timeouts and random failures of API requests etc when the rabbitmq service is restarted.
One of the notable conditions this is occuring appears to be when a juju backup is performed (see https:/
Related branches
lp://staging/~billy-olsen/charms/trusty/rabbitmq-server/improved-restarts
- James Page: Approve
- Review Queue (community): Needs Fixing (automated testing)
- Liam Young: Pending requested
- Edward Hope-Morley: Pending requested
- charmers: Pending requested
-
Diff: 223 lines (+79/-29)2 files modifiedhooks/rabbit_utils.py (+38/-0)
hooks/rabbitmq_server_relations.py (+41/-29)
Changed in rabbitmq-server (Juju Charms Collection): | |
assignee: | nobody → Billy Olsen (billy-olsen) |
status: | New → In Progress |
Changed in rabbitmq-server (Juju Charms Collection): | |
status: | In Progress → Fix Committed |
Changed in rabbitmq-server (Juju Charms Collection): | |
importance: | Undecided → High |
To post a comment you must log in.
Note: checking the config-changed hook logic - the service is always being restarted in most cases http:// bazaar. launchpad. net/~charmers/ charms/ trusty/ rabbitmq- server/ trunk/view/ head:/hooks/ rabbitmq_ server_ relations. py#L632. I believe the only case it is not being restarted in is when the charm is part of an ha relationship in an active-passive configuration and the current node is not the elected leader, effectively causing a restart for all cases in which the rabbitmq-server is available for use.