This is an automated email from the ASF dual-hosted git repository. lhotari pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
commit d4f73de0089b365ba967c65d7d6ce645f0b3269e Author: Lari Hotari <[email protected]> AuthorDate: Thu Feb 19 21:58:35 2026 +0200 Create release notes for 4.0.9 and 4.1.3 --- data/release-java.js | 18 ++- data/release-pulsar.js | 22 +++- release-notes/versioned/client-java-4.0.9.md | 26 +++++ release-notes/versioned/client-java-4.1.3.md | 26 +++++ release-notes/versioned/pulsar-4.0.9.md | 159 +++++++++++++++++++++++++++ release-notes/versioned/pulsar-4.1.3.md | 150 +++++++++++++++++++++++++ releases.json | 2 + 7 files changed, 399 insertions(+), 4 deletions(-) diff --git a/data/release-java.js b/data/release-java.js index 9a1bd228cdd..ffe1d4d325e 100644 --- a/data/release-java.js +++ b/data/release-java.js @@ -1,10 +1,17 @@ module.exports = [ + { + "tagName": "v4.1.3", + "vtag": "4.1.x", + "releaseNotes": "/release-notes/versioned/client-java-4.1.3/", + "doc": "/docs/4.1.x/client-libraries-java", + "version": "v4.1.x" + }, { "tagName": "v4.1.2", "vtag": "4.1.x", "releaseNotes": "/release-notes/versioned/client-java-4.1.2/", "doc": "/docs/4.1.x/client-libraries-java", - "version": "v4.1.x" + "version": "" }, { "tagName": "v4.1.1", @@ -20,12 +27,19 @@ module.exports = [ "doc": "/docs/4.1.x/client-libraries-java", "version": "" }, + { + "tagName": "v4.0.9", + "vtag": "4.0.x", + "releaseNotes": "/release-notes/versioned/client-java-4.0.9/", + "doc": "/docs/4.0.x/client-libraries-java", + "version": "v4.0.x" + }, { "tagName": "v4.0.8", "vtag": "4.0.x", "releaseNotes": "/release-notes/versioned/client-java-4.0.8/", "doc": "/docs/4.0.x/client-libraries-java", - "version": "v4.0.x" + "version": "" }, { "tagName": "v4.0.7", diff --git a/data/release-pulsar.js b/data/release-pulsar.js index 861d2619505..0bb4da779c2 100644 --- a/data/release-pulsar.js +++ b/data/release-pulsar.js @@ -1,4 +1,13 @@ module.exports = [ + { + "author": "lhotari", + "tagName": "v4.1.3", + "publishedAt": "2026-02-19T19:48:49Z", + "vtag": "4.1.x", + "releaseNotes": "/release-notes/versioned/pulsar-4.1.3/", + "doc": "/docs/4.1.x", + "version": "v4.1.x" + }, { "author": "lhotari", "tagName": "v4.1.2", @@ -6,7 +15,7 @@ module.exports = [ "vtag": "4.1.x", "releaseNotes": "/release-notes/versioned/pulsar-4.1.2/", "doc": "/docs/4.1.x", - "version": "v4.1.x" + "version": "" }, { "author": "lhotari", @@ -26,6 +35,15 @@ module.exports = [ "doc": "/docs/4.1.x", "version": "" }, + { + "author": "lhotari", + "tagName": "v4.0.9", + "publishedAt": "2026-02-19T19:48:13Z", + "vtag": "4.0.x", + "releaseNotes": "/release-notes/versioned/pulsar-4.0.9/", + "doc": "/docs/4.0.x", + "version": "v4.0.x" + }, { "author": "lhotari", "tagName": "v4.0.8", @@ -33,7 +51,7 @@ module.exports = [ "vtag": "4.0.x", "releaseNotes": "/release-notes/versioned/pulsar-4.0.8/", "doc": "/docs/4.0.x", - "version": "v4.0.x" + "version": "" }, { "author": "lhotari", diff --git a/release-notes/versioned/client-java-4.0.9.md b/release-notes/versioned/client-java-4.0.9.md new file mode 100644 index 00000000000..76827808a19 --- /dev/null +++ b/release-notes/versioned/client-java-4.0.9.md @@ -0,0 +1,26 @@ +--- +id: client-java-4.0.9 +title: Client Java 4.0.9 +sidebar_label: Client Java 4.0.9 +--- + +- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178)) +- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015)) +- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008)) +- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069)) +- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207)) +- [fix][client] Fix race condition between isDuplicate() and flushAsync() method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty Recycler ([#25208](https://github.com/apache/pulsar/pull/25208)) +- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014)) +- [fix][client] PIP-84: Skip processing a message in the message listener if the consumer epoch is no longer valid ([#25007](https://github.com/apache/pulsar/pull/25007)) +- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229)) +- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006)) +- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106)) +- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036)) +- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052)) +- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013)) +- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172)) +- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944)) +- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232)) +- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024)) +- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983)) +- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986)) diff --git a/release-notes/versioned/client-java-4.1.3.md b/release-notes/versioned/client-java-4.1.3.md new file mode 100644 index 00000000000..a7a4d562483 --- /dev/null +++ b/release-notes/versioned/client-java-4.1.3.md @@ -0,0 +1,26 @@ +--- +id: client-java-4.1.3 +title: Client Java 4.1.3 +sidebar_label: Client Java 4.1.3 +--- + +- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178)) +- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015)) +- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008)) +- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069)) +- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207)) +- [fix][client] Fix race condition between isDuplicate() and flushAsync() method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty Recycler ([#25208](https://github.com/apache/pulsar/pull/25208)) +- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014)) +- [fix][client] PIP-84: Skip processing a message in the message listener if the consumer epoch is no longer valid ([#25007](https://github.com/apache/pulsar/pull/25007)) +- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229)) +- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006)) +- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106)) +- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036)) +- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052)) +- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013)) +- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172)) +- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944)) +- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232)) +- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024)) +- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983)) +- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986)) \ No newline at end of file diff --git a/release-notes/versioned/pulsar-4.0.9.md b/release-notes/versioned/pulsar-4.0.9.md new file mode 100644 index 00000000000..7675f4a9274 --- /dev/null +++ b/release-notes/versioned/pulsar-4.0.9.md @@ -0,0 +1,159 @@ +--- +id: pulsar-4.0.9 +title: Apache Pulsar 4.0.9 +sidebar_label: Apache Pulsar 4.0.9 +--- + +#### 2026-02-19 + +### Library updates + +- [improve][broker] Upgrade bookkeeper to 4.17.3 ([#25166](https://github.com/apache/pulsar/pull/25166)) +- [fix][sec] Bump at.yawk.lz4:lz4-java from 1.9.0 to 1.10.1 in /pulsar-common ([#25045](https://github.com/apache/pulsar/pull/25045)) +- [fix][sec] Bump org.apache.solr:solr-core from 9.8.0 to 9.10.1 in /pulsar-io/solr ([#25175](https://github.com/apache/pulsar/pull/25175)) +- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024)) +- [fix][sec] Exclude org.lz4:lz4-java and standardize on at.yawk.lz4-java to remediate CVE-2025-12183 and CVE-2025-66566 ([#25198](https://github.com/apache/pulsar/pull/25198)) +- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095)) +- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095)) +- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 ([#25102](https://github.com/apache/pulsar/pull/25102)) +- [fix][sec] Upgrade Netty to 4.1.130.Final ([#25078](https://github.com/apache/pulsar/pull/25078)) +- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 ([#25206](https://github.com/apache/pulsar/pull/25206)) +- [fix][sec] Upgrade vertx to address CVE-2026-1002 ([#25152](https://github.com/apache/pulsar/pull/25152)) +- [fix][test] Upgrade docker-java to 3.7.0 ([#25209](https://github.com/apache/pulsar/pull/25209)) +- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 2.21.0 and Otel semconv to 1.37.0 ([#24994](https://github.com/apache/pulsar/pull/24994)) +- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 2.21.0 and Otel semconv to 1.37.0 ([#24994](https://github.com/apache/pulsar/pull/24994)) +- [improve][misc] Upgrade snappy version to 1.1.10.8 ([#25182](https://github.com/apache/pulsar/pull/25182)) +- [feat][meta] upgrade oxia version to 0.7.2 ([#24976](https://github.com/apache/pulsar/pull/24976)) +- [fix] Upgrade gson to 2.13.2 ([#25022](https://github.com/apache/pulsar/pull/25022)) +- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983)) +- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 ([#24985](https://github.com/apache/pulsar/pull/24985)) +- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232)) +- [fix][sec] Bump github.com/dvsekhvalnov/jose2go from 1.6.0 to 1.7.0 in /pulsar-function-go ([#24987](https://github.com/apache/pulsar/pull/24987)) + +### Broker + +- [fix][broker] Add schema version in rest produce api ([#25004](https://github.com/apache/pulsar/pull/25004)) +- [fix][broker] Avoid split non-existent bundle ([#25031](https://github.com/apache/pulsar/pull/25031)) +- [fix][broker] Fence reset cursor by timestamp to avoid concurrent timestamp-based position lookups ([#25151](https://github.com/apache/pulsar/pull/25151)) +- [fix][broker] Fix chunked message loss when no consumers are available ([#25077](https://github.com/apache/pulsar/pull/25077)) +- [fix][broker] Fix compaction horizon might be reset to an old position when phase two is interrupted ([#25119](https://github.com/apache/pulsar/pull/25119)) +- [fix][broker] Fix creation of replicated subscriptions for partitioned topics ([#24997](https://github.com/apache/pulsar/pull/24997)) +- [fix][broker] Fix cursor position persistence in ledger trimming ([#25087](https://github.com/apache/pulsar/pull/25087)) +- [fix][broker] Fix httpProxyTimeout config ([#25223](https://github.com/apache/pulsar/pull/25223)) +- [fix][broker] Fix incomplete futures in topic property update/delete methods ([#25228](https://github.com/apache/pulsar/pull/25228)) +- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication ([#25012](https://github.com/apache/pulsar/pull/25012)) +- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous async mark delete properties in race condition ([#25165](https://github.com/apache/pulsar/pull/25165)) +- [fix][broker] Fix markDeletedPosition race condition in ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method ([#25110](https://github.com/apache/pulsar/pull/25110)) +- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when subscription prefix doesn't match. ([#25121](https://github.com/apache/pulsar/pull/25121)) +- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn by returning a valid Position ([#25039](https://github.com/apache/pulsar/pull/25039)) +- [fix][broker] fix prepareInitPoliciesCacheAsync in SystemTopicBasedTopicPoliciesService ([#24980](https://github.com/apache/pulsar/pull/24980)) +- [fix][broker] Fix regex matching of namespace name which might contain a regex char ([#25136](https://github.com/apache/pulsar/pull/25136)) +- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null value ([#25231](https://github.com/apache/pulsar/pull/25231)) +- [fix][broker] Fix various error-prone detected errors mainly in logging and String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059)) +- [fix][broker] Force EnsemblePolicies to resolve network location after rackInfoMap is updated due to changes in /ledgers/available znode ([#25067](https://github.com/apache/pulsar/pull/25067)) +- [fix][broker] PIP-442: Fix race condition in async semaphore permit updates that causes memory limits to become ineffective ([#25066](https://github.com/apache/pulsar/pull/25066)) +- [fix][broker] Prevent missed topic changes in topic watchers and schedule periodic refresh with patternAutoDiscoveryPeriod interval ([#25188](https://github.com/apache/pulsar/pull/25188)) +- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the same subscription ([#25047](https://github.com/apache/pulsar/pull/25047)) +- [fix][broker]Fix ledgerHandle failed to read by using new BK API ([#25199](https://github.com/apache/pulsar/pull/25199)) +- [fix][broker]Fix memory leak when using a customized ManagedLedger implementation ([#25016](https://github.com/apache/pulsar/pull/25016)) +- [fix][broker]Incorrect backlog that is larger than expected ([#25037](https://github.com/apache/pulsar/pull/25037)) +- [fix][broker]Infinitely failed to delete topic if the first time failed and enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073)) +- [fix][broker]pulsar_ml_reads_inflight_bytes and pulsar_ml_reads_available_inflight_bytes are 0 at the same time ([#25105](https://github.com/apache/pulsar/pull/25105)) +- [fix][broker]Topic deleting failed after removed local cluster from namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114)) +- [fix][broker]Wrong backlog: expected 0 but got 1 ([#24938](https://github.com/apache/pulsar/pull/24938)) +- [fix][admin] Fix offload policy incompatible issue. ([#25149](https://github.com/apache/pulsar/pull/25149)) +- [fix][admin] Refactor bookie affinity group sync operations to async in rest api ([#25050](https://github.com/apache/pulsar/pull/25050)) +- [fix][ml] Fix cursor backlog size to account for individual acks ([#25089](https://github.com/apache/pulsar/pull/25089)) +- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race condition ([#25177](https://github.com/apache/pulsar/pull/25177)) +- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is encountered ([#25148](https://github.com/apache/pulsar/pull/25148)) +- [fix][meta] Metadata cache refresh might not take effect ([#25246](https://github.com/apache/pulsar/pull/25246)) +- [improve][broker] Add idle timeout support for http ([#25224](https://github.com/apache/pulsar/pull/25224)) +- [improve][broker] Add strictAuthMethod to require explicit authentication method ([#25185](https://github.com/apache/pulsar/pull/25185)) +- [improve][broker] Change the log level from error to info when throwing NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130)) +- [improve][broker] Enhance logging for adding schema failures in ServerCnx ([#25048](https://github.com/apache/pulsar/pull/25048)) +- [improve][broker] Ensure metadata session state visibility and improve Unstable observability for ServiceUnitStateChannelImpl ([#25132](https://github.com/apache/pulsar/pull/25132)) +- [improve][broker] Fix replicated subscriptions race condition with mark delete update and snapshot completion ([#16651](https://github.com/apache/pulsar/pull/16651)) +- [improve][broker] Fix thread safety issue in ManagedCursorImpl.removeProperty ([#25104](https://github.com/apache/pulsar/pull/25104)) +- [improve][broker] Give the detail error msg when authenticate failed with AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221)) +- [improve][broker] Improve replicated subscription snapshot cache so that subscriptions can be replicated when mark delete position update is not frequent ([#25044](https://github.com/apache/pulsar/pull/25044)) +- [improve][broker] Optimize Reader creation in TopicPoliciesService ([#24658](https://github.com/apache/pulsar/pull/24658)) +- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) ([#25070](https://github.com/apache/pulsar/pull/25070)) +- [improve][broker] Use atomic counter for ongoing transaction count ([#25053](https://github.com/apache/pulsar/pull/25053)) +- [improve][broker]Add test for getting partitioned topic metadata with PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026)) +- [improve][broker]Improve error response of failed to delete topic if it has replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975)) +- [improve][broker]Remove the warn log that frequently prints ([#25018](https://github.com/apache/pulsar/pull/25018)) +- [improve][admin] Add counter for marker messages in PersistentTopics.analyzeSubscriptionBacklog() rest api ([#25091](https://github.com/apache/pulsar/pull/25091)) +- [improve][meta] PIP-453: Improve the metadata store threading model ([#25187](https://github.com/apache/pulsar/pull/25187)) +- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986)) +- [fix][broker]Avoid read a entry that entry id is -1 when calling getLastMessagePublishTime ([#24579](https://github.com/apache/pulsar/pull/24579)) +- [fix][admin] Fix asyncGetRequest to handle 204 ([#25124](https://github.com/apache/pulsar/pull/25124)) +- [improve][broker] Cache last publish timestamp for idle topics to reduce storage reads ([#24825](https://github.com/apache/pulsar/pull/24825)) +- [improve][broker][pip-431] PIP-431: Add Creation and Last Publish Timestamps to Topic Stats ([#24471](https://github.com/apache/pulsar/pull/24471)) +- [feat][admin] PIP-415: Support getting message ID by index ([#24222](https://github.com/apache/pulsar/pull/24222)) + +### Client + +- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178)) +- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015)) +- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008)) +- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069)) +- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207)) +- [fix][client] Fix race condition between isDuplicate() and flushAsync() method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty Recycler ([#25208](https://github.com/apache/pulsar/pull/25208)) +- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014)) +- [fix][client] PIP-84: Skip processing a message in the message listener if the consumer epoch is no longer valid ([#25007](https://github.com/apache/pulsar/pull/25007)) +- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229)) +- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006)) +- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106)) +- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036)) +- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052)) +- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013)) +- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172)) +- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944)) +- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232)) +- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024)) +- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983)) +- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986)) + +### Pulsar IO and Pulsar Functions + +- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait for completion in closing the cache ([#25140](https://github.com/apache/pulsar/pull/25140)) +- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157)) +- [feat][io] implement pip-297 for jdbc sinks ([#25195](https://github.com/apache/pulsar/pull/25195)) +- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and upgrade RabbitMQ client version ([#25085](https://github.com/apache/pulsar/pull/25085)) + +### Others + +- [fix][proxy] Close client connection immediately when credentials expire and forwardAuthorizationCredentials is disabled ([#25179](https://github.com/apache/pulsar/pull/25179)) +- [fix][proxy] Fix memory leaks in ParserProxyHandler ([#25142](https://github.com/apache/pulsar/pull/25142)) +- [improve][proxy] Add regression tests for package upload with 'Expect: 100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211)) +- [fix][cli] Fix output of --print-metadata in cli consume ([#25056](https://github.com/apache/pulsar/pull/25056)) +- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async operations complete ([#25051](https://github.com/apache/pulsar/pull/25051)) +- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim ([#25197](https://github.com/apache/pulsar/pull/25197)) +- [improve][misc] Add log4j-layout-template-json to server distribution to enable e.g. ECS template support in log4j configurations for Pulsar server components. ([#25027](https://github.com/apache/pulsar/pull/25027)) +- [improve][misc]introduce log4j Console appender ConsoleJson ([#25034](https://github.com/apache/pulsar/pull/25034)) +- [improve] Eliminate unnecessary duplicate schema lookups for partitioned topics in client and geo-replication ([#25011](https://github.com/apache/pulsar/pull/25011)) +- [fix][cli] Print result of GetMessageIdByIndex command ([#24446](https://github.com/apache/pulsar/pull/24446)) +- [improve][pip] PIP-453: Improve the metadata store threading model ([#25173](https://github.com/apache/pulsar/pull/25173)) +- [fix][branch-4.0] Fix checkstyle +- [fix][branch-4.0] Fix checkstyle issue in commit 83503521 +- [fix][branch-4.0] Remove unnecessary files added in 83503521 +- [feat] PIP-442: Add memory limits for CommandGetTopicsOfNamespace ([#24833](https://github.com/apache/pulsar/pull/24833)) + +### Tests & CI + +- [improve][build] Upgrade errorprone to 2.45.0 version ([#25054](https://github.com/apache/pulsar/pull/25054)) +- [improve][build] Upgrade Testcontainers to 1.21.3 ([#24982](https://github.com/apache/pulsar/pull/24982)) +- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 ([#25084](https://github.com/apache/pulsar/pull/25084)) +- [fix][build] Remove Confluent and Restlet maven repositories from top level pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981)) +- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 ([#25186](https://github.com/apache/pulsar/pull/25186)) +- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests ([#25101](https://github.com/apache/pulsar/pull/25101)) +- [fix][test] Fix Mockito stubbing race in TopicListServiceTest ([#25227](https://github.com/apache/pulsar/pull/25227)) +- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage ([#25247](https://github.com/apache/pulsar/pull/25247)) +- [fix][test] fix testBatchMetadataStoreMetrics. ([#25241](https://github.com/apache/pulsar/pull/25241)) +- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin ([#24871](https://github.com/apache/pulsar/pull/24871)) +- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test ([#25032](https://github.com/apache/pulsar/pull/25032)) +- [fix][test] Wait for txn.abort() to complete to avoid AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() flaky test ([#25125](https://github.com/apache/pulsar/pull/25125)) +- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics ([#25216](https://github.com/apache/pulsar/pull/25216)) +- [improve][test] Use Oxia project docker container for integration tests ([#24995](https://github.com/apache/pulsar/pull/24995)) + +For the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.8...v4.0.9). diff --git a/release-notes/versioned/pulsar-4.1.3.md b/release-notes/versioned/pulsar-4.1.3.md new file mode 100644 index 00000000000..d868df66296 --- /dev/null +++ b/release-notes/versioned/pulsar-4.1.3.md @@ -0,0 +1,150 @@ +--- +id: pulsar-4.1.3 +title: Apache Pulsar 4.1.3 +sidebar_label: Apache Pulsar 4.1.3 +--- + +#### 2026-02-19 + +### Library updates + +- [improve][broker] Upgrade bookkeeper to 4.17.3 ([#25166](https://github.com/apache/pulsar/pull/25166)) +- [fix][sec] Bump at.yawk.lz4:lz4-java from 1.9.0 to 1.10.1 in /pulsar-common ([#25045](https://github.com/apache/pulsar/pull/25045)) +- [fix][sec] Bump org.apache.solr:solr-core from 9.8.0 to 9.10.1 in /pulsar-io/solr ([#25175](https://github.com/apache/pulsar/pull/25175)) +- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024)) +- [fix][sec] Exclude org.lz4:lz4-java and standardize on at.yawk.lz4-java to remediate CVE-2025-12183 and CVE-2025-66566 ([#25198](https://github.com/apache/pulsar/pull/25198)) +- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095)) +- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 ([#25102](https://github.com/apache/pulsar/pull/25102)) +- [fix][sec] Upgrade Netty to 4.1.130.Final ([#25078](https://github.com/apache/pulsar/pull/25078)) +- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 ([#25206](https://github.com/apache/pulsar/pull/25206)) +- [fix][sec] Upgrade vertx to address CVE-2026-1002 ([#25152](https://github.com/apache/pulsar/pull/25152)) +- [fix][test] Upgrade docker-java to 3.7.0 ([#25209](https://github.com/apache/pulsar/pull/25209)) +- [improve][io] Upgrade Debezium version to 3.2.5.Final ([#25029](https://github.com/apache/pulsar/pull/25029)) +- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 2.21.0 and Otel semconv to 1.37.0 ([#24994](https://github.com/apache/pulsar/pull/24994)) +- [improve][misc] Upgrade snappy version to 1.1.10.8 ([#25182](https://github.com/apache/pulsar/pull/25182)) +- [feat][meta] upgrade oxia version to 0.7.2 ([#24976](https://github.com/apache/pulsar/pull/24976)) +- [fix] Upgrade gson to 2.13.2 ([#25022](https://github.com/apache/pulsar/pull/25022)) +- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983)) +- [improve] Upgrade Caffeine to 3.2.3 ([#24984](https://github.com/apache/pulsar/pull/24984)) +- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 ([#24985](https://github.com/apache/pulsar/pull/24985)) +- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232)) +- [fix][sec] Bump github.com/dvsekhvalnov/jose2go from 1.6.0 to 1.7.0 in /pulsar-function-go ([#24987](https://github.com/apache/pulsar/pull/24987)) + +### Broker + +- [fix][broker] Add schema version in rest produce api ([#25004](https://github.com/apache/pulsar/pull/25004)) +- [fix][broker] Avoid split non-existent bundle ([#25031](https://github.com/apache/pulsar/pull/25031)) +- [fix][broker] Fence reset cursor by timestamp to avoid concurrent timestamp-based position lookups ([#25151](https://github.com/apache/pulsar/pull/25151)) +- [fix][broker] Fix chunked message loss when no consumers are available ([#25077](https://github.com/apache/pulsar/pull/25077)) +- [fix][broker] Fix compaction horizon might be reset to an old position when phase two is interrupted ([#25119](https://github.com/apache/pulsar/pull/25119)) +- [fix][broker] Fix creation of replicated subscriptions for partitioned topics ([#24997](https://github.com/apache/pulsar/pull/24997)) +- [fix][broker] Fix cursor position persistence in ledger trimming ([#25087](https://github.com/apache/pulsar/pull/25087)) +- [fix][broker] Fix httpProxyTimeout config ([#25223](https://github.com/apache/pulsar/pull/25223)) +- [fix][broker] Fix incomplete futures in topic property update/delete methods ([#25228](https://github.com/apache/pulsar/pull/25228)) +- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication ([#25012](https://github.com/apache/pulsar/pull/25012)) +- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous async mark delete properties in race condition ([#25165](https://github.com/apache/pulsar/pull/25165)) +- [fix][broker] Fix markDeletedPosition race condition in ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method ([#25110](https://github.com/apache/pulsar/pull/25110)) +- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when subscription prefix doesn't match. ([#25121](https://github.com/apache/pulsar/pull/25121)) +- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn by returning a valid Position ([#25039](https://github.com/apache/pulsar/pull/25039)) +- [fix][broker] fix prepareInitPoliciesCacheAsync in SystemTopicBasedTopicPoliciesService ([#24980](https://github.com/apache/pulsar/pull/24980)) +- [fix][broker] Fix regex matching of namespace name which might contain a regex char ([#25136](https://github.com/apache/pulsar/pull/25136)) +- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null value ([#25231](https://github.com/apache/pulsar/pull/25231)) +- [fix][broker] Fix various error-prone detected errors mainly in logging and String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059)) +- [fix][broker] Force EnsemblePolicies to resolve network location after rackInfoMap is updated due to changes in /ledgers/available znode ([#25067](https://github.com/apache/pulsar/pull/25067)) +- [fix][broker] PIP-442: Fix race condition in async semaphore permit updates that causes memory limits to become ineffective ([#25066](https://github.com/apache/pulsar/pull/25066)) +- [fix][broker] Prevent missed topic changes in topic watchers and schedule periodic refresh with patternAutoDiscoveryPeriod interval ([#25188](https://github.com/apache/pulsar/pull/25188)) +- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the same subscription ([#25047](https://github.com/apache/pulsar/pull/25047)) +- [fix][broker]Fix ledgerHandle failed to read by using new BK API ([#25199](https://github.com/apache/pulsar/pull/25199)) +- [fix][broker]Fix memory leak when using a customized ManagedLedger implementation ([#25016](https://github.com/apache/pulsar/pull/25016)) +- [fix][broker]Incorrect backlog that is larger than expected ([#25037](https://github.com/apache/pulsar/pull/25037)) +- [fix][broker]Infinitely failed to delete topic if the first time failed and enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073)) +- [fix][broker]pulsar_ml_reads_inflight_bytes and pulsar_ml_reads_available_inflight_bytes are 0 at the same time ([#25105](https://github.com/apache/pulsar/pull/25105)) +- [fix][broker]Topic deleting failed after removed local cluster from namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114)) +- [fix][broker]Wrong backlog: expected 0 but got 1 ([#24938](https://github.com/apache/pulsar/pull/24938)) +- [fix][admin] Fix offload policy incompatible issue. ([#25149](https://github.com/apache/pulsar/pull/25149)) +- [fix][admin] Refactor bookie affinity group sync operations to async in rest api ([#25050](https://github.com/apache/pulsar/pull/25050)) +- [fix][ml] Fix cursor backlog size to account for individual acks ([#25089](https://github.com/apache/pulsar/pull/25089)) +- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race condition ([#25177](https://github.com/apache/pulsar/pull/25177)) +- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is encountered ([#25148](https://github.com/apache/pulsar/pull/25148)) +- [fix][meta] Metadata cache refresh might not take effect ([#25246](https://github.com/apache/pulsar/pull/25246)) +- [improve][broker] Add idle timeout support for http ([#25224](https://github.com/apache/pulsar/pull/25224)) +- [improve][broker] Add strictAuthMethod to require explicit authentication method ([#25185](https://github.com/apache/pulsar/pull/25185)) +- [improve][broker] Change log level from warn to debug when cursor mark-deleted position ledger doesn't exist ([#25200](https://github.com/apache/pulsar/pull/25200)) +- [improve][broker] Change the log level from error to info when throwing NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130)) +- [improve][broker] Enhance logging for adding schema failures in ServerCnx ([#25048](https://github.com/apache/pulsar/pull/25048)) +- [improve][broker] Ensure metadata session state visibility and improve Unstable observability for ServiceUnitStateChannelImpl ([#25132](https://github.com/apache/pulsar/pull/25132)) +- [improve][broker] Fix replicated subscriptions race condition with mark delete update and snapshot completion ([#16651](https://github.com/apache/pulsar/pull/16651)) +- [improve][broker] Fix thread safety issue in ManagedCursorImpl.removeProperty ([#25104](https://github.com/apache/pulsar/pull/25104)) +- [improve][broker] Give the detail error msg when authenticate failed with AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221)) +- [improve][broker] Improve replicated subscription snapshot cache so that subscriptions can be replicated when mark delete position update is not frequent ([#25044](https://github.com/apache/pulsar/pull/25044)) +- [improve][broker] Optimize Reader creation in TopicPoliciesService ([#24658](https://github.com/apache/pulsar/pull/24658)) +- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) ([#25070](https://github.com/apache/pulsar/pull/25070)) +- [improve][broker] Use atomic counter for ongoing transaction count ([#25053](https://github.com/apache/pulsar/pull/25053)) +- [improve][broker]Add test for getting partitioned topic metadata with PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026)) +- [improve][broker]Improve error response of failed to delete topic if it has replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975)) +- [improve][broker]Remove the warn log that frequently prints ([#25018](https://github.com/apache/pulsar/pull/25018)) +- [improve][admin] Add client side looping to analyze-backlog in Topics to avoid potential HTTP call timeout ([#25127](https://github.com/apache/pulsar/pull/25127)) +- [improve][admin] Add counter for marker messages in PersistentTopics.analyzeSubscriptionBacklog() rest api ([#25091](https://github.com/apache/pulsar/pull/25091)) +- [improve][meta] PIP-453: Improve the metadata store threading model ([#25187](https://github.com/apache/pulsar/pull/25187)) +- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986)) + +### Client + +- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178)) +- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015)) +- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008)) +- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069)) +- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207)) +- [fix][client] Fix race condition between isDuplicate() and flushAsync() method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty Recycler ([#25208](https://github.com/apache/pulsar/pull/25208)) +- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014)) +- [fix][client] PIP-84: Skip processing a message in the message listener if the consumer epoch is no longer valid ([#25007](https://github.com/apache/pulsar/pull/25007)) +- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229)) +- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006)) +- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106)) +- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036)) +- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052)) +- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013)) +- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172)) +- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944)) +- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232)) +- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024)) +- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983)) +- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986)) + +### Pulsar IO and Pulsar Functions + +- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait for completion in closing the cache ([#25140](https://github.com/apache/pulsar/pull/25140)) +- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157)) +- [feat][io] implement pip-297 for jdbc sinks ([#25195](https://github.com/apache/pulsar/pull/25195)) +- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and upgrade RabbitMQ client version ([#25085](https://github.com/apache/pulsar/pull/25085)) + +### Others + +- [fix][proxy] Close client connection immediately when credentials expire and forwardAuthorizationCredentials is disabled ([#25179](https://github.com/apache/pulsar/pull/25179)) +- [fix][proxy] Fix memory leaks in ParserProxyHandler ([#25142](https://github.com/apache/pulsar/pull/25142)) +- [improve][proxy] Add regression tests for package upload with 'Expect: 100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211)) +- [fix][cli] Fix output of --print-metadata in cli consume ([#25056](https://github.com/apache/pulsar/pull/25056)) +- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async operations complete ([#25051](https://github.com/apache/pulsar/pull/25051)) +- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim ([#25197](https://github.com/apache/pulsar/pull/25197)) +- [improve][misc] Add log4j-layout-template-json to server distribution to enable e.g. ECS template support in log4j configurations for Pulsar server components. ([#25027](https://github.com/apache/pulsar/pull/25027)) +- [improve][misc]introduce log4j Console appender ConsoleJson ([#25034](https://github.com/apache/pulsar/pull/25034)) +- [improve] Eliminate unnecessary duplicate schema lookups for partitioned topics in client and geo-replication ([#25011](https://github.com/apache/pulsar/pull/25011)) + +### Tests & CI + +- [improve][build] Upgrade errorprone to 2.45.0 version ([#25054](https://github.com/apache/pulsar/pull/25054)) +- [improve][build] Upgrade Testcontainers to 1.21.3 ([#24982](https://github.com/apache/pulsar/pull/24982)) +- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 ([#25084](https://github.com/apache/pulsar/pull/25084)) +- [fix][build] Remove Confluent and Restlet maven repositories from top level pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981)) +- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 ([#25186](https://github.com/apache/pulsar/pull/25186)) +- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests ([#25101](https://github.com/apache/pulsar/pull/25101)) +- [fix][test] Fix Mockito stubbing race in TopicListServiceTest ([#25227](https://github.com/apache/pulsar/pull/25227)) +- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage ([#25247](https://github.com/apache/pulsar/pull/25247)) +- [fix][test] fix testBatchMetadataStoreMetrics. ([#25241](https://github.com/apache/pulsar/pull/25241)) +- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin ([#24871](https://github.com/apache/pulsar/pull/24871)) +- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test ([#25032](https://github.com/apache/pulsar/pull/25032)) +- [fix][test] Wait for txn.abort() to complete to avoid AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() flaky test ([#25125](https://github.com/apache/pulsar/pull/25125)) +- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics ([#25216](https://github.com/apache/pulsar/pull/25216)) +- [improve][test] Use Oxia project docker container for integration tests ([#24995](https://github.com/apache/pulsar/pull/24995)) + +For the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.1.2...v4.1.3). diff --git a/releases.json b/releases.json index 18c759e0a96..4a8cb34c49c 100644 --- a/releases.json +++ b/releases.json @@ -1,7 +1,9 @@ [ + "4.1.3", "4.1.2", "4.1.1", "4.1.0", + "4.0.9", "4.0.8", "4.0.7", "4.0.6",
