Skip to content

Conversation

@dcorbacho
Copy link
Contributor

Splitsrabbitmq_federation plugin into rabbitmq_queue_federation, rabbitmq_exchange_federation and rabbitmq_federation_common

@mergify mergify bot added the make label May 20, 2025
@dcorbacho dcorbacho force-pushed the split-federation branch 2 times, most recently from d71210d to 99fd741 Compare May 21, 2025 14:53
@dcorbacho dcorbacho marked this pull request as ready for review May 22, 2025 07:52
@dcorbacho dcorbacho marked this pull request as draft May 22, 2025 07:52
@dcorbacho dcorbacho marked this pull request as ready for review May 22, 2025 08:38
@dcorbacho dcorbacho requested a review from michaelklishin May 22, 2025 08:39
Copy link
Collaborator

@michaelklishin michaelklishin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rabbitmq_federation Role

For those upgrading, we should make rabbitmq_federation depend on both of the new plugins, and otherwise be a no-op just like it is right now.

Testing Results

When I start a node with

gmake run-broker PLUGINS="rabbitmq_management rabbitmq_federation rabbitmq_queue_federation rabbitmq_exchange_federation rabbitmq_federation_management"

then the node fails to boot during the plugin startup phase with

  Starting broker...
1>
BOOT FAILED
===========
Exception during startup:

exit:{error,{{shutdown,{failed_to_start_child,q_links,{'EXIT',{undef,[{rabbit_federation_pg,start_scope,[rabbitmq_queue_federation_pg_scope],[]},{rabbit_federation_queue_link_sup_sup,start_link,0,[{file,"rabbit_federation_queue_link_sup_sup.erl"},{line,31}]},{supervisor,do_start_child_i,3,[{file,"supervisor.erl"},{line,996}]},{supervisor,do_start_child,3,[{file,"supervisor.erl"},{line,982}]},{supervisor,'-start_children/2-fun-0-',3,[{file,"supervisor.erl"},{line,966}]},{supervisor,children_map,4,[{file,"supervisor.erl"},{line,1891}]},{supervisor,init_children,2,[{file,"supervisor.erl"},{line,932}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,2276}]}]}}}},{child,undefined,rabbit_federation_sup,{rabbit_federation_sup,start_link,[]},transient,false,300000,worker,[rabbit_federation_sup]}}}

    rabbit_boot_steps:-run_step/2-lc$^0/1-0-/2, line 57
    rabbit_boot_steps:run_step/2, line 60
    rabbit_boot_steps:-run_boot_steps/1-lc$^0/1-0-/1, line 24
    rabbit_boot_steps:run_boot_steps/1, line 25
    rabbit:start/2, line 994
    application_master:start_it_old/4, line 299

{exit,terminating,[{application_controller,call,2,[{file,"application_controller.erl"},{line,515}]},{application,'-ensure_all_started/3-lc$^0/1-0-',1,[{file,"application.erl"},{line,368}]},{application,ensure_all_started,3,[{file,"application.erl"},{line,368}]},{rabbit,'-start_it/1-fun-0-',1,[{file,"src/rabbit.erl"},{line,425}]},{timer,tc,2,[{file,"timer.erl"},{line,599}]},{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,421}]},{init,start_it,1,[]},{init,start_em,1,[]}]}
Kernel pid terminated (application_controller) ("{application_start_failure,rabbit,{{error,{{shutdown,{failed_to_start_child,q_links,{'EXIT',{undef,[{rabbit_federation_pg,start_scope,[rabbitmq_queue_federation_pg_scope],[]},{rabbit_federation_queue_link_sup_sup,start_link,0,[{file,\"rabbit_federation_queue_link_sup_sup.erl\"},{line,31}]},{supervisor,do_start_child_i,3,[{file,\"supervisor.erl\"},{line,996}]},{supervisor,do_start_child,3,[{file,\"supervisor.erl\"},{line,982}]},{supervisor,'-start_children/2-fun-0-',3,[{file,\"supervisor.erl\"},{line,966}]},{supervisor,children_map,4,[{file,\"supervisor.erl\"},{line,1891}]},{supervisor,init_children,2,[{file,\"supervisor.erl\"},{line,932}]},{gen_server,init_it,2,[{file,\"gen_server.erl\"},{line,2276}]}]}}}},{child,undefined,rabbit_federation_sup,{rabbit_federation_sup,start_link,[]},transient,false,300000,worker,[rabbit_federation_sup]}}},{rabbit,start,[normal,[]]}}}")

@michaelklishin michaelklishin self-requested a review May 27, 2025 12:02
@michaelklishin michaelklishin added this to the 4.2.0 milestone May 27, 2025
@michaelklishin michaelklishin merged commit 7b1691d into main May 27, 2025
557 of 558 checks passed
@michaelklishin michaelklishin deleted the split-federation branch May 27, 2025 12:03
@michaelklishin michaelklishin changed the title Split federation plugin Split federation plugin into two: one for queue and another for exchange federation May 27, 2025
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 this pull request may close these issues.

3 participants