|
| 1 | +## RabbitMQ 4.0.5 |
| 2 | + |
| 3 | +RabbitMQ `4.0.5` is a maintenance release in the `4.0.x` [release series](https://www.rabbitmq.com/release-information). |
| 4 | + |
| 5 | +Starting June 1st, 2024, community support for this series will only be provided to [regularly contributing users](https://github.com/rabbitmq/rabbitmq-server/blob/main/COMMUNITY_SUPPORT.md) and those |
| 6 | +who hold a valid [commercial support license](https://tanzu.vmware.com/rabbitmq/oss). |
| 7 | + |
| 8 | +It is **strongly recommended** that you read [4.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.0.1) |
| 9 | +in detail if upgrading from a version prior to `4.0.0`. |
| 10 | + |
| 11 | + |
| 12 | +### Minimum Supported Erlang Version |
| 13 | + |
| 14 | +This release requires Erlang 26 and supports Erlang versions up to `27.2.x`. |
| 15 | +[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/docs/which-erlang) has more details on |
| 16 | +Erlang version requirements for RabbitMQ. |
| 17 | + |
| 18 | +Nodes **will fail to start** on older Erlang releases. |
| 19 | + |
| 20 | + |
| 21 | +## Changes Worth Mentioning |
| 22 | + |
| 23 | +Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v4.0.x/release-notes). |
| 24 | + |
| 25 | +### Core Broker |
| 26 | + |
| 27 | +#### Bug Fixes |
| 28 | + |
| 29 | + * Reintroduced transient flow control between classic queue replicas and AMQP 0-9-1 channels, |
| 30 | + MQTT connections. |
| 31 | + |
| 32 | + Flow control between these specific parts of the core were unintentionally |
| 33 | + removed in `4.0.0` together with classic queue mirroring. |
| 34 | + |
| 35 | + Contributed by @gomoripeti. |
| 36 | + |
| 37 | + GitHub issue: [#12907](https://github.com/rabbitmq/rabbitmq-server/pull/12907) |
| 38 | + |
| 39 | + * The feature that warns when deprecated features are used in the cluster had a false positive that treated (and reported) any queue |
| 40 | + as a "transient non-exclusive classic queue", even if the queue was of a different type, was not transient, and so on. |
| 41 | + |
| 42 | + GitHub issue: [#12802](https://github.com/rabbitmq/rabbitmq-server/issues/12802) |
| 43 | + |
| 44 | + * AMQP 1.0 clients with close to peak consumption rates with a high `max_link_creadit` setting could run into an exception |
| 45 | + because RabbitMQ could set the incoming window size to a negative value. |
| 46 | + |
| 47 | + GitHub issue: [#12816](https://github.com/rabbitmq/rabbitmq-server/issues/12816), [#12904](https://github.com/rabbitmq/rabbitmq-server/pull/12904) |
| 48 | + |
| 49 | + * AMQP 0-9-1 channel exception generator could not handle entity names (say, queue or stream names) |
| 50 | + that contained non-ASCII characters. |
| 51 | + |
| 52 | + This affected applications that use passive queue declarations, such as the Shovel plugin. |
| 53 | + |
| 54 | + Contributed by @bpint. |
| 55 | + |
| 56 | + GitHub issue: [#12888](https://github.com/rabbitmq/rabbitmq-server/pull/12888) |
| 57 | + |
| 58 | + * Peer discovery resilience improvements. |
| 59 | + |
| 60 | + GitHub issues: [#12801](https://github.com/rabbitmq/rabbitmq-server/pull/12801), [#12809](https://github.com/rabbitmq/rabbitmq-server/pull/12809) |
| 61 | + |
| 62 | + * Deadlettering of some messages could result in an exception. |
| 63 | + |
| 64 | + GitHub issue: [#12933](https://github.com/rabbitmq/rabbitmq-server/issues/12933), [#12938](https://github.com/rabbitmq/rabbitmq-server/pull/12938) |
| 65 | + |
| 66 | +#### Enhancements |
| 67 | + |
| 68 | + * For virtual hosts that have a [default queue type]() configured, the DQT value is now injected into |
| 69 | + queue definitions in exported definition documents. |
| 70 | + |
| 71 | + GitHub issue: [#12776](https://github.com/rabbitmq/rabbitmq-server/issues/12776) |
| 72 | + |
| 73 | + * Definition export files now have additional "type" markers that help distinguish a cluster-wide definition file from |
| 74 | + that of a single virtual host. |
| 75 | + |
| 76 | + GitHub issue: [#12835](https://github.com/rabbitmq/rabbitmq-server/issues/12835) |
| 77 | + |
| 78 | + |
| 79 | +### Prometheus Plugin and Grafana Dashboards |
| 80 | + |
| 81 | +#### Enhancements |
| 82 | + |
| 83 | + * Two new stream metrics for streams. |
| 84 | + |
| 85 | + Contributed by @gomoripeti and @markus812498. |
| 86 | + |
| 87 | + GitHub issue: [#12765](https://github.com/rabbitmq/rabbitmq-server/pull/12765) |
| 88 | + |
| 89 | + |
| 90 | +### Management Plugin |
| 91 | + |
| 92 | +#### Bug Fixes |
| 93 | + |
| 94 | + * Fixes a false positive that incorrectly reported deprecated feature use, specifically |
| 95 | + the use of non-exclusive transient classic queues. |
| 96 | + |
| 97 | + GitHub issue: [#12840](https://github.com/rabbitmq/rabbitmq-server/pull/12840) |
| 98 | + |
| 99 | + * `GET /api/overview` did not format empty cluster and node list tags as an empty JSON object, |
| 100 | + which was problematic for HTTP API clients with statically typed response data structures. |
| 101 | + |
| 102 | + GitHub issue: [#12797](https://github.com/rabbitmq/rabbitmq-server/pull/12797) |
| 103 | + |
| 104 | + * When a logged in user's JWT token was refreshed, the user identity displayed in the UI was changed. |
| 105 | + |
| 106 | + GitHub issue: [#12818](https://github.com/rabbitmq/rabbitmq-server/pull/12818) |
| 107 | + |
| 108 | + |
| 109 | +### OAuth 2 Plugin |
| 110 | + |
| 111 | +#### Bug Fixes |
| 112 | + |
| 113 | +* When a logged in user's JWT token was refreshed, the user identity displayed in the UI was changed. |
| 114 | + |
| 115 | + GitHub issue: [#12818](https://github.com/rabbitmq/rabbitmq-server/pull/12818) |
| 116 | + |
| 117 | + |
| 118 | +### AWS Peer Discovery Plugin |
| 119 | + |
| 120 | +#### Bug Fixes |
| 121 | + |
| 122 | + * Avoids an exception during automatic removal of cluster members that are |
| 123 | + no longer returned by peer discovery (an [opt-in feature](https://www.rabbitmq.com/docs/cluster-formation#node-health-checks-and-cleanup)). |
| 124 | + |
| 125 | + GitHub issue: [#12809](https://github.com/rabbitmq/rabbitmq-server/pull/12809) |
| 126 | + |
| 127 | + |
| 128 | +### Kubernetes Peer Discovery Plugin |
| 129 | + |
| 130 | +#### Bug Fixes |
| 131 | + |
| 132 | + * Avoids an exception during automatic removal of cluster members that are |
| 133 | + no longer returned by peer discovery (an [opt-in feature](https://www.rabbitmq.com/docs/cluster-formation#node-health-checks-and-cleanup)). |
| 134 | + |
| 135 | + GitHub issue: [#12809](https://github.com/rabbitmq/rabbitmq-server/pull/12809) |
| 136 | + |
| 137 | + |
| 138 | +### Consul Peer Discovery Plugin |
| 139 | + |
| 140 | +#### Bug Fixes |
| 141 | + |
| 142 | + * Avoids an exception during automatic removal of cluster members that are |
| 143 | + no longer returned by peer discovery (an [opt-in feature](https://www.rabbitmq.com/docs/cluster-formation#node-health-checks-and-cleanup)). |
| 144 | + |
| 145 | + GitHub issue: [#12809](https://github.com/rabbitmq/rabbitmq-server/pull/12809) |
| 146 | + |
| 147 | + |
| 148 | +### etcd Peer Discovery Plugin |
| 149 | + |
| 150 | +#### Bug Fixes |
| 151 | + |
| 152 | + * Avoids an exception during automatic removal of cluster members that are |
| 153 | + no longer returned by peer discovery (an [opt-in feature](https://www.rabbitmq.com/docs/cluster-formation#node-health-checks-and-cleanup)). |
| 154 | + |
| 155 | + GitHub issue: [#12809](https://github.com/rabbitmq/rabbitmq-server/pull/12809) |
| 156 | + |
| 157 | + |
| 158 | +### Dependency Changes |
| 159 | + |
| 160 | + * `osiris` was upgraded to [`1.8.5`](https://github.com/rabbitmq/osiris/releases) |
| 161 | + |
| 162 | + |
| 163 | +## Source Code Archives |
| 164 | + |
| 165 | +To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-4.0.5.tar.xz` |
| 166 | +instead of the source tarball produced by GitHub. |
0 commit comments