The OnApp vCD integration requires the usage of RabbitMQ to keep vCD and OnApp synchronized. At times we may get this error while trying to start the Rabbitmq-server.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related OnApp queries.
Following are the reason which may cause this error:
The root cause can be checked in the default rabbitmq logging directory (/var/log/rabbitmq). Moreover, it can be found specifically in the "rabbit@cp.log" file.
Following are two examples of the most widespread root causes, which can be easily checked and fixed:
1. After checking the logs, from the following output we can understand that the rabbitmq queues have been corrupted:
# tail -n 25 /var/log/rabbitmq/rabbit\@cp.log
=INFO REPORT==== 4-Jan-2017::22:57:24 ===
Error description:
{could_not_start,rabbit,
{{badmatch,
{error,
{{{{case_clause,undefined},
[{rabbit_queue_index,add_segment_relseq_entry,3,
[{file,"src/rabbit_queue_index.erl"},{line,1091}]},
{rabbit_queue_index,parse_segment_entries,3,
[{file,"src/rabbit_queue_index.erl"},{line,1075}]},
{rabbit_queue_index,'-recover_journal/1-fun-0-',1,
[{file,"src/rabbit_queue_index.erl"},{line,863}]},
{lists,map,2,[{file,"lists.erl"},{line,1239}]},
{rabbit_queue_index,segment_map,2,
[{file,"src/rabbit_queue_index.erl"},{line,989}]},
{rabbit_queue_index,recover_journal,1,
[{file,"src/rabbit_queue_index.erl"},{line,856}]},
{rabbit_queue_index,scan_segments,3,
[{file,"src/rabbit_queue_index.erl"},{line,676}]},
{rabbit_queue_index,queue_index_walker_reader,2,
[{file,"src/rabbit_queue_index.erl"},{line,664}]}]},
{gen_server2,call,[<0.288.0>,out,infinity]}},
We can fix this issue by moving all the available queues off from the working rabbitmq directory.
This can be done using the following command:
# ls /var/lib/rabbitmq/mnesia/rabbit@cp/queues
17BD92SOBZHLASJ4UE5VT5EHQ 3UM4MIP6TJ0PEAHMBSCNUX731 621MT7APTTVO66OSRLB1R7FY5 9R728VE21EGPVSMK9AJ7YH67E A4SL081HP0B21UALPRHLK069R ACJVPWBZHI24WLV6QHBPNT5JE ETHYXYWKQVKD3Q2EYD84UWIS2
# mkdir -p /tmp/badrabbit/; mv /var/lib/rabbitmq/mnesia/rabbit@cp/queues/* /tmp/badrabbit/;
2. If we see the following output from the logs, we can assume that the dets table file has been corrupted:
# tail -n 15 /var/log/rabbitmq/rabbit\@cp.log
=INFO REPORT==== 16-Jan-2017::09:11:03 ===
Error description:
{could_not_start,rabbit,
{{badmatch,
{error,
{{{badmatch,
{error,
{not_a_dets_file,
"/var/lib/rabbitmq/mnesia/rabbit@cp/recovery.dets"}}},
[{rabbit_recovery_terms,open_table,0,
[{file,"src/rabbit_recovery_terms.erl"},{line,126}]},
{rabbit_recovery_terms,init,1,
[{file,"src/rabbit_recovery_terms.erl"},{line,107}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},
We can fix these corrupt table files by moving dets file off from the working rabbitmq directory. For this we can use the following command:
# mkdir -p /tmp/badrabbit/; mv /var/lib/rabbitmq/mnesia/rabbit@cp/recovery.dets /tmp/badrabbit/;
This article covers method to fix OnApp error 'unable to connect to node rabbit' for our customers. This issue can happen on power outages or just because a Control Panel server was restarted by Reset button.