rabbitmq-server 3.9.13 Mnesia Collector Throws Error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
RabbitMQ |
Fix Released
|
Unknown
|
|||
rabbitmq-server (Ubuntu) |
Incomplete
|
Undecided
|
Unassigned | ||
Jammy |
Incomplete
|
Undecided
|
Unassigned |
Bug Description
[ Impact ]
Background:
Mnesia is a distributed database that RabbitMQ uses to store information
about users, exchanges, queues, and bindings. Messages, however are not
stored in the database. More at
https:/
For monitoring rabbitmq it integrates prometheus.erl
https:/
* In the current version of rabbitmq in Jammy and Kinetic there is a bug
in the embedded prometheur.erl which crashes when reading that mnesia
info from rabbitmq but getting an "undefined".
* Without handling this more gracefully that crashes the collector
as outlined in more detail at
https:/
* The fix itself is not too complex, an abstraction of mnesia:table_info
that now catches the "undefined" case and in that case maps it to "0".
[ Test Plan ]
* To be defined after reporter feedback
[ Where problems could occur ]
* When looking at rabbitmq overall this seems to be a corner case;
The code change (and thereby the regression risk) would only affect
those people using the prometheus_
disfunctional without this fix anyway.
* We have all the usual "could always happen" issues like rebuilds
introducing other dependencies or anything similar - but those exist
whatever we do. Gladly we are not messing with configs, services or
anything else that is persistent.
[ Other Info ]
* The patch is from prometheus.erl upstream (which does not exist in the
archive on its own) and applied to rabbitmq which embeds the source.
---
The prometheus client in 3.9.13 contains a bug that crashes the prometheus_mnesia collector. Better described at https:/
The bug is fixed in rabbitmq-server 3.9.15 as noted in https:/
I'd like to request this package be bumped to 3.9.15 or the fix backported.
Related branches
- git-ubuntu bot: Approve
- Paride Legovini (community): Approve
- Christian Ehrhardt: Pending requested
-
Diff: 100 lines (+67/-1)4 files modifieddebian/changelog (+7/-0)
debian/control (+2/-1)
debian/patches/lp1988283-Handle-case-where-mnesia-table_info-2-returns-undefi.patch (+57/-0)
debian/patches/series (+1/-0)
- git-ubuntu bot: Approve
- Paride Legovini (community): Approve
- Christian Ehrhardt: Pending requested
-
Diff: 100 lines (+67/-1)4 files modifieddebian/changelog (+7/-0)
debian/control (+2/-1)
debian/patches/lp1988283-Handle-case-where-mnesia-table_info-2-returns-undefi.patch (+57/-0)
debian/patches/series (+1/-0)
Changed in rabbitmq-server (Ubuntu): | |
status: | New → Triaged |
Changed in rabbitmq: | |
status: | Unknown → Fix Released |
I didn't setup a reproducer for this one, but the situation looks pretty clear. Currently affected are:
rabbitmq-server | 3.9.13-1 | jammy
rabbitmq-server | 3.9.13-1 | kinetic
The 3.9.x releases are maintenance releases (see [1]), and as they appear to be bugfix only we could still fix this bug in Kinetic by packaging 3.9.15 (ahead of Debian).
I don't think the package has enough tests to do an "new upstream microrelease" upload: the autopkgtest is just a smoke tests, and the upstream tests are disabled in d/rules, so fixing the bug in Jammy will probably require cherry-picking the right commit.
[1] https:/ /rabbitmq. com/github. html