Releases: cloudamqp/lavinmq
Releases · cloudamqp/lavinmq
v2.0.2
Fixed
- Don't raise FileNotFound when deleting already deleted file #849
- Increase default etcd lease TTL to 10s and run keepalive earlier #847
- Don't remove consumers from queue before all data is sent to client. It may cause a segmentation fault because a unmapped message segment is accessed. #850
Changed
- Exit with status 1 if lost leadership so that LavinMQ is restarted by systemd #846
Changes: v2.0.1...v2.0.2
v2.0.1
Fixed
- etcd lease will no longer expire during slow startup #834
- Leader node is no longer unresponsive while sending file_list/files to new followers #838
- Leader node now waits for all data to be acked to all followers before shutting down on graceful shutdown #835
- Improve broker initiated client disconnects #816
- Fixed sorting on unacked messages #836
Changed
- Remove the 'reset vhost' feature #822
- Build with latest crystal version #841
- Added metadata when logging connection handshake #826
Added
- Added some indexing for streams, greatly increasing performance when looking up by offset or timestamp #817
- Added buildstep for 'make rpm' #840
Changes: v2.0.0...v2.0.1
v2.0.0
With the release of 2.0.0 we introduce High Availablility for LavinMQ in the form of clustering. With clustering, LavinMQ replicates data between nodes with our own replication protocol, and uses etcd for leader election. See this post in the LavinMQ blog or the readme for more information about clustering.
Added
- Full HA clustering support, uses etcd for leader election and metadata, and a replication protocol between nodes.
- Added cluster_status to lavinmqctl #787
- Added deliver_get to message_stats #793
- Added a configurable default consumer prefetch value for all consumers. Defaults to 65535. #813
- Output format (text/json) can now be selected when running lavinmqctl cmds #790
- Clustering clients will now listen on the UNIX sockets if configured
- Clustering server will accept PROXY protocol V2 headers from followers
Fixed
- Shovels' batching of acks caused a lot of unacked messages in source broker #777
- Shovel AMQP source didn't reconnect on network failures (partially fixed in prev release) #758
- Running lavinmqctl commands on a follower node now displays an error and exits with code 2 #785
- Federation queue links now reconnects if the upstream disconnects #788
- Proxying from followers is now more resilient #812
- Sorting on consumer count at channels page
- Log if user tries to declare a queue with an unknown queue type #792
- Force close AMQP connections if a protocol error occurs
- Remove min_isr setting #789
- Wait for followers to synchronize on shutdown of leader
- Make proxied UNIX sockets in followers RW for all
- SystemD notify ready in cluster mode when lader is found
- Etcd actions are retried, etcd can now be restarted without issues
- Clustering secret is monitored if not available yet when becoming a replication follower
Changed
- Updated RabbitMQ HTTP API Go client test to use a patch-file for LavinMQ compatibility #778
- Renames clustering_max_lag -> clustering_max_unsynced_actions to clarify that it is measured in number of actions #810
- Renames lag -> lag_in_bytes to clarify that lag is measured in bytes #810
- Suggests etcd 3.4.0 as min version #815
- Changed logging to provide more information about which queue is being handled #809
- Publishing messages are now handled fully by exchanges #786
- Logging is now handled more uniformly throghout LavinMQ #800
- Don't log handled exceptions as error with backtrace #776
- Don't dynamically fetch active etcd endpoints
v2.0.0-rc.5
Fixed
- Shovels' batching of acks caused a lot of unacked messages in source broker #777
- Shovel AMQP source didn't reconnect on network failures (partially fixed in prev release) #758
- Running lavinmqctl commands on a follower node now displays an error and exits with code 2 #785
- Federation queue links now reconnects if the upstream disconnects #788
- Proxying from followers is now more resilient #812
- Sorting on consumer count at channels page
- Log if user tries to declare a queue with an unknown queue type #792
- Force close AMQP connections if a protocol error occurs
- Remove min_isr setting #789
Changed
- Updated RabbitMQ HTTP API Go client test to use a patch-file for LavinMQ compatibility #778
- Renames clustering_max_lag -> clustering_max_unsynced_actions to clarify that it is measured in number of actions #810
- Renames lag -> lag_in_bytes to clarify that lag is measured in bytes #810
- Suggests etcd 3.4.0 as min version #815
- Changed logging to provide more information about which queue is being handled #809
- Publishing messages are now handled fully by exchanges #786
- Logging is now handled more uniformly throghout LavinMQ #800
- Don't log handled exceptions as error with backtrace #776
Added
v1.3.1
Fixed
- Don't shovel messages after initial queue length #734
- Shovels that were set up to stop after the initial queue length will now stop. For high ingress queues a race condition could trigger these shovels to send more messages than the initial queue length.
- Memory leak in Crystal's Hash implementation fixed #14862
- This release is using Crystal
1.13.2
- This release is using Crystal
- Bindings are now sorted properly in the web interface #726
- Shovel AMQP source didn't reconnect on network failures #758
- Update
amqp-client.cr
to get a necessary fix for reconnecting shovel sources
- Update
- Dead-lettering loop when publishing to a delayed exchange's internal queue was fixed #748
- Exchange federation tried to bind to the upstream's default exchange #749
- Shovel ack all unacked messages on stop #755
- Prevent a queue that is overflowing from consuming too many resources #725
Changes: v1.3.0...v1.3.1
v2.0.0-rc.4
Fixed
- Memory leak in Crystal's Hash implementation
- Accept
x-delayed-exchange
andx-delayed-messages
as exchange type for delayed message the exchanges - Bindings are sorted properly in the web interface
- Wait for followers to synchronize on shutdown of leader
- Shovel the exact number of messages available on start if
delete-after=queue-length
, not more - Prevet a queue that's overflowing to consume too much resources
- Dead-lettering loop when publishing to a delayed exchange's internal queue #748
- Exchange federation tried to bind to upstream's default exchange
- Shovel AMQP source didn't reconnect on network failures
- Shovel ack all unacked messages on stop
- Accept custom certificate parameters in shovel URI such as:
?cacertfile=/tmp/ca.pem&certfile=/tmp/cert.pem&keyfile=/tmp/key.pem
Changed
- Merge the header field and properties.header fields when publishing messages in the web interface
Changes: v2.0.0-rc.3...v2.0.0-rc.4
v1.3.0
[1.3.0] - 2024-07-17
Removed
- Removed old replication in anticipation of coming clustering.
Changed
- Build with Crystal 1.13.1
- Deb packages now includes all debug symbols, for useful stacktraces
- Replaced HTTP router with an internal one. Now LavinMQ uses 0 external libraries.
- Specs are more reliable when a new server is started for each spec
- LavinMQ never sets TLS ciphers by it self, custom ciphers have to be configured via the config
Fixed
- HTTP API: Regression where an (empty) body was required to PUT a new vhost
- lavinmqctl didn't recognize 201/204 response codes from set_permissions, set_user_tags and add_vhost
- Queues will no longer be closed if file size is incorrect. Fixes #669
- Improved logging
- Won't choke on empty message files on boot #685
- Won't choke on somewhat too large message files on boot #671
Added
- Can view which messages are unacked in each queue (HTTP and UI) #712
- Tags and descriptions on VHosts
- Can pass an array of URLs to Shovel
Changes: v1.2.15...v1.3.0
v1.2.15
[1.2.15] - 2024-07-16
Fixed
- Files where not being properly unmapped, causing disk space not to be released #728
Changes: v1.2.14...v1.2.15
v2.0.0-rc.3
Changed
- Build with Crystal 1.13.1
Fixed
- Make proxied UNIX sockets in followers RW for all
- SystemD notify ready in cluster mode when lader is found
Changes: v2.0.0-rc.2...v2.0.0-rc.3
v2.0.0-rc.2
Fixed
- HTTP API: Regression where an (empty) body was required to PUT a new vhost
- Etcd actions are retried, etcd can now be restarted without issues
- Clustering secret is monitored if not available yet when becoming a replication follower
Added
- Can view which messages are unacked in each queue (HTTP and UI)
- Clustering clients will now listen on the UNIX sockets if configured
- Clustering server will accept PROXY protocol V2 headers from followers
Changed
- Deb packages now includes all debug symbols, for useful stacktraces
- Don't dynamically fetch active etcd endpoints
Changes: v2.0.0-rc.1...v2.0.0-rc.2