Skip to content
New issue

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

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

Already on GitHub? # to your account

By @gomoripeti: Restore credit_flow between AMQP 0.9.1 channel/MQTT connection -> CQ processes #12907

Merged
merged 4 commits into from
Dec 10, 2024

Conversation

michaelklishin
Copy link
Member

@michaelklishin michaelklishin commented Dec 10, 2024

See #12885 for background. This is #12906 by @gomoripeti.

gomoripeti and others added 3 commits December 9, 2024 22:33
The credit_flow between publishing AMQP 0.9.1 channel (or MQTT
connection) and (non-mirrored) classic queue processes was
unintentionally removed in 4.0 together with anything else related to
CQ mirroring.

By default we restore the 3.x behaviour for non-mirored classic
queues. It is possible to disable flow-control (the earlier 4.0.x
behaviour) with the new env `classic_queue_flow_control`. In 3.x this
was possible with the config `mirroring_flow_control`.

(cherry picked from commit d65bd7d)
Co-authored-by: Luke Bakken <lukerbakken@gmail.com>
(cherry picked from commit 095f702)
@michaelklishin michaelklishin changed the title By @gomoripeit: Restore credit_flow between AMQP 0.9.1 channel/MQTT connection -> CQ processes By @gomoripeti: Restore credit_flow between AMQP 0.9.1 channel/MQTT connection -> CQ processes Dec 10, 2024
@michaelklishin michaelklishin merged commit b84483a into main Dec 10, 2024
273 checks passed
@michaelklishin michaelklishin deleted the rabbitmq-server-12906 branch December 10, 2024 15:03
@michaelklishin michaelklishin added this to the 4.1.0 milestone Dec 10, 2024
mergify bot pushed a commit that referenced this pull request Dec 10, 2024
…ITE #12907 12906

(cherry picked from commit f3540ee)

# Conflicts:
#	.github/workflows/check-build-system-equivalence.yaml
#	.github/workflows/gazelle-scheduled.yaml
#	.github/workflows/oci-arm64-make.yaml
#	.github/workflows/oci-make.yaml
#	.github/workflows/templates/test.template.yaml
#	.github/workflows/test-authnz.yaml
#	.github/workflows/test-make-target.yaml
#	.github/workflows/test-make.yaml
#	.github/workflows/test-management-ui-for-pr.yaml
#	.github/workflows/test-management-ui.yaml
#	.github/workflows/test-mixed-versions.yaml
#	.github/workflows/test-plugin-mixed.yaml
#	.github/workflows/test-plugin.yaml
#	.github/workflows/test.yaml
#	COMMUNITY_SUPPORT.md
#	MODULE.bazel
#	Makefile
#	bazel/BUILD.horus
#	bazel/BUILD.redbug
#	bazel/bzlmod/secondary_umbrella.bzl
#	deps/amqp10_client/BUILD.bazel
#	deps/amqp10_client/app.bzl
#	deps/amqp10_client/src/amqp10_client.erl
#	deps/amqp10_client/src/amqp10_client_connection.erl
#	deps/amqp10_client/src/amqp10_client_frame_reader.erl
#	deps/amqp10_client/src/amqp10_client_session.erl
#	deps/amqp10_client/src/amqp10_client_types.erl
#	deps/amqp10_client/src/amqp10_msg.erl
#	deps/amqp10_client/test/system_SUITE.erl
#	deps/amqp10_common/app.bzl
#	deps/amqp_client/src/amqp_network_connection.erl
#	deps/oauth2_client/app.bzl
#	deps/oauth2_client/include/oauth2_client.hrl
#	deps/oauth2_client/src/oauth2_client.erl
#	deps/oauth2_client/test/system_SUITE.erl
#	deps/oauth2_client/test/unit_SUITE.erl
#	deps/rabbit/BUILD.bazel
#	deps/rabbit/Makefile
#	deps/rabbit/app.bzl
#	deps/rabbit/ct.test.spec
#	deps/rabbit/include/rabbit_amqp.hrl
#	deps/rabbit/src/mc.erl
#	deps/rabbit/src/mc_amqp.erl
#	deps/rabbit/src/mc_amqpl.erl
#	deps/rabbit/src/mc_compat.erl
#	deps/rabbit/src/mc_util.erl
#	deps/rabbit/src/rabbit_access_control.erl
#	deps/rabbit/src/rabbit_amqp_management.erl
#	deps/rabbit/src/rabbit_amqp_reader.erl
#	deps/rabbit/src/rabbit_amqp_session.erl
#	deps/rabbit/src/rabbit_amqp_util.erl
#	deps/rabbit/src/rabbit_amqp_writer.erl
#	deps/rabbit/src/rabbit_amqqueue.erl
#	deps/rabbit/src/rabbit_binding.erl
#	deps/rabbit/src/rabbit_channel.erl
#	deps/rabbit/src/rabbit_core_ff.erl
#	deps/rabbit/src/rabbit_db_binding.erl
#	deps/rabbit/src/rabbit_db_cluster.erl
#	deps/rabbit/src/rabbit_db_exchange.erl
#	deps/rabbit/src/rabbit_depr_ff_extra.erl
#	deps/rabbit/src/rabbit_deprecated_features.erl
#	deps/rabbit/src/rabbit_exchange.erl
#	deps/rabbit/src/rabbit_feature_flags.erl
#	deps/rabbit/src/rabbit_ff_controller.erl
#	deps/rabbit/src/rabbit_ff_extra.erl
#	deps/rabbit/src/rabbit_ff_registry.erl
#	deps/rabbit/src/rabbit_ff_registry_factory.erl
#	deps/rabbit/src/rabbit_ff_registry_wrapper.erl
#	deps/rabbit/src/rabbit_global_counters.erl
#	deps/rabbit/src/rabbit_khepri.erl
#	deps/rabbit/src/rabbit_mnesia.erl
#	deps/rabbit/src/rabbit_networking.erl
#	deps/rabbit/src/rabbit_prelaunch_feature_flags.erl
#	deps/rabbit/src/rabbit_queue_type.erl
#	deps/rabbit/src/rabbit_quorum_queue.erl
#	deps/rabbit/src/rabbit_reader.erl
#	deps/rabbit/src/rabbit_stream_queue.erl
#	deps/rabbit/test/amqp_address_SUITE.erl
#	deps/rabbit/test/amqp_auth_SUITE.erl
#	deps/rabbit/test/amqp_client_SUITE.erl
#	deps/rabbit/test/amqp_system_SUITE.erl
#	deps/rabbit/test/dead_lettering_SUITE.erl
#	deps/rabbit/test/disconnect_detected_during_alarm_SUITE.erl
#	deps/rabbit/test/feature_flags_v2_SUITE.erl
#	deps/rabbit/test/mc_unit_SUITE.erl
#	deps/rabbit/test/quorum_queue_SUITE.erl
#	deps/rabbit/test/rabbit_db_binding_SUITE.erl
#	deps/rabbit/test/rabbit_db_queue_SUITE.erl
#	deps/rabbit/test/topic_permission_SUITE.erl
#	deps/rabbit_common/mk/rabbitmq-early-plugin.mk
#	deps/rabbit_common/src/rabbit_core_metrics.erl
#	deps/rabbit_common/src/rabbit_env.erl
#	deps/rabbit_common/src/rabbit_event.erl
#	deps/rabbit_common/src/rabbit_ssl_options.erl
#	deps/rabbit_common/test/rabbit_env_SUITE.erl
#	deps/rabbitmq_amqp_client/src/rabbitmq_amqp_client.erl
#	deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot/pom.xml
#	deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot_kotlin/pom.xml
#	deps/rabbitmq_auth_backend_http/src/rabbit_auth_backend_http.erl
#	deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
#	deps/rabbitmq_auth_backend_oauth2/BUILD.bazel
#	deps/rabbitmq_auth_backend_oauth2/Makefile
#	deps/rabbitmq_auth_backend_oauth2/README.md
#	deps/rabbitmq_auth_backend_oauth2/app.bzl
#	deps/rabbitmq_auth_backend_oauth2/priv/schema/rabbitmq_auth_backend_oauth2.schema
#	deps/rabbitmq_auth_backend_oauth2/src/rabbit_auth_backend_oauth2.erl
#	deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_schema.erl
#	deps/rabbitmq_auth_backend_oauth2/src/rabbit_oauth2_scope.erl
#	deps/rabbitmq_auth_backend_oauth2/src/uaa_jwks.erl
#	deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt.erl
#	deps/rabbitmq_auth_backend_oauth2/src/uaa_jwt_jwt.erl
#	deps/rabbitmq_auth_backend_oauth2/test/config_schema_SUITE_data/rabbitmq_auth_backend_oauth2.snippets
#	deps/rabbitmq_auth_backend_oauth2/test/jwks_SUITE.erl
#	deps/rabbitmq_auth_backend_oauth2/test/rabbit_oauth2_schema_SUITE.erl
#	deps/rabbitmq_auth_backend_oauth2/test/system_SUITE.erl
#	deps/rabbitmq_auth_backend_oauth2/test/unit_SUITE.erl
#	deps/rabbitmq_cli/Makefile
#	deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_connections_command.ex
#	deps/rabbitmq_event_exchange/BUILD.bazel
#	deps/rabbitmq_event_exchange/Makefile
#	deps/rabbitmq_event_exchange/README.md
#	deps/rabbitmq_event_exchange/app.bzl
#	deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema
#	deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
#	deps/rabbitmq_event_exchange/test/config_schema_SUITE_data/rabbitmq_event_exchange.snippets
#	deps/rabbitmq_event_exchange/test/system_SUITE.erl
#	deps/rabbitmq_management/.gitignore
#	deps/rabbitmq_management/BUILD.bazel
#	deps/rabbitmq_management/Makefile
#	deps/rabbitmq_management/app.bzl
#	deps/rabbitmq_management/priv/schema/rabbitmq_management.schema
#	deps/rabbitmq_management/priv/www/css/main.css
#	deps/rabbitmq_management/priv/www/js/dispatcher.js
#	deps/rabbitmq_management/priv/www/js/global.js
#	deps/rabbitmq_management/priv/www/js/main.js
#	deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js
#	deps/rabbitmq_management/priv/www/js/tmpl/connection.ejs
#	deps/rabbitmq_management/priv/www/js/tmpl/connections.ejs
#	deps/rabbitmq_management/priv/www/js/tmpl/deprecated-features.ejs
#	deps/rabbitmq_management/priv/www/js/tmpl/feature-flags.ejs
#	deps/rabbitmq_management/src/rabbit_mgmt_dispatcher.erl
#	deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
#	deps/rabbitmq_management/test/clustering_prop_SUITE.erl
#	deps/rabbitmq_management/test/config_schema_SUITE_data/rabbitmq_management.snippets
#	deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl
#	deps/rabbitmq_management/test/rabbit_mgmt_wm_auth_SUITE.erl
#	deps/rabbitmq_management_agent/src/rabbit_mgmt_ff.erl
#	deps/rabbitmq_mqtt/BUILD.bazel
#	deps/rabbitmq_mqtt/Makefile
#	deps/rabbitmq_mqtt/src/mc_mqtt.erl
#	deps/rabbitmq_mqtt/src/rabbit_mqtt.erl
#	deps/rabbitmq_mqtt/src/rabbit_mqtt_ff.erl
#	deps/rabbitmq_mqtt/src/rabbit_mqtt_processor.erl
#	deps/rabbitmq_mqtt/src/rabbit_mqtt_reader.erl
#	deps/rabbitmq_mqtt/test/java_SUITE_data/pom.xml
#	deps/rabbitmq_mqtt/test/mc_mqtt_SUITE.erl
#	deps/rabbitmq_mqtt/test/mqtt_shared_SUITE.erl
#	deps/rabbitmq_prometheus/BUILD.bazel
#	deps/rabbitmq_prometheus/app.bzl
#	deps/rabbitmq_prometheus/src/collectors/prometheus_rabbitmq_global_metrics_collector.erl
#	deps/rabbitmq_prometheus/src/rabbit_prometheus_dispatcher.erl
#	deps/rabbitmq_prometheus/test/rabbit_prometheus_http_SUITE.erl
#	deps/rabbitmq_stream/test/protocol_interop_SUITE.erl
#	deps/rabbitmq_stream/test/rabbit_stream_SUITE_data/pom.xml
#	deps/rabbitmq_stream_management/priv/www/js/tmpl/streamConnection.ejs
#	deps/rabbitmq_stream_management/test/http_SUITE_data/pom.xml
#	deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_handler.erl
#	deps/rabbitmq_web_mqtt/test/web_mqtt_shared_SUITE.erl
#	moduleindex.yaml
#	rabbitmq-components.mk
#	rabbitmq.bzl
#	release-notes/4.0.1.md
#	selenium/.gitignore
#	selenium/bin/components/devkeycloak
#	selenium/bin/components/fakeportal
#	selenium/bin/components/fakeproxy
#	selenium/bin/components/prodkeycloak
#	selenium/bin/components/rabbitmq
#	selenium/bin/components/uaa
#	selenium/bin/gen-env-file
#	selenium/bin/suite_template
#	selenium/fakeportal/app.js
#	selenium/full-suite-authnz-messaging
#	selenium/full-suite-management-ui
#	selenium/package.json
#	selenium/run-suites.sh
#	selenium/short-suite-management-ui
#	selenium/suites/authnz-messaging/auth-internal-backend.sh
#	selenium/suites/authnz-mgt/oauth-with-uaa.sh
#	selenium/test/amqp.js
#	selenium/test/authnz-msg-protocols/amqp10.js
#	selenium/test/authnz-msg-protocols/env.auth-oauth-dev.docker
#	selenium/test/authnz-msg-protocols/env.auth-oauth-dev.local
#	selenium/test/authnz-msg-protocols/env.auth-oauth-prod.docker
#	selenium/test/authnz-msg-protocols/env.auth-oauth-prod.local
#	selenium/test/authnz-msg-protocols/env.docker.devkeycloak
#	selenium/test/authnz-msg-protocols/env.docker.prodkeycloak
#	selenium/test/authnz-msg-protocols/env.local.devkeycloak
#	selenium/test/authnz-msg-protocols/env.local.prodkeycloak
#	selenium/test/authnz-msg-protocols/mqtt.js
#	selenium/test/basic-auth/env.local
#	selenium/test/basic-auth/imports/users.json
#	selenium/test/basic-auth/rabbitmq.conf
#	selenium/test/connections/amqp10/sessions-for-monitoring-user.js
#	selenium/test/env.docker
#	selenium/test/env.local
#	selenium/test/env.tls.docker
#	selenium/test/env.tls.local
#	selenium/test/exchanges/management.js
#	selenium/test/multi-oauth/env.local
#	selenium/test/multi-oauth/env.local.devkeycloak
#	selenium/test/multi-oauth/env.local.prodkeycloak
#	selenium/test/multi-oauth/rabbitmq.tls.conf
#	selenium/test/oauth/env.docker.fakeportal
#	selenium/test/oauth/env.docker.fakeproxy
#	selenium/test/oauth/env.docker.uaa
#	selenium/test/oauth/env.local
#	selenium/test/oauth/env.local.fakeportal
#	selenium/test/oauth/env.local.keycloak
#	selenium/test/oauth/env.local.uaa
#	selenium/test/oauth/rabbitmq.conf
#	selenium/test/oauth/rabbitmq.keycloak-mgt-oauth-provider.conf
#	selenium/test/oauth/rabbitmq.tls.conf
#	selenium/test/oauth/uaa/uaa.yml
#	selenium/test/pageobjects/BasePage.js
#	selenium/test/pageobjects/OverviewPage.js
@michaelklishin
Copy link
Member Author

I will create a backport PR manually.

michaelklishin added a commit that referenced this pull request Dec 10, 2024
michaelklishin added a commit that referenced this pull request Dec 10, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants