Skip to content
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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants