Skip to content

Broker does not restart with binding to exclusive queue and Khepri activated #13352

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
acogoluegnes opened this issue Feb 17, 2025 · 1 comment · Fixed by #13381
Closed

Broker does not restart with binding to exclusive queue and Khepri activated #13352

acogoluegnes opened this issue Feb 17, 2025 · 1 comment · Fixed by #13381
Labels
Milestone

Comments

@acogoluegnes
Copy link
Contributor

This has been detected by activating Khepri in the RabbitMQ AMQP 091 Java client test suite.

A test does the following:

ch.exchangeDeclare(x, "fanout");
ch.queueDeclare(q, false, false, true, null);
ch.queueBind(q, x, "");

Then stop_app / start_app the broker (this is part of the connection recovery test). The broker fails to restart with the following error:

error:badarg

    ets:lookup/2
        args: [rabbit_registry,{exchange,fanout}]
    rabbit_registry:lookup_module/2, line 57
    rabbit_exchange:type_to_module/1, line 542
    rabbit_exchange:serialise_events/1, line 85
    rabbit_exchange:serial/1, line 90
    rabbit_binding:-process_deletions/1-fun-0-/2, line 494
    maps:foreach_1/3, line 391
    rabbit_amqqueue:notify_queue_binding_deletions/1, line 1968

Adding a 1-second delay between stop_app / start_app in the test does not help. Doing start_app manually after the test execution does work though.

Tested on 4.0.6 and main.

Java test

@acogoluegnes
Copy link
Contributor Author

Steps to reproduce the failure:

Open a terminal tab, start the broker with Khepri:

cd /tmp
git clone [email protected]:rabbitmq/rabbitmq-server.git
cd rabbitmq-server
make -C deps/rabbit run-broker RABBITMQ_FEATURE_FLAGS="+khepri_db"

Open another terminal tab, run the Java test:

cd /tmp
git clone [email protected]:rabbitmq/rabbitmq-java-client.git
cd rabbitmq-java-client
git checkout 559a3589b66cc6642baa238b5ced005e692e65af
make deps
./mvnw verify -P use-nio -Drabbitmqctl.bin=/tmp/rabbitmq-server/deps/rabbit/sbin/rabbitmqctl \
  -Dtest-broker.A.nodename=rabbit@$(hostname) \
  -Dit.test=ConnectionRecovery#clientNamedTransientAutoDeleteQueueAndBindingRecovery

The test does some AMQP operations, stop_app the broker and start_app fails.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants