Browse Source

Make the rabbitmq-ready exec more stringent

Currently we use the following command to determine if rabbit is
up and running *and* ready to service requests:
rabbitmqctl eval "rabbit_mnesia:is_clustered()." | grep -q true

Now we have occasionally observed that rabbitmqctl policies commands
which are executed after said exec['rabbitmq-ready'] will fail.

One potential reason is that is_clustered() can return true *before*
the rabbit app is actually running. In fact we can see it does
return true even though the app is stopped:
()[root@controller-1 /]$ rabbitmqctl stop_app
Stopping rabbit application on node rabbit@controller-1 ...
()[root@controller-1 /]$ rabbitmqctl eval 'rabbit_mnesia:is_clustered().'
true

Let's switch to a combination of commands that check for the cluster to
be up *and* the rabbitmq app to be running:
()[root@controller-1 /]$ rabbitmqctl stop_app
Stopping rabbit application on node rabbit@controller-1 ...
()[root@controller-1 /]$ rabbitmqctl eval 'rabbit_nodes:is_running(node(), rabbit).'
false

Suggested-By: Bogdan Dobrelya <bdobreli@redhat.com>
Closes-Bug: #1835615

Change-Id: I29f779145a39cd16374a91626f7fae1581a18224
tags/9.5.1
Michele Baldessari 1 month ago
parent
commit
cb5102003b
1 changed files with 3 additions and 1 deletions
  1. 3
    1
      manifests/profile/pacemaker/rabbitmq_bundle.pp

+ 3
- 1
manifests/profile/pacemaker/rabbitmq_bundle.pp View File

@@ -290,7 +290,9 @@ class tripleo::profile::pacemaker::rabbitmq_bundle (
290 290
         # This grep makes sure the rabbit app in erlang is up and running
291 291
         # which is enough to guarantee that the user will eventually get
292 292
         # replicated around the cluster
293
-        $check_command = 'rabbitmqctl eval "rabbit_mnesia:is_clustered()." | grep -q true'
293
+        $cmd1 = 'rabbitmqctl eval "rabbit_nodes:is_running(node(), rabbit)." | grep -q true'
294
+        $cmd2 = 'rabbitmqctl eval "rabbit_mnesia:is_clustered()." | grep -q true'
295
+        $check_command = "${cmd1} && ${cmd2}"
294 296
       }
295 297
 
296 298
       exec { 'rabbitmq-ready':

Loading…
Cancel
Save