Skip to content

Releases: apache/pulsar

v4.1.1

27 Sep 04:40
v4.1.1

Choose a tag to compare

2025-09-27

Library updates

  • [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs (#24717)
  • [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 (#24763)
  • [improve][build] Upgrade Apache Parent POM to version 35 (#24742)
  • [improve][build] Upgrade Mockito, AssertJ and ByteBuddy to fully support JDK25 (#24764)
  • [improve][build] Upgrade SpotBugs to a version that supports JDK25 (#24768)
  • [feat][misc] upgrade oxia version to 0.6.2 (#24689)
  • [improve][io] Upgrade to Debezium 3.2.2 (#24712)

Broker

  • [fix][broker] Key_Shared subscription doesn't always deliver messages from the replay queue after a consumer disconnects and leaves a backlog (#24736)
  • [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges (#24730)
  • [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. (#24738)
  • [fix][broker] Fix cannot shutdown broker gracefully by admin api (#24731)
  • [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread (#24719)
  • [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback (#24741)
  • [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK (#24580)
  • [fix][ml]Fix EOFException after enabled topics offloading (#24753)
  • [fix][broker] Fix NPE and annotate nullable return values for ManagedCursorContainer (#24706)
  • [fix][broker]Dispatcher did unnecessary sort for recentlyJoinedConsumers and printed noisy error logs (#24634)
  • [fix][broker]Fix dirty reading of namespace level offload thresholds (#24696)
  • [fix][ml] Negative backlog & acked positions does not exist & message lost when concurrently occupying topic owner (#24722)
  • [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable (#23634)
  • [improve][broker] Allow deletion of empty persistent topics regardless of retention policy (#24733)
  • [improve][broker] PIP-402: Optionally prevent role/originalPrincipal logging (#23386)
  • [improve][broker] Reduce unnecessary MessageMetadata parsing by caching the parsed instance in the broker cache (#24682)
  • [improve][ml] Improve cache insert performance by removing exists check since it's already covered by putIfAbsent (#24699)

Client

  • [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads (#24725)
  • [fix][client] Fix receiver queue auto-scale without memory limit (#24743)
  • [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method (#24698)
  • [fix][client] rollback TopicListWatcher retry behavior (#24752)
  • [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side dependencies (#24761)
  • [improve][client] PIP-407 Add newMessage with schema and transactions (#23942)

Pulsar IO and Pulsar Functions

  • [fix][io] Improve Kafka Connect source offset flushing logic (#24654)
  • [feat][fn] Fallback to using STATE_STORAGE_SERVICE_URL in PulsarMetadataStateStoreProviderImpl.init (#24721)

Others

  • [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking (#24772)
  • [fix] Exclude commons-lang dep from bookkeeper (#24749)

Tests & CI

  • [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload (#24769)
  • [fix][broker] Fix testServiceConfigurationRetentionPolicy unit test (#24756)
  • [fix][broker]Fix the wrong logic of the test PartitionCreationTest.testCreateMissedPartitions (#24683)
  • [improve][build] Disable javadoc build failure (#24594)
  • [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension (#24767)

For the complete list, check the full changelog.

v4.0.7

27 Sep 04:40
v4.0.7

Choose a tag to compare

2025-09-27

Library updates

  • [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 (#24650)
  • [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs (#24717)
  • [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 (#24637)
  • [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions (#24661)
  • [fix][misc] Upgrade dependencies to fix critical security vulnerabilities (#24532)
  • [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 (#24763)
  • [improve][broker] Upgrade avro version to 1.12.0 (#24617)
  • [fix][misc] Upgrade fastutil to 8.5.16 (#24659)
  • [improve][build] Upgrade Apache Parent POM to version 35 (#24742)
  • [improve][build] Upgrade Mockito, AssertJ and ByteBuddy to fully support JDK25 (#24764)
  • [improve][build] Upgrade SpotBugs to a version that supports JDK25 (#24768)
  • [feat][misc] upgrade oxia version to 0.6.2 (#24689)

Broker

  • [fix][broker] Key_Shared subscription doesn't always deliver messages from the replay queue after a consumer disconnects and leaves a backlog (#24736)
  • [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges (#24730)
  • [fix][broker] PIP-428: Fix corrupted topic policies issues with sequential topic policy updates (#24427)
  • [fix][broker][branch-4.0]Can not access topic policies if topic partitions have not been created (#24680)
  • [fix][broker] Add double-check for non-durable cursor creation (#24643)
  • [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. (#24738)
  • [fix][broker] Fix cannot shutdown broker gracefully by admin api (#24731)
  • [fix][broker] Fix duplicate watcher registration after SessionReestablished (#24621)
  • [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread (#24719)
  • [fix][broker] Fix race condition in MetadataStoreCacheLoader causing inconsistent availableBroker list caching (#24639)
  • [fix][broker] Fix REST API to produce messages to single-partitioned topics (#24450)
  • [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored (#23977)
  • [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback (#24741)
  • [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK (#24580)
  • [fix][ml]Fix EOFException after enabled topics offloading (#24753)
  • [fix][broker] Fix incorrect AuthData passed to AuthorizationService in proxy scenarios (#24593)
  • [fix][broker] Fix namespace deletion TLS URL selection for geo-replication (#24591)
  • [fix][broker] Fix NPE and annotate nullable return values for ManagedCursorContainer (#24706)
  • [fix][broker] Fix NPE being logged if load manager class name is blank (#24570)
  • [fix][broker]Dispatcher did unnecessary sort for recentlyJoinedConsumers and printed noisy error logs (#24634)
  • [fix][broker]Failed to create partitions after the partitions were deleted because topic GC (#24651)
  • [fix][broker]Fix dirty reading of namespace level offload thresholds (#24696)
  • [fix][broker]Fix thread safety issues in BucketDelayedDeliveryTracker with StampedLock optimistic reads (#24542)
  • [fix][broker]User topic failed to delete after removed cluster because of failed delete data from transaction buffer topic (#24648)
  • [fix][ml] Negative backlog & acked positions does not exist & message lost when concurrently occupying topic owner (#24722)
  • [fix][meta] Use getChildrenFromStore to read children data to avoid lost data (#24665)
  • [improve][admin] PIP-422 part 1: Support global topic-level replicated clusters policy (#24390)
  • [improve][broker]Part-2 Add Admin API to delete topic policies (#24602)
  • [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable (#23634)
  • [improve][ml] Optimize ledger opening by skipping fully acknowledged ledgers (#24655)
  • [improve][broker] Allow deletion of empty persistent topics regardless of retention policy (#24733)
  • [improve][broker] Extract duplication in AbstractTopic#incrementTopicEpochIfNeeded (#24520)
  • [improve][broker]Find the target position at most once, during expiring messages for a topic, even though there are many subscriptions (#24622)
  • [improve][broker]Improve the anti-concurrency mechanism expirationCheckInProgress (#24607)
  • [improve][broker]Remove block calling that named cursor.asyncGetNth when expiring messages (#24606)

Client

  • [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads (#24725)
  • [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover (#24662)
  • [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover (#23336)
  • [fix][client] Fix receiver queue auto-scale without memory limit (#24743)
  • [fix][client] Retry for unknown exceptions when creating a producer or consumer (#24599)
  • [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message (#24663)
  • [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor (#24610)
  • [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method (#24698)
  • [fix][client] rollback TopicListWatcher retry behavior (#24752)
  • [improve][client] Support load RSA PKCS#8 private key (#24582)
  • [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side dependencies (#24761)
  • [improve][client] Add OpenTelemetry metrics for client memory buffer usage (#24647)
  • [improve][client] RawReader support pause and resume (#24597)
  • [fix][client] Refactor AttributeWrappedMeasurement to use a class instead of a record to compatible with lower version JDK

Pulsar IO and Pulsar Functions

  • [fix][io] Improve Kafka Connect source offset flushing logic (#24654)
  • [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException (#24604)
  • [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path (#24669)
  • [improve][io] Add support for the complete KinesisProducerConfiguration in KinesisSinkConfig (#24489)
  • [feat][fn] Fallback to using STATE_STORAGE_SERVICE_URL in PulsarMetadataStateStoreProviderImpl.init (#24721)

Others

  • [fix][proxy] Fix TooLongFrameException with Pulsar Proxy (#24626)
  • [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking (#24772)
  • [improve][doc] Improve the JavaDocs of sendAsync t...
Read more

v3.3.9

27 Sep 04:39
v3.3.9

Choose a tag to compare

2025-09-27

Library updates

  • [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 (#24650)
  • [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs (#24717)
  • [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 (#24637)
  • [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 (#24514)
  • [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions (#24661)
  • [fix][misc] Upgrade dependencies to fix critical security vulnerabilities (#24532)
  • [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 (#24763)
  • [improve][build] Upgrade Apache Parent POM to version 35 (#24742)

Broker

  • [fix][broker] Add double-check for non-durable cursor creation (#24643)
  • [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges (#24730)
  • [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. (#24738)
  • [fix][broker] Fix cannot shutdown broker gracefully by admin api (#24731)
  • [fix][broker] Fix duplicate watcher registration after SessionReestablished (#24621)
  • [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread (#24719)
  • [fix][broker] Fix race condition in MetadataStoreCacheLoader causing inconsistent availableBroker list caching (#24639)
  • [fix][broker] Fix REST API to produce messages to single-partitioned topics (#24450)
  • [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored (#23977)
  • [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback (#24741)
  • [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable (#23634)
  • [fix][meta] Use getChildrenFromStore to read children data to avoid lost data (#24665)
  • [improve][broker]Remove block calling that named cursor.asyncGetNth when expiring messages (#24606)

Client

  • [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads (#24725)
  • [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover (#24662)
  • [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover (#23336)
  • [fix][client] Fix receiver queue auto-scale without memory limit (#24743)
  • [fix][client] Retry for unknown exceptions when creating a producer or consumer (#24599)
  • [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message (#24663)
  • [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor (#24610)
  • [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method (#24698)
  • [fix][client] rollback TopicListWatcher retry behavior (#24752)
  • [improve][client] Support load RSA PKCS#8 private key (#24582)

Pulsar IO and Pulsar Functions

  • [fix][io] Improve Kafka Connect source offset flushing logic (#24654)
  • [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException (#24604)
  • [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path (#24669)
  • [feat][fn] Fallback to using STATE_STORAGE_SERVICE_URL in PulsarMetadataStateStoreProviderImpl.init (#24721)

Others

  • [fix][proxy] Fix TooLongFrameException with Pulsar Proxy (#24626)
  • [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking (#24772)
  • [improve][doc] Improve the JavaDocs of sendAsync to avoid improper use (#24601)
  • [fix][offload] Exclude unnecessary dependencies from tiered storage provider / offloader nar files (#24649)

Tests & CI

  • [improve][build] Use org.apache.nifi:nifi-nar-maven-plugin:2.1.0 with skipDocGeneration=true (#24668)
  • [fix][ci] Fix code coverage metrics in Pulsar CI (#24595)
  • [fix][test] Fix ConcurrentModificationException in Ipv4Proxy (#24632)
  • [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload (#24769)
  • [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage (#24633)
  • [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage (#24630)
  • [fix][broker] Fix flaky testReplicatorsInflightTaskListIsEmptyAfterReplicationFinished (#24590)
  • [improve][build] Disable javadoc build failure (#24594)
  • [improve][build] Increase maven resolver's sync context timeout (#24666)
  • [improve][test] Add test for dead letter topic with max unacked messages blocking (#24535)
  • [improve][test] Refactor the way way pulsar-io-debezium-oracle nar file is patched when building the test image (#24586)
  • [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension (#24767)

For the complete list, check the full changelog.

v3.0.14

27 Sep 04:37
v3.0.14

Choose a tag to compare

2025-09-27

Library updates

  • [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 (#24650)
  • [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs (#24717)
  • [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 (#24637)
  • [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 (#24514)
  • [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions (#24661)
  • [fix][misc] Upgrade dependencies to fix critical security vulnerabilities (#24532)
  • [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 (#24763)

Broker

  • [fix][broker] Add double-check for non-durable cursor creation (#24643)
  • [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges (#24730)
  • [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. (#24738)
  • [fix][broker] Fix cannot shutdown broker gracefully by admin api (#24731)
  • [fix][broker] Fix duplicate watcher registration after SessionReestablished (#24621)
  • [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread (#24719)
  • [fix][broker] Fix race condition in MetadataStoreCacheLoader causing inconsistent availableBroker list caching (#24639)
  • [fix][broker] Fix REST API to produce messages to single-partitioned topics (#24450)
  • [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored (#23977)
  • [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback (#24741)
  • [fix][broker][branch-3.0] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger (#24518) (#24671)
  • [fix][broker][branch-3.0] Prevent NPE in ownedBundlesCountPerNamespace on first bundle load (#24758)
  • [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK (#24580)
  • [fix][ml]Fix EOFException after enabled topics offloading (#24753)
  • [improve][broker] Choose random thread for consumerFlow in PersistentDispatcherSingleActiveConsumer (#20522)
  • [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable (#23634)
  • [improve][broker] Optimize and clean up aggregation of topic stats (#21361)

Client

  • [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads (#24725)
  • [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover (#24662)
  • [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover (#23336)
  • [fix][client] Fix receiver queue auto-scale without memory limit (#24743)
  • [fix][client] Retry for unknown exceptions when creating a producer or consumer (#24599)
  • [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message (#24663)
  • [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor (#24610)
  • [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method (#24698)
  • [fix][client] rollback TopicListWatcher retry behavior (#24752)
  • [improve][client] Support load RSA PKCS#8 private key (#24582)

Pulsar IO and Pulsar Functions

  • [fix][io] Improve Kafka Connect source offset flushing logic (#24654)
  • [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException (#24604)
  • [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path (#24669)

Others

  • [fix][proxy] Fix TooLongFrameException with Pulsar Proxy (#24626)
  • [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking (#24772)
  • [improve][doc] Improve the JavaDocs of sendAsync to avoid improper use (#24601)
  • [fix][offload] Exclude unnecessary dependencies from tiered storage provider / offloader nar files (#24649)

Tests & CI

  • [improve][build] Use org.apache.nifi:nifi-nar-maven-plugin:2.1.0 with skipDocGeneration=true (#24668)
  • [fix][ci] Fix code coverage metrics in Pulsar CI (#24595)
  • [fix][test] Fix ConcurrentModificationException in Ipv4Proxy (#24632)
  • [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload (#24769)
  • [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage (#24633)
  • [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage (#24630)
  • [fix][broker] Fix flaky testReplicatorsInflightTaskListIsEmptyAfterReplicationFinished (#24590)
  • [improve][build] Disable javadoc build failure (#24594)
  • [improve][build] Increase maven resolver's sync context timeout (#24666)
  • [improve][test] Add test for dead letter topic with max unacked messages blocking (#24535)
  • [improve][test] Refactor the way way pulsar-io-debezium-oracle nar file is patched when building the test image (#24586)
  • [fix][build] Import isNotBlank
  • [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension (#24767)

For the complete list, check the full changelog.

v4.1.0

08 Sep 07:44
v4.1.0

Choose a tag to compare

Approved PIPs

  • [improve][pip] PIP-292: Enforce token expiration time in the Websockets plugin (#20953)
  • [improve][pip] PIP-391: Enable batch index ACK by default (#23567)
  • [improve][pip] PIP-409: support producer configuration for retry/dead letter topic producer (#24022)
  • [improve][pip] PIP-416: Add a new topic method to implement trigger offload by size threshold (#24276)
  • [improve][pip] PIP-425: Support connecting with next available endpoint for multi-endpoint serviceUrls (#24394)
  • [improve][pip] PIP-427: Align pulsar-admin Default for Mark-Delete Rate with Broker Configuration (#24425)
  • [improve][pip] PIP-429: Optimize Handling of Compacted Last Entry by Skipping Payload Buffer Parsing (#24439)
  • [pip] PIP-430: Pulsar Broker cache improvements: refactoring eviction and adding a new cache strategy based on expected read count (#24444)
  • [improve][pip] PIP-431: Add Creation and Last Publish Timestamps to Topic Stats (#24469)
  • [improve][pip] PIP-432: Add isEncrypted field to EncryptionContext (#24481)
  • [improve][pip] PIP-433: Optimize the conflicts of the replication and automatic creation mechanisms, including the automatic creation of topics and schemas (#24485)
  • [improve][pip] PIP-435: Add startTimestamp and endTimestamp for consuming messages in client cli (#24524)
  • [improve][pip]PIP-422 Support global topic-level policy: replicated clusters and new API to delete topic-level policies (#24368)
  • [improve][pip]PIP-436: Add decryptFailListener to Consumer (#24572)
  • [feat][pip] PIP-420: Provide ability for Pulsar clients to integrate with third-party schema registry service (#24328)
  • [improve] [pip] PIP-373: Add a topic's system prop that indicates whether users have published TXN messages in before. (#23210)
  • [improve] [pip] PIP-375 Expose the Admin client configs: readTimeout, requestTimeout, and connectionTimeout (#23222)
  • [improve] [pip] PIP-382: Add a label named reason for topic_load_failed_total (#23351)
  • [pip] PIP-428: Change TopicPoliciesService interface to fix consistency issues (#24428)

Library updates

  • [improve][broker] Upgrade avro version to 1.12.0 (#24617)
  • [improve][broker] Upgrade bookkeeper to 4.17.2/commons-configuration to 2.x/grpc to 1.72.0 and enable ZooKeeper client to establish connection in read-only mode (#24468)
  • [fix][sec] Bump commons-io version to 2.18.0 (#23684)
  • [fix][sec] Mitigate CVE-2024-53990 by disabling AsyncHttpClient CookieStore (#23725)
  • [fix][sec] Remove dependency on out-dated commons-configuration 1.x (#24562)
  • [fix][sec] Replace bcprov-jdk15on dependency with bcprov-jdk18-on (#23532)
  • [fix][sec] Upgrade async-http-client to 2.12.4 to address CVE-2024-53990 (#23732)
  • [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 (#24650)
  • [fix][sec] Upgrade golang.org/x/crypto from 0.21.0 to 0.31.0 in pulsar-function-go (#23743)
  • [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 (#24232)
  • [fix][sec] Upgrade jwt/v5 to 5.2.2 to address CVE-2025-30204 (#24140)
  • [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 (#24564)
  • [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 (#24547)
  • [fix][sec] Upgrade to Netty 4.1.115.Final to address CVE-2024-47535 (#23596)
  • [fix][sec] Upgrade to Netty 4.1.118 (#23965)
  • [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 (#24637)
  • [fix][sec] Upgrade Zookeeper to 3.9.3 to address CVE-2024-51504 (#23581)
  • [fix][build] Upgrade json-smart to 2.5.2 (#23966)
  • [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions (#24661)
  • [improve][io] Upgrade Kafka client and compatible Confluent platform version (#24201)
  • [improve][io] Upgrade Spring version to 6.1.13 in IO Connectors (#23459)
  • [improve][io] Upgrade Spring version to 6.1.14 in IO Connectors (#23481)
  • [improve][monitor] Upgrade OTel to 1.41.0 (#23484)
  • [improve][monitor] Upgrade OTel to 1.45.0 (#23756)
  • [fix][misc] Upgrade dependencies to fix critical security vulnerabilities (#24532)
  • [fix][misc] Upgrade fastutil to 8.5.16 (#24659)
  • [improve][build] Upgrade Caffeine from 2.9.1 to 3.2.1 (#24527)
  • [improve][build] Upgrade commons-compress version from 1.27.0 to 1.27.1 (#24270)
  • [improve][build] Upgrade errorprone to 2.38.0 (#24242)
  • [improve][build] Upgrade Gradle Develocity Maven Extension dependencies (#24260)
  • [improve][build] Upgrade Lombok to 1.18.38 to support JDK 24 (#24237)
  • [improve][build] Upgrade Mockito to 5.17.0 and byte-buddy to 1.15.11 (#24241)
  • [improve][build] Upgrade SpotBugs to 4.9.x (#24243)
  • [improve][build] Upgrade to jacoco 0.8.13 (#24240)
  • [improve][build] Upgrade zstd version from 1.5.2-3 to 1.5.7-3 (#24263)
  • [improve][ci] Upgrade Gradle Develocity Maven Extension to 1.23.1 (#24004)
  • [improve][test] Upgrade Testcontainers to 1.20.4 and docker-java to 3.4.0 (#24003)
  • [improve][misc] Upgrade Guava to 33.4.8 that uses JSpecify annotations (#24267)
  • [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final (#24397)
  • [improve][misc] Upgrade RE2/J to 1.8 (#24530)
  • [feat][misc] Upgrade oxia version to 0.4.9 (#23607)
  • [improve] Upgrade Apache Commons library versions to compatible versions (#24205)
  • [improve] Upgrade lombok to 1.18.36 (#23752)
  • [improve] Upgrade Netty to 4.1.119.Final (#24049)
  • [improve] Upgrade Netty to 4.1.121.Final (#24214)
  • [improve] Upgrade OpenTelemetry library to 1.44.1 version (#23656)
  • [improve] Upgrade oxia-java to 0.4.10 and fix closing of OxiaMetadataStore (#23653)
  • [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image (#24302)
  • [improve] Upgrade to Netty 4.1.116.Final and io_uring to 0.0.26.Final (#23813)
  • [improve] Upgrade to Netty 4.1.117.Final (#23863)

Broker

  • [fix][broker] Add double-check for non-durable cursor creation (#24643)
  • [fix][broker] Add expire check for replicator (#23975)
  • [fix][broker] Add topic consistency check (#24118)
  • [fix][broker] Allow recreation of partitioned topic after metadata loss (#24225)
  • [fix][broker] Apply dispatcherMaxReadSizeBytes also for replay reads for Shared and Key_Shared subscriptions (#23894)
  • [fix][broker] Avoid block markDeletePosition forward when skip lost entries (#21210)
  • [fix][broker] Avoid IllegalStateException when marker_type field is not set in publishing ([#24087](https://github.com/apache/pulsar...
Read more

v4.0.6

31 Jul 14:30
v4.0.6

Choose a tag to compare

2025-07-31

Known issues

  • The changes from PR #24533 included in this release might break proxy authorization scenarios for some custom implementations of AuthorizationProvider, where both the proxy's auth data (authDataSource) and the original client's auth data (originalAuthDataSource) need to be validated separately.
    • A fix will be provided in the next release with #24593

Library updates

  • [improve] Upgrade pulsar-client-python to 3.8.0 in Docker image (#24544)
  • [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final (#24397)
  • [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 (#24564)
  • [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 (#24547)
  • [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 (#24473)
  • [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 (#24514)
  • [improve][broker] Upgrade bookkeeper to 4.17.2/commons-configuration to 2.x/grpc to 1.72.0 and enable ZooKeeper client to establish connection in read-only mode (#24468)
  • [fix][sec] Remove dependency on out-dated commons-configuration 1.x (#24562)
  • [improve][misc] Upgrade RE2/J to 1.8 (#24530)

Broker

  • [fix][broker] expose consumer name for partitioned topic stats (#24360)
  • [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly (#24551)
  • [fix][broker] Fix deduplication replay might never complete for exceptions (#24511)
  • [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry (#24506)
  • [fix][broker] Fix exclusive producer creation when last shared producer closes (#24516)
  • [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists (#24350)
  • [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues (#24569)
  • [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters (#24543)
  • [fix][broker] Fix maxTopicsPerNamespace might report a false failure (#24560)
  • [fix][broker] Fix the non-persistenttopic's replicator always get error "Producer send queue is full" if set a small value of the config replicationProducerQueueSize (#24424)
  • [fix][broker] Ignore metadata changes when broker is not in the Started state (#24352)
  • [fix][broker] No longer allow creating subscription that contains slash (#23594)
  • [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it (#24419)
  • [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers (#24453)
  • [fix][broker] Resolve the issue of frequent updates in message expiration deletion rate (#24190)
  • [fix][broker]excessive replication speed leads to error: Producer send queue is full (#24189)
  • [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently (#24366)
  • [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect (#24279)
  • [fix][broker]Non-global topic policies and global topic policies overwrite each other (#24286)
  • [fix] Prevent IllegalStateException: Field 'message' is not set (#24472)
  • [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled (#24406)
  • [fix][ml] Enhance OpFindNewest to support skip non-recoverable data (#24441)
  • [fix][ml] Fix asyncReadEntries might never complete if empty entries are read from BK (#24515)
  • [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue (#24338)
  • [fix][ml] Fix the possibility of message loss or disorder when ML PayloadProcessor processing fails (#24522)
  • [fix][ml]Received more than once callback when calling cursor.delete (#24405)
  • [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle (#24384)
  • [fix][ml]Still got BK ledger, even though it has been deleted after offloaded (#24432)
  • [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync (#24331)
  • [fix][txn] Fix deadlock when loading transaction buffer snapshot (#24401)
  • [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf (#24391)
  • [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers (#24386)
  • [improve][broker] change to warn log level for ack validation error (#24459)
  • [improve][broker] Deny removing local cluster from topic level replicated cluster policy (#24351)
  • [improve][broker] Improve the log when namespace bundle is not available (#24434)
  • [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs (#24392)
  • [improve][broker]Improve the log when encountered in-flight read limitation (#24359)
  • [improve][ml] Offload ledgers without check ledger length (#24344)
  • [improve][ml]Release idle offloaded read handle only the ref count is 0 (#24381)
  • [improve][offloaders] Automatically evict Offloaded Ledgers from memory (#19783)
  • [fix][broker] Fix NPE when getting delayed delivery policy (#24512)
  • [fix][broker] Fix the wrong cache name (#24407)
  • [fix][broker] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger (#24518)
  • [fix][broker][branch-4.0] Revert "[improve][broker] Reduce memory occupation of the delayed message queue (#23611)" (#24429)
  • [fix][broker]Data lost due to conflict loaded up a topic for two brokers, when enabled ServiceUnitStateMetadataStoreTableViewImpl (#24478)
  • [improve][broker] Enable concurrent processing of pending read Entries to avoid duplicate Reads (#24346)
  • [improve][broker][branch-4.0] Update to Oxia 0.6.0 and use new group-id (#24454)
  • [refactor][broker] Expose the managedLedger field for the sub class (#24448)

Client

  • [fix][client] Close orphan producer or consumer when the creation is interrupted (#24539)
  • [fix][client] Fix ClientCnx handleSendError NPE (#24517)
  • [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer (#24528)
  • [fix][client] Fix some potential resource leak (#24402)
  • [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge (#24476)
  • [fix][client] Prevent NPE when seeking with null topic in TopicMessageId (#24404)
  • [fix][client][branch-4.0] Partitioned topics are unexpectedly created by client after deletion (#24554) (#24571)
  • [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into Comm...
Read more

v3.3.8

31 Jul 12:20
v3.3.8

Choose a tag to compare

2025-07-31

Library updates

  • [improve] Upgrade pulsar-client-python to 3.8.0 in Docker image (#24544)
  • [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final (#24397)
  • [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 (#24564)
  • [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 (#24547)
  • [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 (#24473)
  • [improve][broker] Upgrade bookkeeper to 4.17.2/commons-configuration to 2.x/grpc to 1.72.0 and enable ZooKeeper client to establish connection in read-only mode (#24468)
  • [fix][sec] Remove dependency on out-dated commons-configuration 1.x (#24562)
  • [improve][misc] Upgrade RE2/J to 1.8 (#24530)

Broker

  • [fix][broker] expose consumer name for partitioned topic stats (#24360)
  • [fix][broker] Fix ack hole in cursor for geo-replication (#20931)
  • [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly (#24551)
  • [fix][broker] Fix deduplication replay might never complete for exceptions (#24511)
  • [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry (#24506)
  • [fix][broker] Fix exclusive producer creation when last shared producer closes (#24516)
  • [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists (#24350)
  • [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues (#24569)
  • [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters (#24543)
  • [fix][broker] Fix maxTopicsPerNamespace might report a false failure (#24560)
  • [fix][broker] Fix the non-persistenttopic's replicator always get error "Producer send queue is full" if set a small value of the config replicationProducerQueueSize (#24424)
  • [fix][broker] Ignore metadata changes when broker is not in the Started state (#24352)
  • [Fix][broker] Limit replication rate based on bytes (#22674)
  • [fix][broker] No longer allow creating subscription that contains slash (#23594)
  • [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it (#24419)
  • [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers (#24453)
  • [fix][broker] Resolve the issue of frequent updates in message expiration deletion rate (#24190)
  • [fix][broker]excessive replication speed leads to error: Producer send queue is full (#24189)
  • [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently (#24366)
  • [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect (#24279)
  • [fix][broker]Non-global topic policies and global topic policies overwrite each other (#24286)
  • [fix] Prevent IllegalStateException: Field 'message' is not set (#24472)
  • [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled (#24406)
  • [fix][ml] Enhance OpFindNewest to support skip non-recoverable data (#24441)
  • [fix][ml] Enhance OpFindNewest to support skip non-recoverable data (#24441)
  • [fix][ml] Fix asyncReadEntries might never complete if empty entries are read from BK (#24515)
  • [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue (#24338)
  • [fix][ml] Fix the possibility of message loss or disorder when ML PayloadProcessor processing fails (#24522)
  • [fix][ml]Received more than once callback when calling cursor.delete (#24405)
  • [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle (#24384)
  • [fix][ml]Still got BK ledger, even though it has been deleted after offloaded (#24432)
  • [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync (#24331)
  • [fix][txn] Fix deadlock when loading transaction buffer snapshot (#24401)
  • [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf (#24391)
  • [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers (#24386)
  • [improve][broker] change to warn log level for ack validation error (#24459)
  • [improve][broker] Deny removing local cluster from topic level replicated cluster policy (#24351)
  • [improve][broker] Improve the log when namespace bundle is not available (#24434)
  • [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs (#24392)
  • [improve][broker]Improve the log when encountered in-flight read limitation (#24359)
  • [improve][ml] Offload ledgers without check ledger length (#24344)
  • [improve][ml]Release idle offloaded read handle only the ref count is 0 (#24381)
  • [improve][offloaders] Automatically evict Offloaded Ledgers from memory (#19783)
  • [fix][broker] Fix NPE when getting delayed delivery policy (#24512)
  • [fix][broker] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger (#24518)
  • [fix][broker][branch-3.3] Disable broken ExtensibleLoadManager tests and add closeInternalTopics in follower monitor (#24557)
  • [improve][broker] Phase 1 of PIP-370 support disable create topics on remote cluster through replication (#23169)
  • [improve][broker] Part 2 of PIP-370: add metrics "pulsar_replication_disconnected_count" (#23213)

Client

  • [fix][client] Close orphan producer or consumer when the creation is interrupted (#24539)
  • [fix][client] Fix ClientCnx handleSendError NPE (#24517)
  • [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer (#24528)
  • [fix][client] Fix some potential resource leak (#24402)
  • [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge (#24476)
  • [fix][client] Prevent NPE when seeking with null topic in TopicMessageId (#24404)
  • [fix][client][branch-4.0] Partitioned topics are unexpectedly created by client after deletion (#24554) (#24571)
  • [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into CommandAck (#24443)
  • [improve][client] Terminate consumer.receive() when consumer is closed (#24550)
  • [fix][client] Fix RawReader interface compatibility

Pulsar IO and Pulsar Functions

  • [fix][io] Acknowledge RabbitMQ message after processing the message successfully (#24354)
  • [fix][io] Fix kinesis avro bytes handling (#24316)

Others

  • [fix][proxy] Fix default value of connectionMaxIdleSeconds in Pulsar Proxy (#24529)
  • [fix][proxy]...
Read more

v3.0.13

31 Jul 11:51
v3.0.13

Choose a tag to compare

2025-07-31

Library updates

  • [improve][broker][branch-3.0] Upgrade BookKeeper to 4.16.7
  • [improve] Upgrade pulsar-client-python to 3.8.0 in Docker image (#24544)
  • [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final (#24397)
  • [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 (#24564)
  • [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 (#24547)
  • [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 (#24473)

Broker

  • [fix][broker] expose consumer name for partitioned topic stats (#24360)
  • [fix][broker] Fix ack hole in cursor for geo-replication (#20931)
  • [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly (#24551)
  • [fix][broker] Fix deduplication replay might never complete for exceptions (#24511)
  • [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry (#24506)
  • [fix][broker] Fix exclusive producer creation when last shared producer closes (#24516)
  • [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists (#24350)
  • [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues (#24569)
  • [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters (#24543)
  • [fix][broker] Fix maxTopicsPerNamespace might report a false failure (#24560)
  • [fix][broker] Fix the non-persistenttopic's replicator always get error "Producer send queue is full" if set a small value of the config replicationProducerQueueSize (#24424)
  • [fix][broker] Ignore metadata changes when broker is not in the Started state (#24352)
  • [Fix][broker] Limit replication rate based on bytes (#22674)
  • [fix][broker] No longer allow creating subscription that contains slash (#23594)
  • [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it (#24419)
  • [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers (#24453)
  • [fix][broker] Resolve the issue of frequent updates in message expiration deletion rate (#24190)
  • [fix][broker]excessive replication speed leads to error: Producer send queue is full (#24189)
  • [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently (#24366)
  • [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect (#24279)
  • [fix][broker]Non-global topic policies and global topic policies overwrite each other (#24286)
  • [fix] Prevent IllegalStateException: Field 'message' is not set (#24472)
  • [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled (#24406)
  • [fix][ml] Enhance OpFindNewest to support skip non-recoverable data (#24441)
  • [fix][ml] Fix asyncReadEntries might never complete if empty entries are read from BK (#24515)
  • [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue (#24338)
  • [fix][ml] Fix the possibility of message loss or disorder when ML PayloadProcessor processing fails (#24522)
  • [fix][ml]Received more than once callback when calling cursor.delete (#24405)
  • [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle (#24384)
  • [fix][ml]Still got BK ledger, even though it has been deleted after offloaded (#24432)
  • [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync (#24331)
  • [fix][txn] Fix deadlock when loading transaction buffer snapshot (#24401)
  • [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf (#24391)
  • [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers (#24386)
  • [improve][broker] change to warn log level for ack validation error (#24459)
  • [improve][broker] Deny removing local cluster from topic level replicated cluster policy (#24351)
  • [improve][broker] Improve the log when namespace bundle is not available (#24434)
  • [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs (#24392)
  • [improve][broker]Improve the log when encountered in-flight read limitation (#24359)
  • [improve][ml] Offload ledgers without check ledger length (#24344)
  • [improve][ml]Release idle offloaded read handle only the ref count is 0 (#24381)
  • [improve][offloaders] Automatically evict Offloaded Ledgers from memory (#19783)

Client

  • [fix][client] Close orphan producer or consumer when the creation is interrupted (#24539)
  • [fix][client] Fix ClientCnx handleSendError NPE (#24517)
  • [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer (#24528)
  • [fix][client] Fix some potential resource leak (#24402)
  • [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge (#24476)
  • [fix][client] Prevent NPE when seeking with null topic in TopicMessageId (#24404)
  • [fix][client][branch-4.0] Partitioned topics are unexpectedly created by client after deletion (#24554) (#24571)
  • [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into CommandAck (#24443)
  • [improve][client] Terminate consumer.receive() when consumer is closed (#24550)

Pulsar IO and Pulsar Functions

  • [fix][io] Acknowledge RabbitMQ message after processing the message successfully (#24354)
  • [fix][io] Fix kinesis avro bytes handling (#24316)
  • [fix][io][branch-3.0] Backport Kinesis Sink custom native executable support #23762 (#24349)
  • [fix][io][branch-3.0]Pulsar-SQL: Fix classcast ex when decode decimal value (#24317)

Others

  • [fix][proxy] Fix default value of connectionMaxIdleSeconds in Pulsar Proxy (#24529)
  • [fix][proxy] Fix proxy OOM by replacing TopicName with a simple conversion method (#24465)
  • [improve][misc] Optimize topic list hashing so that potentially large String allocation is avoided (#24525)

Tests & CI

  • [fix][build] Add missing <name> to submodules (#24421)
  • [fix][build] Fix potential insufficient protostuff-related configs (#21629)
  • [fix][ci][branch-3.0] Fix issue in GitHub Actions when /etc/docker/daemon.json file doesn't exist
  • [fix][test] Cleanup resources if starting PulsarService fails in PulsarTestContext (#21467)
  • [fix][test] Fix flaky AutoScaledReceiverQueueSizeTest.testNegativeClientMemory (#24324)
  • [fix][test] fix flaky GrowableArrayBlockingQueueTest.testPollBlockingThreadsTer...
Read more

v3.3.7

23 May 06:26
v3.3.7

Choose a tag to compare

2025-05-23

Library updates

  • [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 (#24232)
  • [improve] Upgrade Apache Commons library versions to compatible versions (#24205)
  • [improve] Upgrade Netty to 4.1.121.Final (#24214)
  • [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image (#24302)
  • [improve][build] Upgrade commons-compress version from 1.27.0 to 1.27.1 (#24270)

Broker

  • [fix][broker] Consumer stuck when delete subscription __compaction failed (#23980)
  • [fix][broker] Fix broker shutdown delay by resolving hanging health checks (#24210)
  • [fix][broker] Fix ByteBuf memory leak in REST API for publishing messages (#24228)
  • [fix][broker] Fix cluster level OffloadedReadPriority to bookkeeper-first does not work (#24151)
  • [fix][broker] Fix compaction service log's wrong condition (#24207)
  • [fix][broker] fix ExtensibleLoadManager to override the ownerships concurrently without blocking load manager thread (#24156)
  • [fix][broker] Fix HashedWheelTimer leak in PulsarService by stopping it in shutdown (#24275)
  • [fix][broker] Fix HealthChecker deadlock in shutdown (#24216)
  • [fix][broker] Fix potential deadlock when creating partitioned topic (#24313)
  • [fix][broker] Fix seeking by timestamp can be reset the cursor position to earliest (#23919)
  • [fix][broker] Fix some problems in calculate totalAvailableBookies in method getExcludedBookiesWithIsolationGroups when some bookies belongs to multiple isolation groups. (#24091)
  • [fix][broker] Fix tenant creation and update with null value (#24209)
  • [fix][broker] fix wrong method name checkTopicExists. (#24293)
  • [fix][broker] Orphan schema after disabled a cluster for a namespace (#24223)
  • [fix][broker] The feature brokerDeleteInactivePartitionedTopicMetadataEnabled leaves orphan topic policies and topic schemas (#24150)
  • [fix][broker] Unregister non-static metrics collectors registered in Prometheus default registry (#24257)
  • [fix][broker]Fix incorrect priority between topic policies and global topic policies (#24254)
  • [fix][broker]fix memory leak, messages lost, incorrect replication state if using multiple schema versions(auto_produce) (#24178)
  • [fix][admin] Backlog quota's policy is null which causes a NPE (#24192)
  • [fix][ml] Fix ML thread blocking issue in internalGetPartitionedStats API (#24167)
  • [fix][ml] Skip deleting cursor if it was already deleted before calling unsubscribe (#24098)
  • [improve][broker] Optimize subscription seek (cursor reset) by timestamp (#22792)
  • [improve][broker]Improve the feature "Optimize subscription seek (cursor reset) by timestamp": search less entries (#24219)

Client

  • [fix][client] Fix incorrect producer.getPendingQueueSize due to incomplete queue implementation (#24184)
  • [fix][client] Fix producer publishing getting stuck after message with incompatible schema is discarded (#24282)
  • [improve][client] validate ClientConfigurationData earlier to avoid resource leaks (#24187)
  • [improve][client]Improve transaction log when a TXN command timeout (#24230)

Pulsar IO and Pulsar Functions

  • [fix][io] Fix SyntaxWarning in Pulsar Python functions (#24297)
  • [improve][io] Add configuration parameter for disabling aggregation for Kinesis Producers (#24289)
  • [improve][io] support kafka connect transforms and predicates (#24221)
  • [improve][io] Upgrade Kafka client and compatible Confluent platform version (#24201)
  • [improve][io][kca] support fully-qualified topic names in source records (#24248)

Others

  • [cleanup][misc] Add override annotation (#24033)
  • [fix][cli] Refactor scripts to detect major Java version and pass correct add-opens parameters (#22927)
  • [fix][misc] Fix ByteBuf leak in SchemaUtils (#24274)
  • [fix][proxy] Fix incorrect client error when calling get topic metadata (#24181)
  • [fix][proxy] Propagate client connection feature flags through Pulsar Proxy to Broker (#24158)
  • [fix][schema] Reject unsupported Avro schema types during schema registration (#24103)
  • [improve][cli] Make pulsar-perf termination more responsive by using Thread interrupt status (#24309)
  • [improve][misc] Migrate from multiple nullness annotation libraries to JSpecify annotations (#24239)

Tests & CI

  • [fix][build] Ensure that buildtools is Java 8 compatible and fix remaining compatibility issue (#24307)
  • [fix][build] Fix docker image building by replacing deprecated and removed compress argument (#24155)
  • [fix][test] Fix flaky BatchMessageWithBatchIndexLevelTest.testBatchMessageAck (#24212)
  • [fix][test] Fix flaky BrokerServiceChaosTest (#24162)
  • [fix][test] Fix flaky BrokerServiceChaosTest.testFetchPartitionedTopicMetadataWithCacheRefresh (#24161)
  • [fix][test] Fix flaky ManagedCursorTest.testLastActiveAfterResetCursor and disable failing SchemaTest (#24261)
  • [fix][test] Fix flaky ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages (#24244)
  • [fix][test] Fix flaky NamespacesTest.testNamespacesApiRedirects (#24194)
  • [fix][test] Fix invalid test CompactionTest.testDeleteCompactedLedgerWithSlowAck (#24166)
  • [fix][test] Fix more Netty ByteBuf leaks in tests (#24299)
  • [fix][test] Fix multiple ByteBuf leaks in tests (#24281)
  • [fix][test] Fix multiple resource leaks in tests (#24218)
  • [fix][test] Fix remaining UnfinishedStubbingException issue with AuthZTests (#24174)
  • [fix][test] Fix resource leaks in ProxyTest and fix invalid tests (#24204)
  • [fix][test] Fix resource leaks in PulsarBrokerStarterTest (#24235)
  • [fix][test] Fix TestNG BetweenTestClassesListenerAdapter listener (#24258)
  • [fix][test] Fix UnfinishedStubbing issue in AuthZTests (#24165)
  • [fix][test] Improve reliability of IncrementPartitionsTest (#24172)
  • [fix][test] Simplify BetweenTestClassesListenerAdapter and fix issue with BeforeTest/AfterTest annotations (#24304)
  • [fix][test] Update partitioned topic subscription assertions in IncrementPartitionsTest (#24056)
  • [fix][test]flaky-test:ManagedLedgerInterceptorImplTest.testManagedLedgerPayloadInputProcessorFailure (#24170)
  • [improve][test] Use configured session timeout for MockZooKeeper and TestZKServer in PulsarTestContext (#24171)
  • [cleanup][test] Remove unused parameter from deleteNamespaceWithRetry method in MockedPulsarServiceBaseTest (#24283)
  • [improve] Adapt startup scripts for Java 24 changes (#24236)
  • [improve][build] Build apachepulsar/pulsar-io-kinesis-sink-kinesis_producer with Alpine 3.21 (#24180)
  • [improve][build] Improve thread leak detector by ignoring "Attach Listener" thread (#24277)
  • [improve][build] Upgrade Gradle Develocity Maven Extension...
Read more

v4.0.5

22 May 17:29
v4.0.5

Choose a tag to compare

2025-05-22

Library updates

  • [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 (#24232)
  • [improve] Upgrade Netty to 4.1.121.Final (#24214)
  • [improve] Upgrade Apache Commons library versions to compatible versions (#24205)
  • [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image (#24302)
  • [improve][build] Upgrade commons-compress version from 1.27.0 to 1.27.1 (#24270)
  • [improve][build] Upgrade Lombok to 1.18.38 to support JDK 24 (#24237)

Broker

  • [fix][broker] Consumer stuck when delete subscription __compaction failed (#23980)
  • [fix][broker] Fix broker shutdown delay by resolving hanging health checks (#24210)
  • [fix][broker] Fix ByteBuf memory leak in REST API for publishing messages (#24228)
  • [fix][broker] Fix cluster level OffloadedReadPriority to bookkeeper-first does not work (#24151)
  • [fix][broker] Fix compaction service log's wrong condition (#24207)
  • [fix][broker] fix ExtensibleLoadManager to override the ownerships concurrently without blocking load manager thread (#24156)
  • [fix][broker] Fix HashedWheelTimer leak in PulsarService by stopping it in shutdown (#24275)
  • [fix][broker] Fix HealthChecker deadlock in shutdown (#24216)
  • [fix][broker] Fix NPE from the wrong iterator in the ownership cleanup job(ExtensibleLoadManagerImpl only) (#24196)
  • [fix][broker] Fix potential deadlock when creating partitioned topic (#24313)
  • [fix][broker] Fix some problems in calculate totalAvailableBookies in method getExcludedBookiesWithIsolationGroups when some bookies belongs to multiple isolation groups. (#24091)
  • [fix][broker] Fix tenant creation and update with null value (#24209)
  • [fix][broker] fix wrong method name checkTopicExists. (#24293)
  • [fix][broker] Fixes Inconsistent ServiceUnitStateData View (ExtensibleLoadManagerImpl only) (#24186)
  • [fix][broker] Orphan schema after disabled a cluster for a namespace (#24223)
  • [fix][broker] The feature brokerDeleteInactivePartitionedTopicMetadataEnabled leaves orphan topic policies and topic schemas (#24150)
  • [fix][broker] Unregister non-static metrics collectors registered in Prometheus default registry (#24257)
  • [fix][broker]Fix incorrect priority between topic policies and global topic policies (#24254)
  • [fix][broker]fix memory leak, messages lost, incorrect replication state if using multiple schema versions(auto_produce) (#24178)
  • [fix][admin] Backlog quota's policy is null which causes a NPE (#24192)
  • [fix][ml] Fix ML thread blocking issue in internalGetPartitionedStats API (#24167)
  • [fix][ml] Skip deleting cursor if it was already deleted before calling unsubscribe (#24098)

Client

  • [fix][client] Fix incorrect producer.getPendingQueueSize due to incomplete queue implementation (#24184)
  • [fix][client] Fix producer publishing getting stuck after message with incompatible schema is discarded (#24282)
  • [improve][client] validate ClientConfigurationData earlier to avoid resource leaks (#24187)
  • [improve][client]Improve transaction log when a TXN command timeout (#24230)

Pulsar IO and Pulsar Functions

  • [fix][io] Fix SyntaxWarning in Pulsar Python functions (#24297)
  • [improve][io] Add configuration parameter for disabling aggregation for Kinesis Producers (#24289)
  • [improve][io] support kafka connect transforms and predicates (#24221)
  • [improve][io] Upgrade Kafka client and compatible Confluent platform version (#24201)
  • [improve][io][kca] support fully-qualified topic names in source records (#24248)

Others

  • [cleanup] Remove unused config autoShrinkForConsumerPendingAcksMap (#24315)
  • [cleanup] remove unused config messagePublishBufferCheckIntervalInMillis (#24252)
  • [cleanup] Remove unused static fields in BrokerService (#24251)
  • [cleanup][misc] Add override annotation (#24033)
  • [cleanup][test] Remove unused parameter from deleteNamespaceWithRetry method in MockedPulsarServiceBaseTest (#24283)
  • [fix] chore: remove unused preciseTopicPublishRateLimiterEnable (#24249)
  • [fix][misc] Fix ByteBuf leak in SchemaUtils (#24274)
  • [fix][misc] Fix ByteBuf leaks in tests by making ByteBufPair.coalesce release the input ByteBufPair (#24273)
  • [fix][misc]: ignore deleted ledger when tear down cluster (#23831)
  • [fix][proxy] Fix incorrect client error when calling get topic metadata (#24181)
  • [fix][proxy] Propagate client connection feature flags through Pulsar Proxy to Broker (#24158)
  • [fix][schema] Reject unsupported Avro schema types during schema registration (#24103)
  • [improve][cli] Make pulsar-perf termination more responsive by using Thread interrupt status (#24309)
  • [improve][misc] Migrate from multiple nullness annotation libraries to JSpecify annotations (#24239)

Tests & CI

  • [fix][build] Ensure that buildtools is Java 8 compatible and fix remaining compatibility issue (#24307)
  • [fix][build] Fix docker image building by replacing deprecated and removed compress argument (#24155)
  • [fix][build] Fix errorprone maven profile configuration (#24246)
  • [fix][build] Fix skipTag and use explicit tag for image name (#24168)
  • [improve] Adapt startup scripts for Java 24 changes (#24236)
  • [improve][broker]Improve the feature "Optimize subscription seek (cursor reset) by timestamp": search less entries (#24219)
  • [improve][build] Allow building and running tests on JDK 24 and upcoming JDK 25 LTS (#24268)
  • [improve][build] Build apachepulsar/pulsar-io-kinesis-sink-kinesis_producer with Alpine 3.21 (#24180)
  • [improve][build] Improve thread leak detector by ignoring "Attach Listener" thread (#24277)
  • [improve][build] Suppress JVM class sharing warning when running tests (#24278)
  • [improve][build] Upgrade errorprone to 2.38.0 (#24242)
  • [improve][build] Upgrade Gradle Develocity Maven Extension dependencies (#24260)
  • [improve][build] Upgrade Mockito to 5.17.0 and byte-buddy to 1.15.11 (#24241)
  • [improve][build] Upgrade SpotBugs to 4.9.x (#24243)
  • [improve][build] Upgrade to jacoco 0.8.13 (#24240)
  • [improve][build] Upgrade zstd version from 1.5.2-3 to 1.5.7-3 (#24263)
  • [improve][ci] Add Netty leak detection reporting to Pulsar CI (#24272)
  • [improve][ci] Disable detailed console logging for integration tests in CI (#24266)
  • [improve][test] Use configured session timeout for MockZooKeeper and TestZKServer in PulsarTestContext (#24171)
  • [fix][test] Fix flaky BatchMessageWithBatchIndexLevelTest.testBatchMessageAck (#24212)
  • [fix][test] Fix flaky BrokerServiceChaosTest (#24162)
  • [fix][test] Fix flaky BrokerServiceChaosTest.testFetchPartitionedTopicMetadataW...
Read more