rabbitmq-rtopic-exchange icon indicating copy to clipboard operation
rabbitmq-rtopic-exchange copied to clipboard

support rabbitmq server 3.13

Open mi-fabien-cayre opened this issue 10 months ago • 0 comments

Is your feature request related to a problem? Please describe.

Extension is working fine on rabbitmq3.11 and 3.12. When switching to the latest version 3.13, sending a message to an exchange with type "x-rtopic" fails with error 541, 'INTERNAL_ERROR'.

Describe the solution you'd like

Possibility to run this plugin using RabbitMQ3.13

Describe alternatives you've considered

Switch back to RabbitMQ 3.12

Additional context

Error logs

[notice] <0.44.0> Application syslog exited with reason: stopped
[notice] <0.248.0> Logging: switching to configured handler(s); following messages may not be visible in this log output
[notice] <0.248.0> Logging: configured log handlers are now ACTIVE
[info] <0.248.0> ra: starting system quorum_queues
[info] <0.248.0> starting Ra system: quorum_queues in directory: /var/lib/rabbitmq/mnesia/rabbit@96047a93541b/quorum/rabbit@96047a93541b
[info] <0.262.0> ra system 'quorum_queues' running pre init for 0 registered servers
[info] <0.263.0> ra: meta data store initialised for system quorum_queues. 0 record(s) recovered
[notice] <0.268.0> WAL: ra_log_wal init, open tbls: ra_log_open_mem_tables, closed tbls: ra_log_closed_mem_tables
[info] <0.248.0> ra: starting system coordination
[info] <0.248.0> starting Ra system: coordination in directory: /var/lib/rabbitmq/mnesia/rabbit@96047a93541b/coordination/rabbit@96047a93541b
[info] <0.275.0> ra system 'coordination' running pre init for 0 registered servers
[info] <0.276.0> ra: meta data store initialised for system coordination. 0 record(s) recovered
[notice] <0.281.0> WAL: ra_coordination_log_wal init, open tbls: ra_coordination_log_open_mem_tables, closed tbls: ra_coordination_log_closed_mem_tables
[info] <0.248.0> ra: starting system coordination
[info] <0.248.0> starting Ra system: coordination in directory: /var/lib/rabbitmq/mnesia/rabbit@96047a93541b/coordination/rabbit@96047a93541b
[info] <0.248.0> Waiting for Khepri leader for 30000 ms, 9 retries left
[notice] <0.284.0> RabbitMQ metadata store: candidate -> leader in term: 1 machine version: 0
[info] <0.248.0> Khepri leader elected
[info] <0.248.0> 
[info] <0.248.0>  Starting RabbitMQ 3.13.1 on Erlang 26.2.4 [jit]
[info] <0.248.0>  Copyright (c) 2007-2024 Broadcom Inc and/or its subsidiaries
[info] <0.248.0>  Licensed under the MPL 2.0. Website: https://rabbitmq.com

  ##  ##      RabbitMQ 3.13.1
  ##  ##
  ##########  Copyright (c) 2007-2024 Broadcom Inc and/or its subsidiaries
  ######  ##
  ##########  Licensed under the MPL 2.0. Website: https://rabbitmq.com

  Erlang:      26.2.4 [jit]
  TLS Library: OpenSSL - OpenSSL 3.1.5 30 Jan 2024
  Release series support status: supported

  Doc guides:  https://www.rabbitmq.com/docs/documentation
  Support:     https://www.rabbitmq.com/docs/contact
  Tutorials:   https://www.rabbitmq.com/tutorials
  Monitoring:  https://www.rabbitmq.com/docs/monitoring

  Logs: <stdout>

  Config file(s): /etc/rabbitmq/conf.d/10-defaults.conf

  Starting broker...2024-04-23 08:48:33.749881+00:00 [info] <0.248.0> 
[info] <0.248.0>  node           : rabbit@96047a93541b
[info] <0.248.0>  home dir       : /var/lib/rabbitmq
[info] <0.248.0>  config file(s) : /etc/rabbitmq/conf.d/10-defaults.conf
[info] <0.248.0>  cookie hash    : kAzE6eSjHMQZG/IoBH4oYQ==
[info] <0.248.0>  log(s)         : <stdout>
[info] <0.248.0>  data dir       : /var/lib/rabbitmq/mnesia/rabbit@96047a93541b
[info] <0.248.0> Running boot step pre_boot defined by app rabbit
[info] <0.248.0> Running boot step rabbit_global_counters defined by app rabbit
[info] <0.248.0> Running boot step rabbit_osiris_metrics defined by app rabbit
[info] <0.248.0> Running boot step rabbit_core_metrics defined by app rabbit
[info] <0.248.0> Running boot step rabbit_alarm defined by app rabbit
[info] <0.321.0> Memory high watermark set to 3176 MiB (3331306291 bytes) of 7942 MiB (8328265728 bytes) total
[info] <0.323.0> Enabling free disk space monitoring (disk free space: 985363496960, total memory: 8328265728)
[info] <0.323.0> Disk free limit set to 50MB
[info] <0.248.0> Running boot step code_server_cache defined by app rabbit
[info] <0.248.0> Running boot step file_handle_cache defined by app rabbit
[info] <0.326.0> Limiting to approx 1048479 file handles (943629 sockets)
[info] <0.327.0> FHC read buffering: OFF
[info] <0.327.0> FHC write buffering: ON
[info] <0.248.0> Running boot step worker_pool defined by app rabbit
[info] <0.307.0> Will use 20 processes for default worker pool
[info] <0.307.0> Starting worker pool 'worker_pool' with 20 processes in it
[info] <0.248.0> Running boot step database defined by app rabbit
[info] <0.248.0> Peer discovery: configured backend: rabbit_peer_discovery_classic_config
[notice] <0.308.0> Feature flags: attempt to enable `detailed_queues_endpoint`...
[notice] <0.308.0> Feature flags: `detailed_queues_endpoint` enabled
[notice] <0.308.0> Feature flags: attempt to enable `quorum_queue_non_voters`...
[notice] <0.308.0> Feature flags: `quorum_queue_non_voters` enabled
[notice] <0.308.0> Feature flags: attempt to enable `stream_update_config_command`...
[notice] <0.308.0> Feature flags: `stream_update_config_command` enabled
[notice] <0.308.0> Feature flags: attempt to enable `stream_filtering`...
[notice] <0.308.0> Feature flags: `stream_filtering` enabled
[notice] <0.308.0> Feature flags: attempt to enable `stream_sac_coordinator_unblock_group`...
[notice] <0.308.0> Feature flags: `stream_sac_coordinator_unblock_group` enabled
[notice] <0.308.0> Feature flags: attempt to enable `restart_streams`...
[notice] <0.308.0> Feature flags: `restart_streams` enabled
[notice] <0.308.0> Feature flags: attempt to enable `message_containers`...
[notice] <0.308.0> Feature flags: `message_containers` enabled
[info] <0.248.0> DB: virgin node -> run peer discovery
[notice] <0.44.0> Application mnesia exited with reason: stopped
[info] <0.248.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
[info] <0.248.0> Successfully synced tables from a peer
[info] <0.248.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
[info] <0.248.0> Successfully synced tables from a peer
[info] <0.248.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
[info] <0.248.0> Successfully synced tables from a peer
[info] <0.248.0> Running boot step tracking_metadata_store defined by app rabbit
[info] <0.559.0> Setting up a table for connection tracking on this node: tracked_connection
[info] <0.559.0> Setting up a table for per-vhost connection counting on this node: tracked_connection_per_vhost
[info] <0.559.0> Setting up a table for per-user connection counting on this node: tracked_connection_per_user
[info] <0.559.0> Setting up a table for channel tracking on this node: tracked_channel
[info] <0.559.0> Setting up a table for channel tracking on this node: tracked_channel_per_user
[info] <0.248.0> Running boot step networking_metadata_store defined by app rabbit
[info] <0.248.0> Running boot step feature_flags defined by app rabbit
[info] <0.248.0> Running boot step codec_correctness_check defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_type_rtopic_mnesia defined by app rabbitmq_rtopic_exchange
[info] <0.248.0> Running boot step external_infrastructure defined by app rabbit
[info] <0.248.0> Running boot step rabbit_event defined by app rabbit
[info] <0.248.0> Running boot step rabbit_registry defined by app rabbit
[info] <0.248.0> Running boot step rabbit_auth_mechanism_amqplain defined by app rabbit
[info] <0.248.0> Running boot step rabbit_auth_mechanism_cr_demo defined by app rabbit
[info] <0.248.0> Running boot step rabbit_auth_mechanism_plain defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_type_direct defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_type_fanout defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_type_headers defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_type_topic defined by app rabbit
[info] <0.248.0> Running boot step rabbit_mirror_queue_mode_all defined by app rabbit
[info] <0.248.0> Running boot step rabbit_mirror_queue_mode_exactly defined by app rabbit
[info] <0.248.0> Running boot step rabbit_mirror_queue_mode_nodes defined by app rabbit
[info] <0.248.0> Running boot step rabbit_priority_queue defined by app rabbit
[info] <0.248.0> Priority queues enabled, real BQ is rabbit_variable_queue
[info] <0.248.0> Running boot step rabbit_queue_location_client_local defined by app rabbit
[info] <0.248.0> Running boot step rabbit_queue_location_min_masters defined by app rabbit
[info] <0.248.0> Running boot step rabbit_queue_location_random defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_type_rtopic defined by app rabbitmq_rtopic_exchange
[info] <0.248.0> Running boot step kernel_ready defined by app rabbit
[info] <0.248.0> Running boot step rabbit_sysmon_minder defined by app rabbit
[info] <0.248.0> Running boot step rabbit_epmd_monitor defined by app rabbit
[info] <0.583.0> epmd monitor knows us, inter-node communication (distribution) port: 25672
[info] <0.248.0> Running boot step guid_generator defined by app rabbit
[info] <0.248.0> Running boot step rabbit_node_monitor defined by app rabbit
[info] <0.587.0> Starting rabbit_node_monitor (in ignore mode)
[info] <0.248.0> Running boot step delegate_sup defined by app rabbit
[info] <0.248.0> Running boot step rabbit_memory_monitor defined by app rabbit
[info] <0.248.0> Running boot step rabbit_fifo_dlx_sup defined by app rabbit
[info] <0.248.0> Running boot step core_initialized defined by app rabbit
[info] <0.248.0> Running boot step rabbit_channel_tracking_handler defined by app rabbit
[info] <0.248.0> Running boot step rabbit_connection_tracking_handler defined by app rabbit
[info] <0.248.0> Running boot step rabbit_definitions_hashing defined by app rabbit
[info] <0.248.0> Running boot step rabbit_exchange_parameters defined by app rabbit
[info] <0.248.0> Running boot step rabbit_mirror_queue_misc defined by app rabbit
[info] <0.248.0> Running boot step rabbit_policies defined by app rabbit
[info] <0.248.0> Running boot step rabbit_policy defined by app rabbit
[info] <0.248.0> Running boot step rabbit_queue_location_validator defined by app rabbit
[info] <0.248.0> Running boot step rabbit_quorum_memory_manager defined by app rabbit
[info] <0.248.0> Running boot step rabbit_quorum_queue defined by app rabbit
[info] <0.248.0> Running boot step rabbit_stream_coordinator defined by app rabbit
[info] <0.248.0> Running boot step rabbit_vhost_limit defined by app rabbit
[info] <0.248.0> Running boot step rabbit_federation_parameters defined by app rabbitmq_federation
[info] <0.248.0> Running boot step rabbit_federation_supervisor defined by app rabbitmq_federation
[info] <0.248.0> Running boot step rabbit_federation_queue defined by app rabbitmq_federation
[info] <0.248.0> Running boot step rabbit_federation_upstream_exchange defined by app rabbitmq_federation
[info] <0.248.0> Running boot step rabbit_mgmt_reset_handler defined by app rabbitmq_management
[info] <0.248.0> Running boot step rabbit_mgmt_db_handler defined by app rabbitmq_management_agent
[info] <0.248.0> Management plugin: using rates mode 'basic'
[info] <0.248.0> Running boot step recovery defined by app rabbit
[info] <0.248.0> Running boot step empty_db_check defined by app rabbit
[info] <0.248.0> Will seed default virtual host and user...
[info] <0.248.0> Adding vhost '/' (description: 'Default virtual host', tags: [])
[info] <0.248.0> Inserted a virtual host record {vhost,<<"/">>,[],
[info] <0.248.0>                                       #{description =>
[info] <0.248.0>                                             <<"Default virtual host">>,
[info] <0.248.0>                                         tags => []}}
[info] <0.647.0> Making sure data directory '/var/lib/rabbitmq/mnesia/rabbit@96047a93541b/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L' for vhost '/' exists
[info] <0.647.0> Setting segment_entry_count for vhost '/' with 0 queues to '2048'
[info] <0.647.0> Starting message stores for vhost '/'
[info] <0.656.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_transient": using rabbit_msg_store_ets_index to provide index
[info] <0.647.0> Started message store of type transient for vhost '/'
[info] <0.660.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_persistent": using rabbit_msg_store_ets_index to provide index
[warning] <0.660.0> Message store "628WB79CIFDYO9LJI6DKMI09L/msg_store_persistent": rebuilding indices from scratch
[info] <0.647.0> Started message store of type persistent for vhost '/'
[info] <0.647.0> Recovering 0 queues of type rabbit_classic_queue took 10ms
[info] <0.647.0> Recovering 0 queues of type rabbit_quorum_queue took 0ms
[info] <0.647.0> Recovering 0 queues of type rabbit_stream_queue took 0ms
[info] <0.248.0> Created user 'guest'
[info] <0.248.0> Successfully set user tags for user 'guest' to [administrator]
[info] <0.248.0> Successfully set permissions for user 'guest' in virtual host '/' to '.*', '.*', '.*'
[info] <0.248.0> Running boot step rabbit_observer_cli defined by app rabbit
[info] <0.248.0> Running boot step rabbit_looking_glass defined by app rabbit
[info] <0.248.0> Running boot step rabbit_core_metrics_gc defined by app rabbit
[info] <0.248.0> Running boot step background_gc defined by app rabbit
[info] <0.248.0> Running boot step routing_ready defined by app rabbit
[info] <0.248.0> Running boot step pre_flight defined by app rabbit
[info] <0.248.0> Running boot step notify_cluster defined by app rabbit
[info] <0.248.0> Running boot step networking defined by app rabbit
[info] <0.248.0> Running boot step rabbit_quorum_queue_periodic_membership_reconciliation defined by app rabbit
[info] <0.248.0> Running boot step definition_import_worker_pool defined by app rabbit
[info] <0.307.0> Starting worker pool 'definition_import_pool' with 20 processes in it
[info] <0.248.0> Running boot step cluster_name defined by app rabbit
[info] <0.248.0> Initialising internal cluster ID to 'rabbitmq-cluster-id-KZUR4V2gyllmnEtmkztbKQ'
[info] <0.248.0> Running boot step direct_client defined by app rabbit
[info] <0.248.0> Running boot step rabbit_federation_exchange defined by app rabbitmq_federation
[info] <0.248.0> Running boot step rabbit_management_load_definitions defined by app rabbitmq_management
[info] <0.713.0> Resetting node maintenance status
[warning] <0.736.0> Deprecated features: `management_metrics_collection`: Feature `management_metrics_collection` is deprecated.
[warning] <0.736.0> By default, this feature can still be used for now.
[warning] <0.736.0> Its use will not be permitted by default in a future minor RabbitMQ version and the feature will be removed from a future major RabbitMQ version; actual versions to be determined.
[warning] <0.736.0> To continue using this feature when it is not permitted by default, set the following parameter in your configuration:
[warning] <0.736.0>     "deprecated_features.permit.management_metrics_collection = true"
[warning] <0.736.0> To test RabbitMQ as if the feature was removed, set this in your configuration:
[warning] <0.736.0>     "deprecated_features.permit.management_metrics_collection = false"
[info] <0.773.0> Management plugin: HTTP (non-TLS) listener started on port 15672
[info] <0.804.0> Statistics database started.
[info] <0.803.0> Starting worker pool 'management_worker_pool' with 3 processes in it
[info] <0.823.0> Prometheus metrics: HTTP (non-TLS) listener started on port 15692
[info] <0.713.0> Ready to start client connection listeners
[info] <0.867.0> started TCP listener on [::]:5672
2024-04-23 10:48:37  completed with 6 plugins.
[info] <0.713.0> Server startup complete; 6 plugins started.
[info] <0.713.0>  * rabbitmq_prometheus
[info] <0.713.0>  * rabbitmq_federation
[info] <0.713.0>  * rabbitmq_rtopic_exchange
[info] <0.713.0>  * rabbitmq_management
[info] <0.713.0>  * rabbitmq_management_agent
[info] <0.713.0>  * rabbitmq_web_dispatch
[info] <0.9.0> Time to start RabbitMQ: 7066 ms
[info] <0.910.0> accepting AMQP connection <0.910.0> (172.24.0.1:43900 -> 172.24.0.2:5672)
[info] <0.910.0> connection <0.910.0> (172.24.0.1:43900 -> 172.24.0.2:5672): user 'guest' authenticated and granted access to vhost '/'
[error] <0.920.0> ** Generic server <0.920.0> terminating
[error] <0.920.0> ** Last message in was {'$gen_cast',
[error] <0.920.0>                            {method,
[error] <0.920.0>                                {'basic.publish',0,<<"email">>,
[error] <0.920.0>                                    <<"validation_message.#">>,false,false},
[error] <0.920.0>                                {content,60,none,
[error] <0.920.0>                                    <<0,0>>,
[error] <0.920.0>                                    rabbit_framing_amqp_0_9_1,
[error] <0.920.0>                                    [<<"\nFROM: [email protected]\nTO: [email protected]\nBODY: Hello !">>]},
[error] <0.920.0>                                flow}}
[error] <0.920.0> ** When Server state == {ch,
[error] <0.920.0>                          {conf,running,rabbit_framing_amqp_0_9_1,1,<0.910.0>,
[error] <0.920.0>                           <0.918.0>,<0.910.0>,
[error] <0.920.0>                           <<"172.24.0.1:43900 -> 172.24.0.2:5672">>,undefined,
[error] <0.920.0>                           {user,<<"guest">>,
[error] <0.920.0>                            [administrator],
[error] <0.920.0>                            [{rabbit_auth_backend_internal,
[error] <0.920.0>                              #Fun<rabbit_auth_backend_internal.3.111050101>}]},
[error] <0.920.0>                           <<"/">>,<<>>,<0.912.0>,
[error] <0.920.0>                           [{<<"authentication_failure_close">>,bool,true},
[error] <0.920.0>                            {<<"basic.nack">>,bool,true},
[error] <0.920.0>                            {<<"connection.blocked">>,bool,true},
[error] <0.920.0>                            {<<"consumer_cancel_notify">>,bool,true},
[error] <0.920.0>                            {<<"publisher_confirms">>,bool,true}],
[error] <0.920.0>                           none,0,134217728,1800000,#{},infinity,1000000000,
[error] <0.920.0>                           false},
[error] <0.920.0>                          {lstate,<0.919.0>,false},
[error] <0.920.0>                          none,1,
[error] <0.920.0>                          {0,[],[]},
[error] <0.920.0>                          {state,#{},erlang},
[error] <0.920.0>                          #{},#{},
[error] <0.920.0>                          {state,fine,5000,#Ref<0.3870059976.2552758274.96592>},
[error] <0.920.0>                          false,1,
[error] <0.920.0>                          {rabbit_confirms,undefined,#{}},
[error] <0.920.0>                          [],[],none,flow,[],
[error] <0.920.0>                          {rabbit_queue_type,#{}},
[error] <0.920.0>                          #Ref<0.3870059976.2552758274.96589>,false}
[error] <0.920.0> ** Reason for termination ==
[error] <0.920.0> ** {function_clause,
[error] <0.920.0>        [{rabbit_exchange_type_rtopic,route,
[error] <0.920.0>             [{exchange,
[error] <0.920.0>                  {resource,<<"/">>,exchange,<<"email">>},
[error] <0.920.0>                  'x-rtopic',false,false,false,[],undefined,undefined,
[error] <0.920.0>                  undefined,
[error] <0.920.0>                  {[],[]},
[error] <0.920.0>                  #{user => <<"guest">>}},
[error] <0.920.0>              {mc,mc_amqpl,
[error] <0.920.0>                  {content,60,
[error] <0.920.0>                      {'P_basic',undefined,undefined,undefined,undefined,
[error] <0.920.0>                          undefined,undefined,undefined,undefined,undefined,
[error] <0.920.0>                          undefined,undefined,undefined,undefined,undefined},
[error] <0.920.0>                      <<0,0>>,
[error] <0.920.0>                      rabbit_framing_amqp_0_9_1,
[error] <0.920.0>                      [<<"\nFROM: [email protected]\nTO: [email protected]\nBODY: Hello !">>]},
[error] <0.920.0>                  #{d => false,x => <<"email">>,
[error] <0.920.0>                    rk => [<<"validation_message.#">>],
[error] <0.920.0>                    rts => 1713862135026}}],
[error] <0.920.0>             [{file,"rabbit_exchange_type_rtopic.erl"},{line,61}]},
[error] <0.920.0>         {rabbit_exchange,route1,4,[{file,"rabbit_exchange.erl"},{line,388}]},
[error] <0.920.0>         {rabbit_exchange,route,3,[{file,"rabbit_exchange.erl"},{line,369}]},
[error] <0.920.0>         {rabbit_channel,handle_method,3,
[error] <0.920.0>             [{file,"rabbit_channel.erl"},{line,1280}]},
[error] <0.920.0>         {rabbit_channel,handle_cast,2,
[error] <0.920.0>             [{file,"rabbit_channel.erl"},{line,649}]},
[error] <0.920.0>         {gen_server2,handle_msg,2,[{file,"gen_server2.erl"},{line,1056}]},
[error] <0.920.0>         {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]}
[error] <0.920.0> 
[error] <0.920.0>   crasher:
[error] <0.920.0>     initial call: rabbit_channel:init/1
[error] <0.920.0>     pid: <0.920.0>
[error] <0.920.0>     registered_name: []
[error] <0.920.0>     exception exit: {function_clause,
[error] <0.920.0>                      [{rabbit_exchange_type_rtopic,route,
[error] <0.920.0>                        [{exchange,
[error] <0.920.0>                          {resource,<<"/">>,exchange,<<"email">>},
[error] <0.920.0>                          'x-rtopic',false,false,false,[],undefined,undefined,
[error] <0.920.0>                          undefined,
[error] <0.920.0>                          {[],[]},
[error] <0.920.0>                          #{user => <<"guest">>}},
[error] <0.920.0>                         {mc,mc_amqpl,
[error] <0.920.0>                          {content,60,
[error] <0.920.0>                           {'P_basic',undefined,undefined,undefined,undefined,
[error] <0.920.0>                            undefined,undefined,undefined,undefined,undefined,
[error] <0.920.0>                            undefined,undefined,undefined,undefined,undefined},
[error] <0.920.0>                           <<0,0>>,
[error] <0.920.0>                           rabbit_framing_amqp_0_9_1,
[error] <0.920.0>                           [<<"\nFROM: [email protected]\nTO: [email protected]\nBODY: Hello !">>]},
[error] <0.920.0>                          #{d => false,x => <<"email">>,
[error] <0.920.0>                            rk => [<<"validation_message.#">>],
[error] <0.920.0>                            rts => 1713862135026}}],
[error] <0.920.0>                        [{file,"rabbit_exchange_type_rtopic.erl"},{line,61}]},
[error] <0.920.0>                       {rabbit_exchange,route1,4,
[error] <0.920.0>                        [{file,"rabbit_exchange.erl"},{line,388}]},
[error] <0.920.0>                       {rabbit_exchange,route,3,
[error] <0.920.0>                        [{file,"rabbit_exchange.erl"},{line,369}]},
[error] <0.920.0>                       {rabbit_channel,handle_method,3,
[error] <0.920.0>                        [{file,"rabbit_channel.erl"},{line,1280}]},
[error] <0.920.0>                       {rabbit_channel,handle_cast,2,
[error] <0.920.0>                        [{file,"rabbit_channel.erl"},{line,649}]},
[error] <0.920.0>                       {gen_server2,handle_msg,2,
[error] <0.920.0>                        [{file,"gen_server2.erl"},{line,1056}]},
[error] <0.920.0>                       {proc_lib,init_p_do_apply,3,
[error] <0.920.0>                        [{file,"proc_lib.erl"},{line,241}]}]}
[error] <0.920.0>       in function  gen_server2:terminate/3 (gen_server2.erl, line 1172)
[error] <0.920.0>     ancestors: [<0.917.0>,<0.915.0>,<0.909.0>,<0.908.0>,<0.855.0>,<0.854.0>,
[error] <0.920.0>                   <0.853.0>,<0.851.0>,<0.850.0>,rabbit_sup,<0.248.0>]
[error] <0.920.0>     message_queue_len: 1
[error] <0.920.0>     messages: [{'$gen_cast',
[error] <0.920.0>                       {method,
[error] <0.920.0>                           {'channel.close',200,<<"Normal shutdown">>,0,0},
[error] <0.920.0>                           none,noflow}}]
[error] <0.920.0>     links: [<0.917.0>]
[error] <0.920.0>     dictionary: [{{xtype_to_module,'x-rtopic'},rabbit_exchange_type_rtopic},
[error] <0.920.0>                   {{credit_to,<0.910.0>},199},
[error] <0.920.0>                   {msg_size_for_gc,66},
[error] <0.920.0>                   {rand_seed,
[error] <0.920.0>                       {#{max => 288230376151711743,type => exsplus,
[error] <0.920.0>                          next => #Fun<rand.5.65977474>,
[error] <0.920.0>                          jump => #Fun<rand.3.65977474>},
[error] <0.920.0>                        [21257862708805905|122799696170352819]}},
[error] <0.920.0>                   {credit_flow_default_credit,{400,200}},
[error] <0.920.0>                   {channel_operation_timeout,15000},
[error] <0.920.0>                   {permission_cache_can_expire,false},
[error] <0.920.0>                   {process_name,
[error] <0.920.0>                       {rabbit_channel,
[error] <0.920.0>                           {<<"172.24.0.1:43900 -> 172.24.0.2:5672">>,1}}},
[error] <0.920.0>                   {permission_cache,
[error] <0.920.0>                       [{{resource,<<"/">>,exchange,<<"email">>},#{},write},
[error] <0.920.0>                        {{resource,<<"/">>,exchange,<<"email">>},
[error] <0.920.0>                         #{},configure}]}]
[error] <0.920.0>     trap_exit: true
[error] <0.920.0>     status: running
[error] <0.920.0>     heap_size: 17731
[error] <0.920.0>     stack_size: 28
[error] <0.920.0>     reductions: 48793
[error] <0.920.0>   neighbours:
[error] <0.920.0> 
[error] <0.910.0> Error on AMQP connection <0.910.0> (172.24.0.1:43900 -> 172.24.0.2:5672, vhost: '/', user: 'guest', state: running), channel 1:
[error] <0.910.0>  {function_clause,
[error] <0.910.0>     [{rabbit_exchange_type_rtopic,route,
[error] <0.910.0>          [{exchange,
[error] <0.910.0>               {resource,<<"/">>,exchange,<<"email">>},
[error] <0.910.0>               'x-rtopic',false,false,false,[],undefined,undefined,undefined,
[error] <0.910.0>               {[],[]},
[error] <0.910.0>               #{user => <<"guest">>}},
[error] <0.910.0>           {mc,mc_amqpl,
[error] <0.910.0>               {content,60,
[error] <0.910.0>                   {'P_basic',undefined,undefined,undefined,undefined,
[error] <0.910.0>                       undefined,undefined,undefined,undefined,undefined,
[error] <0.910.0>                       undefined,undefined,undefined,undefined,undefined},
[error] <0.910.0>                   <<0,0>>,
[error] <0.910.0>                   rabbit_framing_amqp_0_9_1,
[error] <0.910.0>                   [<<"\nFROM: [email protected]\nTO: [email protected]\nBODY: Hello !">>]},
[error] <0.910.0>               #{d => false,x => <<"email">>,
[error] <0.910.0>                 rk => [<<"validation_message.#">>],
[error] <0.910.0>                 rts => 1713862135026}}],
[error] <0.910.0>          [{file,"rabbit_exchange_type_rtopic.erl"},{line,61}]},
[error] <0.910.0>      {rabbit_exchange,route1,4,[{file,"rabbit_exchange.erl"},{line,388}]},
[error] <0.910.0>      {rabbit_exchange,route,3,[{file,"rabbit_exchange.erl"},{line,369}]},
[error] <0.910.0>      {rabbit_channel,handle_method,3,
[error] <0.910.0>          [{file,"rabbit_channel.erl"},{line,1280}]},
[error] <0.910.0>      {rabbit_channel,handle_cast,2,[{file,"rabbit_channel.erl"},{line,649}]},
[error] <0.910.0>      {gen_server2,handle_msg,2,[{file,"gen_server2.erl"},{line,1056}]},
[error] <0.910.0>      {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,241}]}]}
[warning] <0.910.0> Non-AMQP exit reason '{function_clause,
[warning] <0.910.0>                        [{rabbit_exchange_type_rtopic,route,
[warning] <0.910.0>                          [{exchange,
[warning] <0.910.0>                            {resource,<<"/">>,exchange,<<"email">>},
[warning] <0.910.0>                            'x-rtopic',false,false,false,[],undefined,
[warning] <0.910.0>                            undefined,undefined,
[warning] <0.910.0>                            {[],[]},
[warning] <0.910.0>                            #{user => <<"guest">>}},
[warning] <0.910.0>                           {mc,mc_amqpl,
[warning] <0.910.0>                            {content,60,
[warning] <0.910.0>                             {'P_basic',undefined,undefined,undefined,
[warning] <0.910.0>                              undefined,undefined,undefined,undefined,
[warning] <0.910.0>                              undefined,undefined,undefined,undefined,
[warning] <0.910.0>                              undefined,undefined,undefined},
[warning] <0.910.0>                             <<0,0>>,
[warning] <0.910.0>                             rabbit_framing_amqp_0_9_1,
[warning] <0.910.0>                             [<<"\nFROM: [email protected]\nTO: [email protected]\nBODY: Hello !">>]},
[warning] <0.910.0>                            #{d => false,x => <<"email">>,
[warning] <0.910.0>                              rk => [<<"validation_message.#">>],
[warning] <0.910.0>                              rts => 1713862135026}}],
[warning] <0.910.0>                          [{file,"rabbit_exchange_type_rtopic.erl"},{line,61}]},
[warning] <0.910.0>                         {rabbit_exchange,route1,4,
[warning] <0.910.0>                          [{file,"rabbit_exchange.erl"},{line,388}]},
[warning] <0.910.0>                         {rabbit_exchange,route,3,
[warning] <0.910.0>                          [{file,"rabbit_exchange.erl"},{line,369}]},
[warning] <0.910.0>                         {rabbit_channel,handle_method,3,
[warning] <0.910.0>                          [{file,"rabbit_channel.erl"},{line,1280}]},
[warning] <0.910.0>                         {rabbit_channel,handle_cast,2,
[warning] <0.910.0>                          [{file,"rabbit_channel.erl"},{line,649}]},
[warning] <0.910.0>                         {gen_server2,handle_msg,2,
[warning] <0.910.0>                          [{file,"gen_server2.erl"},{line,1056}]},
[warning] <0.910.0>                         {proc_lib,init_p_do_apply,3,
[warning] <0.910.0>                          [{file,"proc_lib.erl"},{line,241}]}]}'
[error] <0.917.0>     supervisor: {<0.917.0>,rabbit_channel_sup}
[error] <0.917.0>     errorContext: child_terminated
[error] <0.917.0>     reason: {function_clause,
[error] <0.917.0>                 [{rabbit_exchange_type_rtopic,route,
[error] <0.917.0>                      [{exchange,
[error] <0.917.0>                           {resource,<<"/">>,exchange,<<"email">>},
[error] <0.917.0>                           'x-rtopic',false,false,false,[],undefined,undefined,
[error] <0.917.0>                           undefined,
[error] <0.917.0>                           {[],[]},
[error] <0.917.0>                           #{user => <<"guest">>}},
[error] <0.917.0>                       {mc,mc_amqpl,
[error] <0.917.0>                           {content,60,
[error] <0.917.0>                               {'P_basic',undefined,undefined,undefined,
[error] <0.917.0>                                   undefined,undefined,undefined,undefined,
[error] <0.917.0>                                   undefined,undefined,undefined,undefined,
[error] <0.917.0>                                   undefined,undefined,undefined},
[error] <0.917.0>                               <<0,0>>,
[error] <0.917.0>                               rabbit_framing_amqp_0_9_1,
[error] <0.917.0>                               [<<"\nFROM: [email protected]\nTO: [email protected]\nBODY: Hello !">>]},
[error] <0.917.0>                           #{d => false,x => <<"email">>,
[error] <0.917.0>                             rk => [<<"validation_message.#">>],
[error] <0.917.0>                             rts => 1713862135026}}],
[error] <0.917.0>                      [{file,"rabbit_exchange_type_rtopic.erl"},{line,61}]},
[error] <0.917.0>                  {rabbit_exchange,route1,4,
[error] <0.917.0>                      [{file,"rabbit_exchange.erl"},{line,388}]},
[error] <0.917.0>                  {rabbit_exchange,route,3,
[error] <0.917.0>                      [{file,"rabbit_exchange.erl"},{line,369}]},
[error] <0.917.0>                  {rabbit_channel,handle_method,3,
[error] <0.917.0>                      [{file,"rabbit_channel.erl"},{line,1280}]},
[error] <0.917.0>                  {rabbit_channel,handle_cast,2,
[error] <0.917.0>                      [{file,"rabbit_channel.erl"},{line,649}]},
[error] <0.917.0>                  {gen_server2,handle_msg,2,
[error] <0.917.0>                      [{file,"gen_server2.erl"},{line,1056}]},
[error] <0.917.0>                  {proc_lib,init_p_do_apply,3,
[error] <0.917.0>                      [{file,"proc_lib.erl"},{line,241}]}]}
[error] <0.917.0>     offender: [{pid,<0.920.0>},
[error] <0.917.0>                {id,channel},
[error] <0.917.0>                {mfargs,
[error] <0.917.0>                    {rabbit_channel,start_link,
[error] <0.917.0>                        [1,<0.910.0>,<0.918.0>,<0.910.0>,
[error] <0.917.0>                         <<"172.24.0.1:43900 -> 172.24.0.2:5672">>,
[error] <0.917.0>                         rabbit_framing_amqp_0_9_1,
[error] <0.917.0>                         {user,<<"guest">>,
[error] <0.917.0>                             [administrator],
[error] <0.917.0>                             [{rabbit_auth_backend_internal,
[error] <0.917.0>                                  #Fun<rabbit_auth_backend_internal.3.111050101>}]},
[error] <0.917.0>                         <<"/">>,
[error] <0.917.0>                         [{<<"authentication_failure_close">>,bool,true},
[error] <0.917.0>                          {<<"basic.nack">>,bool,true},
[error] <0.917.0>                          {<<"connection.blocked">>,bool,true},
[error] <0.917.0>                          {<<"consumer_cancel_notify">>,bool,true},
[error] <0.917.0>                          {<<"publisher_confirms">>,bool,true}],
[error] <0.917.0>                         <0.912.0>,<0.919.0>]}},
[error] <0.917.0>                {restart_type,transient},
[error] <0.917.0>                {significant,true},
[error] <0.917.0>                {shutdown,70000},
[error] <0.917.0>                {child_type,worker}]
[error] <0.917.0> 
[error] <0.917.0>     supervisor: {<0.917.0>,rabbit_channel_sup}
[error] <0.917.0>     errorContext: shutdown
[error] <0.917.0>     reason: reached_max_restart_intensity
[error] <0.917.0>     offender: [{pid,<0.920.0>},
[error] <0.917.0>                {id,channel},
[error] <0.917.0>                {mfargs,
[error] <0.917.0>                    {rabbit_channel,start_link,
[error] <0.917.0>                        [1,<0.910.0>,<0.918.0>,<0.910.0>,
[error] <0.917.0>                         <<"172.24.0.1:43900 -> 172.24.0.2:5672">>,
[error] <0.917.0>                         rabbit_framing_amqp_0_9_1,
[error] <0.917.0>                         {user,<<"guest">>,
[error] <0.917.0>                             [administrator],
[error] <0.917.0>                             [{rabbit_auth_backend_internal,
[error] <0.917.0>                                  #Fun<rabbit_auth_backend_internal.3.111050101>}]},
[error] <0.917.0>                         <<"/">>,
[error] <0.917.0>                         [{<<"authentication_failure_close">>,bool,true},
[error] <0.917.0>                          {<<"basic.nack">>,bool,true},
[error] <0.917.0>                          {<<"connection.blocked">>,bool,true},
[error] <0.917.0>                          {<<"consumer_cancel_notify">>,bool,true},
[error] <0.917.0>                          {<<"publisher_confirms">>,bool,true}],
[error] <0.917.0>                         <0.912.0>,<0.919.0>]}},
[error] <0.917.0>                {restart_type,transient},
[error] <0.917.0>                {significant,true},
[error] <0.917.0>                {shutdown,70000},
[error] <0.917.0>                {child_type,worker}]
[error] <0.917.0> 
[info] <0.910.0> closing AMQP connection <0.910.0> (172.24.0.1:43900 -> 172.24.0.2:5672, vhost: '/', user: 'guest')

Setup

  • Docker Desktop on Windows 11, containers executing on WSL2
  • RabbitMQ3.13-management docker image with rabbitmq_rtopic_exchange inside
FROM rabbitmq:3.13-management

ADD --chown=rabbitmq:rabbitmq --chmod=555 \
    https://github.com/rabbitmq/rabbitmq-rtopic-exchange/releases/download/v3.12.0/rabbitmq_rtopic_exchange-3.12.0.ez plugins/rabbitmq_rtopic_exchange-3.12.0.ez

RUN rabbitmq-plugins enable rabbitmq_rtopic_exchange

Reproducing

  • Launch RabbitMQ 3.13
  • Enable the latest published archive of the extension rabbitmq_rtopic_exchange (3.12.0)
  • Execute the following python code (assuming pika is installed)
from pika import BlockingConnection, ConnectionParameters

connection = BlockingConnection(
    ConnectionParameters(host='localhost')
)
channel = connection.channel()
channel.exchange_declare(exchange="test-fail", exchange_type='x-rtopic')
channel.basic_publish(routing_key="", exchange="test-fail", body="test")
connection.close()

mi-fabien-cayre avatar Apr 23 '24 09:04 mi-fabien-cayre