Public bug reported:

[Impact]

When a client terminates uncleanly, the global counters for publishers
and consumers do not handle this gracefully.

For the consumer metric, the value of the gauge does not decrease after the 
termination, and so the value ever-increases.
For the publisher metric, the value of the gauge decreases below zero and does 
not recover, leading to a ever-decreasing negative value on the gauge.

[Test plan]

lxc launch ubuntu:jammy rabbitmq-jammy-test

lxc shell rabbitmq-jammy-test

apt install -y rabbitmq-server

echo '[rabbitmq_prometheus].' > /etc/rabbitmq/enabled_plugins

systemctl restart rabbitmq-server.service

wget https://github.com/rabbitmq/rabbitmq-perf-
test/releases/download/v2.21.0/perf-test-2.21.0.jar

apt install -y default-jre

for i in $(seq 1 5); do java -jar perf-test-2.21.0.jar --time 5; curl -s
127.0.0.1:15692/metrics | grep -E
'rabbitmq_global_(consumers|publishers){'; done

The output of this command shows the value of the
rabbitmq_global_consumers and rabbitmq_global_publishers after each
execution of the test. The problem described of monotonically increasing
and decreasing values will be observed. As we are connecting and
disconnecting a single client the expected value should be 0 for both
counters.

[Where problems could occur]

This is a simple patch that calls the functions for deleting consumers
and publishers in the correct places. It should not break anything else
than the counters themselves but they were broken to begin with.

[Other Info]

This was patched upstream from version 3.10 so this patch is already
applied to Noble and Oracular that use version 3.12. This is the
upstream patch: https://github.com/rabbitmq/rabbitmq-server/pull/6244

** Affects: rabbitmq-server (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: rabbitmq-server (Ubuntu Jammy)
     Importance: Undecided
     Assignee: Jorge Merlino (jorge-merlino)
         Status: New

** Also affects: rabbitmq-server (Ubuntu Jammy)
   Importance: Undecided
       Status: New

** Changed in: rabbitmq-server (Ubuntu Jammy)
     Assignee: (unassigned) => Jorge Merlino (jorge-merlino)

** Description changed:

  [Impact]
  
  When a client terminates uncleanly, the global counters for publishers
  and consumers do not handle this gracefully.
  
  For the consumer metric, the value of the gauge does not decrease after the 
termination, and so the value ever-increases.
  For the publisher metric, the value of the gauge decreases below zero and 
does not recover, leading to a ever-decreasing negative value on the gauge.
  
  [Test plan]
  
  lxc launch ubuntu:jammy rabbitmq-jammy-test
  
  lxc shell rabbitmq-jammy-test
  
  apt install -y rabbitmq-server
  
  echo '[rabbitmq_prometheus].' > /etc/rabbitmq/enabled_plugins
  
  systemctl restart rabbitmq-server.service
  
  wget https://github.com/rabbitmq/rabbitmq-perf-
  test/releases/download/v2.21.0/perf-test-2.21.0.jar
  
  apt install -y default-jre
  
  for i in $(seq 1 5); do java -jar perf-test-2.21.0.jar --time 5; curl -s
  127.0.0.1:15692/metrics | grep -E
  'rabbitmq_global_(consumers|publishers){'; done
  
  The output of this command shows the value of the
  rabbitmq_global_consumers and rabbitmq_global_publishers after each
  execution of the test. The problem described of monotonically increasing
  and decreasing values will be observed. As we are connecting and
  disconnecting a single client the expected value should be 0 for both
  counters.
  
  [Where problems could occur]
  
  This is a simple patch that calls the functions for deleting consumers
  and publishers in the correct places. It should not break anything else
  than the counters themselves but they were broken to begin with.
  
  [Other Info]
  
  This was patched upstream from version 3.10 so this patch is already
- applied to Noble and Oracular that use version 3.12.
+ applied to Noble and Oracular that use version 3.12. This is the
+ upstream patch: https://github.com/rabbitmq/rabbitmq-server/pull/6244

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2073932

Title:
  rabbitmq_global_publishers and rabbitmq_global_consumers fail to
  handle unclean client termination

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/2073932/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to