Skip to content

Releases: bifromqio/bifromq

BifroMQ-v3.2.1

19 Jul 07:51
Compare
Choose a tag to compare

This patch release includes the following changes:

Improvements:

  • The ingressBytes metric, which measures the inbound traffic from MQTT clients, now includes the size of the connect message.
  • Enhanced both the performance and accuracy of the approach for measuring Netty direct memory usage.
  • Reduced memory consumption by adjusting the per-channel maxWriteSize according to outbound bandwidth.
  • Improved stability and recoverability when overloaded.
  • Enhanced the stability of base-kv after failover.

Bug Fixes:

  • Resolved inaccuracies in sizing incoming MQTT messages.
  • Fixed inaccuracies in counting persistent sessions in some failover cases.
  • Implemented a workaround for the issue where metrics collection could be blocked in extreme high direct buffer usage situations.
  • Fixed issue #95 by enforcing type-checking of BifroMQSysProp at build time.

Full Changelog: GitHub Compare v3.2.0...v3.2.1

BifroMQ-v3.2.0

27 Jun 10:47
Compare
Choose a tag to compare

This minor release includes the following changes:

New Features:

  • Introduced an opt-in Maven Archetype to quickly bootstrap plugin development
  • Added unified session lifetime event types(MQTT_SESSION_START/MQTT_SESSION_STOP) for both transient and persistent sessions

Improvements:

  • WS/WSS ports now reject non-WS traffic during the handshake phase and set up the pipeline after the handshake is complete
  • Exceptions thrown during plugin initialization will no longer prevent BifroMQ from starting
  • Cleaned up plugin definition modules and consolidated plugin loading information into a dedicated log file (plugin.log).
  • Improved startup script to read the JVM_DEBUG environment variable

Bug Fixes:

  • No longer maintain a separate view for local session lookup, which was the root cause of issue #91
  • Fixed the overflow issue (#90) in calculating the running average, which caused message dist failures in the long run
  • Fixed the environment variable reading issue in the Windows startup script, which caused issue #88

Full Changelog: v3.1.1...v3.2.0

BifroMQ-v3.1.1

03 Jun 07:08
Compare
Choose a tag to compare

This patch release includes the following changes:

Bug Fixes

  • Fixed a bug in the subscription data encoding format that could cause the topic matching process to get stuck in rare cases. Thanks, @844028312, for reporting the issue (#87) and sharing the test data.
  • Fixed an issue where a node may fail to start after a force kill during a splitting operation (a97adfc).
  • Fixed an issue where the persistent session remains active even when the client is disconnected (d17eb3a).
  • Set the reason field of the DistError event.
  • Corrected two scheduler names used in the inbox service to ensure the related metrics are distinguished.

Improvements

  • Ensured the thread context classloader is set to PluginClassLoader during plugin instance creation to reduce potential ClassNotFoundException errors from the plugin's constructor.
  • Set up pipeline handlers only after the connection is accepted by the rate limiter, improving memory usage when the connection rate exceeds the allowed rate.
  • Added a withoutDisconnect field to the ByClient event to distinguish between two client-initiated disconnection situations.
  • Reported ChannelError event with detailed reasons when a connection is rejected due to exceeding the configured rate.
  • Ensured pipeline resources are closed properly during graceful shutdown (bc329a7).
  • Improved the time spent loading tenant states during startup (5566196).
  • Stopped range splitting when the local store hits the maximum range limit (9c62c5e).

Full Changelog: v3.1.0...v3.1.1

BifroMQ-v3.1.0

23 May 15:46
Compare
Choose a tag to compare

This minor release includes the following changes:

New Feature

  • Enhanced the HTTP Kill API to allow terminating sessions for a specific tenant user or all sessions associated with a tenant. For more details, check the API documentation.

Improvements

Clustering

  • Optimized recovery speed by not caching unresolved InetAddress when the hostname cannot be resolved temporarily.
  • Improved clustering stability by retrying domain resolution with a timeout when joining the clusterConfig.clusterDomainName. The timeout is controlled by the system property cluster_domain_resolve_timeout_seconds.

Docker

  • Reduced the final image size by using a smaller base image and optimizing layer instructions.
  • Included necessary tools for diagnosing various networking issues.

Others

  • Improved backpressure protection by considering heap usage and slowdown timeout.
  • Introduced a dedicated event type, 'OutOfTenantResource,' to signal when a tenant hits the resource limit.
  • Adjusted the upper bound for MaxUserPayloadBytes to 256MB to comply with the MQTT specification.
  • Support building with OpenJDK 22 (#86

Full Changelog: v3.0.2...v3.1.0

BifroMQ-v3.0.2

25 Apr 09:29
Compare
Choose a tag to compare

This patch release includes the following changes:

Improvements

  • Introduced a webhook-based AuthProvider plugin for demos. See documentation.
  • Added more tests to cover publication rate limits and maximum receive behavior.

Bugfixes

  • Fixed an issue where messages sent to an MQTT 5.0 subscriber with the expirySeconds parameter specified would expire before being delivered to the subscriber. See issue #79.
  • Resolved a bug preventing the disconnection of the last connection using the HTTP kill API.

Full Changelog: v3.0.1...v3.0.2

BifroMQ-v2.1.3

17 Apr 03:13
b686751
Compare
Choose a tag to compare

This patch release includes the following changes:

Bugfixes

  • Fixed an issue in the API Server that could lead to a StackOverflow error during prolonged operations when frequently switching tenants. #75
  • Fix a bug which causes will message cannot be sent when client is closed forcibly. #64

Full Changelog: v2.1.2...v2.1.3

BifroMQ-v3.0.1

16 Apr 07:01
Compare
Choose a tag to compare

This patch release includes the following changes:

Improvements

  • Improved DevOnlyAuthProvider to provide more straightforward behavior during testing. #72, #73
  • Introduced a webhook-based SettingProvider plugin for demos. See documentation.

Bugfixes

  • Corrected caching behavior for Tenant Settings. #74
  • Fixed an issue in the API Server that could lead to a StackOverflow error during prolonged operations when frequently switching tenants. #75
  • Resolved a problem where kvrange could remain stuck in the configchanging state if a configuration change was aborted due to slow learners.
  • Fixed an error that could result in kvrange being incorrectly purged.

Full Changelog: v3.0.0...v3.0.1

BifroMQ-v3.0.0

22 Mar 08:43
Compare
Choose a tag to compare

This is the official release of BifroMQ v3.0.0. More information is available on the official website.

Followings are changes since last beta:

Improvements

  • Introduced separate configurations for the RPCs used by the Internal Service and the BaseKV Store.
  • Added more unit tests (UTs) to cover MQTT protocol handling.
  • Optimized the usage of internal executors to reduce latency.

Bug Fixes

  • Fixed an issue where the authentication method for MQTT5 was not being invoked (#65).
  • Addressed a problem that could exceptionally cause connection termination when the publication rate exceeds the limit.

Full Changelog: v3.0.0-beta.1...v3.0.0


v3.0.0-beta.1

14 Mar 06:31
Compare
Choose a tag to compare
v3.0.0-beta.1 Pre-release
Pre-release

This is the second beta for the v3.0.0 release, including the following changes:

Bug Fixes

  • In some cases, migrated KVRange failed to be purged in the original store. See fe99b3b
  • Followers prematurely transitioned to Candidates before the Snapshot Installation was finished, causing inconsistencies between KV data and the WAL. See 07b6b4a.
  • KVRange was incorrectly dropped when there was a concurrent configuration change. See 07b6b4a.
  • Fixes for NPE & CME. See 6c1bac5.

Full Changelog: View the complete changelog from v3.0.0-beta to v3.0.0-beta.1

BifroMQ-v2.1.2

08 Mar 10:11
Compare
Choose a tag to compare

This minor release includes the following changes:

Bugfixes

  • Fix that there may be disorder when pushing messages to subscribers.(See #61)

Full Changelog: v2.1.1...v2.1.2