[{"url":"https://api.github.com/repos/apache/pulsar/releases/303907518","assets_url":"https://api.github.com/repos/apache/pulsar/releases/303907518/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/303907518/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.2.0","id":303907518,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4SHUK-","tag_name":"v4.2.0","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-03-31T21:08:43Z","updated_at":"2026-03-31T22:56:43Z","published_at":"2026-03-31T21:12:26Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.2.0","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.2.0","body":"#### 2026-04-01\r\n\r\n### Approved PIPs\r\n\r\n- [PIP-434: Expose Netty channel configuration WRITE_BUFFER_WATER_MARK to pulsar conf and pause receive requests when channel is unwritable](https://github.com/apache/pulsar/tree/master/pip/pip-434.md)\r\n- [PIP-437: Granular and Fixed-Delay Policies for Message Delivery](https://github.com/apache/pulsar/tree/master/pip/pip-437.md)\r\n- [PIP-439: Adding Transaction Support to Pulsar Functions Through Managed Transaction Wrapping](https://github.com/apache/pulsar/tree/master/pip/pip-439.md)\r\n- [PIP-442: Add memory limits for CommandGetTopicsOfNamespace and CommandWatchTopicList on Broker and Proxy](https://github.com/apache/pulsar/tree/master/pip/pip-442.md)\r\n- [PIP-443: Stop using Netty Recycler in new code](https://github.com/apache/pulsar/tree/master/pip/pip-443.md)\r\n- [PIP-444: Rate limit for deleting ledger to alleviate the zk pressure.](https://github.com/apache/pulsar/tree/master/pip/pip-444.md)\r\n- [PIP-446: Support Native OpenTelemetry Tracing in Pulsar Java Client](https://github.com/apache/pulsar/tree/master/pip/pip-446.md)\r\n- [PIP-447: Customizable Prometheus Labels for Topic Metrics](https://github.com/apache/pulsar/tree/master/pip/pip-447.md)\r\n- [PIP-452: Customizable topic listing of namespace with properties](https://github.com/apache/pulsar/tree/master/pip/pip-452.md)\r\n- [PIP-453: Improve the metadata store threading model](https://github.com/apache/pulsar/tree/master/pip/pip-453.md)\r\n- [PIP-454: Metadata Store Migration Framework](https://github.com/apache/pulsar/tree/master/pip/pip-454.md)\r\n- [PIP-464: Deprecate legacy Jackson JsonSchema format for SchemaType.JSON](https://github.com/apache/pulsar/tree/master/pip/pip-464.md)\r\n\r\n### Library updates\r\n\r\n- [improve][broker] Upgrade bookkeeper to 4.17.3 ([#25166](https://github.com/apache/pulsar/pull/25166))\r\n- [improve][ml] Upgrade Oxia client to 0.7.0 ([#24824](https://github.com/apache/pulsar/pull/24824))\r\n- [fix][sec] Added Exclusions for tomcat-embed-core and derby and override mina-core to remediate CVEs ([#24949](https://github.com/apache/pulsar/pull/24949))\r\n- [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))\r\n- [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))\r\n- [fix][sec] Bump google.golang.org/grpc from 1.60.0 to 1.79.3 in /pulsar-function-go ([#25353](https://github.com/apache/pulsar/pull/25353))\r\n- [fix][sec] Bump io.vertx:vertx-web from 4.5.10 to 4.5.22 ([#24889](https://github.com/apache/pulsar/pull/24889))\r\n- [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))\r\n- [fix][sec] Bump org.apache.zookeeper:zookeeper from 3.9.4 to 3.9.5 ([#25303](https://github.com/apache/pulsar/pull/25303))\r\n- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024))\r\n- [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))\r\n- [fix][sec] Override commons-beanutils and commons-configuration2 to remediate CVEs ([#24936](https://github.com/apache/pulsar/pull/24936))\r\n- [fix][sec] Override kafka-clients in kinesis-kpl-shaded to remediate CVE-2024-31141 and CVE-2025-27817 ([#24935](https://github.com/apache/pulsar/pull/24935))\r\n- [fix][sec] Override msgpack-core to 0.9.11 to address CVE-2026-21452 ([#25233](https://github.com/apache/pulsar/pull/25233))\r\n- [fix][sec] Override nimbus-jose-jwt to remediate CVE-2023-52428 and CVE-2025-53864 ([#24937](https://github.com/apache/pulsar/pull/24937))\r\n- [fix][sec] Update Hbase version to 2.6.3-hadoop3 and exclude Avro from hbase-client to remediate CVEs ([#24953](https://github.com/apache/pulsar/pull/24953))\r\n- [fix][sec] Upgrade aircompressor to 2.0.3 to resolve CVE-2025-67721 ([#25256](https://github.com/apache/pulsar/pull/25256))\r\n- [fix][sec] Upgrade BouncyCastle FIPS to 2.0.10 to remediate CVE-2025-8916 ([#24923](https://github.com/apache/pulsar/pull/24923))\r\n- [fix][sec] Upgrade hadoop3 version from 3.4.0 to 3.4.1 ([#24950](https://github.com/apache/pulsar/pull/24950))\r\n- [fix][sec] Upgrade Jackson version to 2.18.6 ([#25264](https://github.com/apache/pulsar/pull/25264))\r\n- [fix][sec] Upgrade Jetty to 9.4.58.v20250814 to address CVE-2025-5115 ([#24897](https://github.com/apache/pulsar/pull/24897))\r\n- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095))\r\n- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 ([#25102](https://github.com/apache/pulsar/pull/25102))\r\n- [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs ([#24717](https://github.com/apache/pulsar/pull/24717))\r\n- [fix][sec] Upgrade Netty to 4.1.130.Final ([#25078](https://github.com/apache/pulsar/pull/25078))\r\n- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 ([#25206](https://github.com/apache/pulsar/pull/25206))\r\n- [fix][sec] Upgrade Python protobuf version to 6.33.5 to address CVE-2026-0994 ([#25250](https://github.com/apache/pulsar/pull/25250))\r\n- [fix][sec] Upgrade Spring to 6.2.12 to remediate CVE-2025-22233 and CVE-2025-41249 ([#24903](https://github.com/apache/pulsar/pull/24903))\r\n- [fix][sec] Upgrade vertx to address CVE-2026-1002 ([#25152](https://github.com/apache/pulsar/pull/25152))\r\n- [fix][build] Fix Eclipse/VSCode support after Jetty 12 upgrade ([#25169](https://github.com/apache/pulsar/pull/25169))\r\n- [fix][build] Fix IntelliJ build after Jetty 12 upgrade ([#25155](https://github.com/apache/pulsar/pull/25155))\r\n- [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension ([#24767](https://github.com/apache/pulsar/pull/24767))\r\n- [improve][fn] Upgrade Kubernetes client-java version to 23.0.0 and add k8s e2e integration tests ([#25000](https://github.com/apache/pulsar/pull/25000))\r\n- [improve][fn] Upgrade Pulsar Python client version to 3.10.0 ([#25251](https://github.com/apache/pulsar/pull/25251))\r\n- [fix][test] Upgrade docker-java to 3.7.0 ([#25209](https://github.com/apache/pulsar/pull/25209))\r\n- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and upgrade RabbitMQ client version ([#25085](https://github.com/apache/pulsar/pull/25085))\r\n- [improve][io] Upgrade Debezium to 3.4.2 and Kafka Client/Connect to 4.1.1 ([#25335](https://github.com/apache/pulsar/pull/25335))\r\n- [improve][io] Upgrade Debezium version to 3.2.4.Final ([#24896](https://github.com/apache/pulsar/pull/24896))\r\n- [improve][io] Upgrade Debezium version to 3.2.5.Final ([#25029](https://github.com/apache/pulsar/pull/25029))\r\n- [improve][io] Upgrade to Debezium 3.2.2 ([#24712](https://github.com/apache/pulsar/pull/24712))\r\n- [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))\r\n- [improve][build] Upgrade Apache Parent POM to version 35 ([#24742](https://github.com/apache/pulsar/pull/24742))\r\n- [improve][build] Upgrade errorprone to 2.45.0 version ([#25054](https://github.com/apache/pulsar/pull/25054))\r\n- [improve][build] Upgrade LightProto to 0.6.1 ([#25332](https://github.com/apache/pulsar/pull/25332))\r\n- [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 ([#24763](https://github.com/apache/pulsar/pull/24763))\r\n- [improve][build] Upgrade Mockito, AssertJ and ByteBuddy to fully support JDK25 ([#24764](https://github.com/apache/pulsar/pull/24764))\r\n- [improve][build] Upgrade SpotBugs to a version that supports JDK25 ([#24768](https://github.com/apache/pulsar/pull/24768))\r\n- [improve][build] Upgrade Testcontainers to 1.21.3 ([#24982](https://github.com/apache/pulsar/pull/24982))\r\n- [improve][ci] Upgrade GitHub Actions workflows to use ubuntu-24.04 ([#24841](https://github.com/apache/pulsar/pull/24841))\r\n- [improve][misc] Upgrade jjwt library version to 0.13.0 ([#25043](https://github.com/apache/pulsar/pull/25043))\r\n- [improve][misc] Upgrade Netty to 4.1.128.Final ([#24911](https://github.com/apache/pulsar/pull/24911))\r\n- [improve][misc] Upgrade snappy version to 1.1.10.8 ([#25182](https://github.com/apache/pulsar/pull/25182))\r\n- [improve][misc] Upgrade to Alpine 3.23 ([#25180](https://github.com/apache/pulsar/pull/25180))\r\n- [improve][misc] Upgrade to Jetty 12.1.x ([#25100](https://github.com/apache/pulsar/pull/25100))\r\n- [feat][meta] upgrade oxia version to 0.7.2 ([#24976](https://github.com/apache/pulsar/pull/24976))\r\n- [feat][misc] upgrade oxia version to 0.6.2 ([#24689](https://github.com/apache/pulsar/pull/24689))\r\n- [fix] Upgrade gson to 2.13.2 ([#25022](https://github.com/apache/pulsar/pull/25022))\r\n- [improve] Upgrade Alpine base image to 3.22 version ([#24840](https://github.com/apache/pulsar/pull/24840))\r\n- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983))\r\n- [improve] Upgrade Caffeine to 3.2.3 ([#24984](https://github.com/apache/pulsar/pull/24984))\r\n- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 ([#24985](https://github.com/apache/pulsar/pull/24985))\r\n- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232))\r\n- [improve] Upgrade RoaringBitmap to 1.6.9 version ([#25253](https://github.com/apache/pulsar/pull/25253))\r\n- [fix] Update gRPC to 1.75.0 ([#24813](https://github.com/apache/pulsar/pull/24813))\r\n- [fix] Exclude commons-lang dep from bookkeeper ([#24749](https://github.com/apache/pulsar/pull/24749))\r\n- [improve] replace jcip annotations to jsr305 annotations ([#25252](https://github.com/apache/pulsar/pull/25252))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Add schema version in rest produce api ([#25004](https://github.com/apache/pulsar/pull/25004))\r\n- [fix][broker] Allow intermittent error from topic policies service when loading topics ([#24829](https://github.com/apache/pulsar/pull/24829))\r\n- [fix][broker] AvgShedder comparison error ([#24954](https://github.com/apache/pulsar/pull/24954))\r\n- [fix][broker] Avoid recursive update in ConcurrentHashMap during policy cache cleanup ([#24939](https://github.com/apache/pulsar/pull/24939))\r\n- [fix][broker] Avoid split non-existent bundle ([#25031](https://github.com/apache/pulsar/pull/25031))\r\n- [fix][broker] BacklogMessageAge is not reset when cursor mdPosition is on an open ledger ([#24915](https://github.com/apache/pulsar/pull/24915))\r\n- [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges ([#24730](https://github.com/apache/pulsar/pull/24730))\r\n- [fix][broker] Ensure LoadSheddingTask is scheduled after metadata service is available again ([#24838](https://github.com/apache/pulsar/pull/24838))\r\n- [fix][broker] ExtensibleLoadManager: handle SessionReestablished and Reconnected events to re-register broker metadata ([#24932](https://github.com/apache/pulsar/pull/24932))\r\n- [fix][broker] Fence reset cursor by timestamp to avoid concurrent timestamp-based position lookups ([#25151](https://github.com/apache/pulsar/pull/25151))\r\n- [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. ([#24738](https://github.com/apache/pulsar/pull/24738))\r\n- [fix][broker] Fix bug in PersistentMessageExpiryMonitor which blocked further expirations ([#24941](https://github.com/apache/pulsar/pull/24941))\r\n- [fix][broker] Fix cannot shutdown broker gracefully by admin api ([#24731](https://github.com/apache/pulsar/pull/24731))\r\n- [fix][broker] Fix chunked message loss when no consumers are available ([#25077](https://github.com/apache/pulsar/pull/25077))\r\n- [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))\r\n- [fix][broker] Fix concurrency bug in BucketDelayedDeliveryTracker ([#25346](https://github.com/apache/pulsar/pull/25346))\r\n- [fix][broker] Fix creation of replicated subscriptions for partitioned topics ([#24997](https://github.com/apache/pulsar/pull/24997))\r\n- [fix][broker] Fix cursor position persistence in ledger trimming ([#25087](https://github.com/apache/pulsar/pull/25087))\r\n- [fix][broker] Fix ExtensibleLoadManagerImpl stuck Assigning bundle state after broker restart ([#25379](https://github.com/apache/pulsar/pull/25379))\r\n- [fix][broker] fix flaky test in SystemTopicBasedTopicPoliciesServiceTest ([#25098](https://github.com/apache/pulsar/pull/25098))\r\n- [fix][broker] fix getMaxReadPosition in TransactionBufferDisable should return latest ([#24898](https://github.com/apache/pulsar/pull/24898))\r\n- [fix][broker] Fix httpProxyTimeout config ([#25223](https://github.com/apache/pulsar/pull/25223))\r\n- [fix][broker] Fix IllegalArgumentException in BucketDelayedDeliveryTracker.addMessage ([#25371](https://github.com/apache/pulsar/pull/25371))\r\n- [fix][broker] Fix incomplete futures in topic property update/delete methods ([#25228](https://github.com/apache/pulsar/pull/25228))\r\n- [fix][broker] Fix incorrect topic loading latency metric and timeout might not be respected ([#24785](https://github.com/apache/pulsar/pull/24785))\r\n- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication ([#25012](https://github.com/apache/pulsar/pull/25012))\r\n- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous async mark delete properties in race condition ([#25165](https://github.com/apache/pulsar/pull/25165))\r\n- [fix][broker] Fix markDeletedPosition race condition in ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method ([#25110](https://github.com/apache/pulsar/pull/25110))\r\n- [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread ([#24719](https://github.com/apache/pulsar/pull/24719))\r\n- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when subscription prefix doesn't match. ([#25121](https://github.com/apache/pulsar/pull/25121))\r\n- [fix][broker] Fix NPE and annotate nullable return values for ManagedCursorContainer ([#24706](https://github.com/apache/pulsar/pull/24706))\r\n- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn by returning a valid Position ([#25039](https://github.com/apache/pulsar/pull/25039))\r\n- [fix][broker] fix prepareInitPoliciesCacheAsync in SystemTopicBasedTopicPoliciesService ([#24980](https://github.com/apache/pulsar/pull/24980))\r\n- [fix][broker] Fix race condition in ServerCnx producer/consumer async callbacks ([#25352](https://github.com/apache/pulsar/pull/25352))\r\n- [fix][broker] Fix regex matching of namespace name which might contain a regex char ([#25136](https://github.com/apache/pulsar/pull/25136))\r\n- [fix][broker] Fix stack overflow caused by race condition when closing a connection ([#24934](https://github.com/apache/pulsar/pull/24934))\r\n- [fix][broker] Fix testServiceConfigurationRetentionPolicy unit test ([#24756](https://github.com/apache/pulsar/pull/24756))\r\n- [fix][broker] Fix totalAvailablePermits not reduced when removing consumer from non-persistent dispatcher ([#24885](https://github.com/apache/pulsar/pull/24885))\r\n- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null value ([#25231](https://github.com/apache/pulsar/pull/25231))\r\n- [fix][broker] Fix typos in PulsarClusterMetadataSetup ([#24750](https://github.com/apache/pulsar/pull/24750))\r\n- [fix][broker] Fix various error-prone detected errors mainly in logging and String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))\r\n- [fix][broker] Fix wrong behaviour when using namespace.allowed_clusters, such as namespace deletion and namespace policies updating ([#24860](https://github.com/apache/pulsar/pull/24860))\r\n- [fix][broker] Flaky-test: ExtensibleLoadManagerImplTest.testDisableBroker ([#24770](https://github.com/apache/pulsar/pull/24770))\r\n- [fix][broker] Flaky-test: TopicTransactionBufferTest.testMessagePublishInOrder ([#24826](https://github.com/apache/pulsar/pull/24826))\r\n- [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))\r\n- [fix][broker] Guard AsyncTokenBucket against long overflow ([#25262](https://github.com/apache/pulsar/pull/25262))\r\n- [fix][broker] Handle missing replicator during snapshot request processing ([#25266](https://github.com/apache/pulsar/pull/25266))\r\n- [fix][broker] Key_Shared subscription doesn't always deliver messages from the replay queue after a consumer disconnects and leaves a backlog ([#24736](https://github.com/apache/pulsar/pull/24736))\r\n- [fix][broker] Pass metadataStoreSessionTimeoutMillis to bookkeeper client configuration to properly configure ZK timeout ([#24624](https://github.com/apache/pulsar/pull/24624))\r\n- [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))\r\n- [fix][broker] Prevent missed topic changes in topic watchers and schedule periodic refresh with patternAutoDiscoveryPeriod interval ([#25188](https://github.com/apache/pulsar/pull/25188))\r\n- [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback ([#24741](https://github.com/apache/pulsar/pull/24741))\r\n- [fix][broker] Return failed future instead of throwing exception in async methods ([#25289](https://github.com/apache/pulsar/pull/25289))\r\n- [fix][broker] Run ResourceGroup tasks only when tenants/namespaces registered ([#24859](https://github.com/apache/pulsar/pull/24859))\r\n- [fix][broker] Stop to retry to read entries if the replicator has terminated ([#24880](https://github.com/apache/pulsar/pull/24880))\r\n- [fix][broker] Support namespace unsubscribe when bundles are unloaded ([#25276](https://github.com/apache/pulsar/pull/25276))\r\n- [fix][broker] Trigger topic creation event only once for non-existent topic ([#24802](https://github.com/apache/pulsar/pull/24802))\r\n- [fix][broker] Use `poll` instead `remove` to avoid `NoSuchElementException` ([#24933](https://github.com/apache/pulsar/pull/24933))\r\n- [fix][broker] Use compatible Avro name validator in JsonSchemaCompatibilityCheck ([#25255](https://github.com/apache/pulsar/pull/25255))\r\n- [fix][broker] Use compatible Avro name validator to allow '$' in schema record names ([#25193](https://github.com/apache/pulsar/pull/25193))\r\n- [fix][broker]Dispatcher did unnecessary sort for recentlyJoinedConsumers and printed noisy error logs ([#24634](https://github.com/apache/pulsar/pull/24634))\r\n- [fix][broker]Fix dirty reading of namespace level offload thresholds ([#24696](https://github.com/apache/pulsar/pull/24696))\r\n- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the same subscription ([#25047](https://github.com/apache/pulsar/pull/25047))\r\n- [fix][broker]Fix ledgerHandle failed to read by using new BK API ([#25199](https://github.com/apache/pulsar/pull/25199))\r\n- [fix][broker]Fix memory leak when using a customized ManagedLedger implementation ([#25016](https://github.com/apache/pulsar/pull/25016))\r\n- [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK ([#24580](https://github.com/apache/pulsar/pull/24580))\r\n- [fix][broker]Fix the wrong logic of the test PartitionCreationTest.testCreateMissedPartitions ([#24683](https://github.com/apache/pulsar/pull/24683))\r\n- [fix][broker]Incorrect backlog that is larger than expected ([#25037](https://github.com/apache/pulsar/pull/25037))\r\n- [fix][broker]Infinitely failed to delete topic if the first time failed and enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073))\r\n- [fix][broker]Leaving orphan schemas and topic-level policies after partitioned topic is deleted by GC ([#24971](https://github.com/apache/pulsar/pull/24971))\r\n- [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))\r\n- [fix][broker]system topic was created with different partitions acrossing clusters after enabled namespace-level replication ([#25312](https://github.com/apache/pulsar/pull/25312))\r\n- [fix][broker]Topic deleting failed after removed local cluster from namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114))\r\n- [fix][broker]Transactional messages can never be sent successfully if concurrently taking transaction buffer snapshot ([#24945](https://github.com/apache/pulsar/pull/24945))\r\n- [fix][broker]Wrong backlog: expected 0 but got 1 ([#24938](https://github.com/apache/pulsar/pull/24938))\r\n- [fix][admin] Fix asyncGetRequest to handle 204 ([#25124](https://github.com/apache/pulsar/pull/25124))\r\n- [fix][admin] Fix offload policy incompatible issue. ([#25149](https://github.com/apache/pulsar/pull/25149))\r\n- [fix][admin] Refactor bookie affinity group sync operations to async in rest api ([#25050](https://github.com/apache/pulsar/pull/25050))\r\n- [fix][admin] Refactor namespace anti affinity group sync operations to async in rest api ([#25086](https://github.com/apache/pulsar/pull/25086))\r\n- [fix][admin] Set local policies overwrites \"number of bundles\" passed during namespace creation ([#24762](https://github.com/apache/pulsar/pull/24762))\r\n- [fix][ml] Fix `getNumberOfEntries` may point to deleted ledger ([#24852](https://github.com/apache/pulsar/pull/24852))\r\n- [fix][ml] Fix cursor backlog size to account for individual acks ([#25089](https://github.com/apache/pulsar/pull/25089))\r\n- [fix][ml] Fix ledger trimming race causing cursor to point to deleted ledgers ([#24855](https://github.com/apache/pulsar/pull/24855))\r\n- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race condition ([#25177](https://github.com/apache/pulsar/pull/25177))\r\n- [fix][ml] Negative backlog & acked positions does not exist & message lost when concurrently occupying topic owner ([#24722](https://github.com/apache/pulsar/pull/24722))\r\n- [fix][ml] PIP-430: Fix concurrency issue in MessageMetadata caching and improve caching ([#24836](https://github.com/apache/pulsar/pull/24836))\r\n- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is encountered ([#25148](https://github.com/apache/pulsar/pull/25148))\r\n- [fix][ml]Fix EOFException after enabled topics offloading ([#24753](https://github.com/apache/pulsar/pull/24753))\r\n- [fix][offload] Close all resources in BlobStoreBackedReadHandleImplV2.closeAsync ([#25296](https://github.com/apache/pulsar/pull/25296))\r\n- [fix][meta] Metadata cache refresh might not take effect ([#25246](https://github.com/apache/pulsar/pull/25246))\r\n- [improve][broker] Add idle timeout support for http ([#25224](https://github.com/apache/pulsar/pull/25224))\r\n- [improve][broker] Add overrideBrokerNics for adaptation of heterogeneous network environments ([#24883](https://github.com/apache/pulsar/pull/24883))\r\n- [improve][broker] Add strictAuthMethod to require explicit authentication method ([#25185](https://github.com/apache/pulsar/pull/25185))\r\n- [improve][broker] Add tests for using absolute FQDN for advertisedAddress and remove extra dot from brokerId ([#24787](https://github.com/apache/pulsar/pull/24787))\r\n- [improve][broker] Allow deletion of empty persistent topics regardless of retention policy ([#24733](https://github.com/apache/pulsar/pull/24733))\r\n- [improve][broker] Cache last publish timestamp for idle topics to reduce storage reads ([#24825](https://github.com/apache/pulsar/pull/24825))\r\n- [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))\r\n- [improve][broker] Change the log level from error to info when throwing NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130))\r\n- [improve][broker] Don't log an error when updatePartitionedTopic is called on a non-partitioned topic ([#24943](https://github.com/apache/pulsar/pull/24943))\r\n- [improve][broker] Enhance advertised address resolution with fallback to localhost ([#25238](https://github.com/apache/pulsar/pull/25238))\r\n- [improve][broker] Enhance logging for adding schema failures in ServerCnx ([#25048](https://github.com/apache/pulsar/pull/25048))\r\n- [improve][broker] Ensure metadata session state visibility and improve Unstable observability for ServiceUnitStateChannelImpl ([#25132](https://github.com/apache/pulsar/pull/25132))\r\n- [improve][broker] Fix replicated subscriptions race condition with mark delete update and snapshot completion ([#16651](https://github.com/apache/pulsar/pull/16651))\r\n- [improve][broker] Fix thread safety issue in ManagedCursorImpl.removeProperty  ([#25104](https://github.com/apache/pulsar/pull/25104))\r\n- [improve][broker] Give the detail error msg when authenticate failed with AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))\r\n- [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable ([#23634](https://github.com/apache/pulsar/pull/23634))\r\n- [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))\r\n- [improve][broker] Migrate remaining broker proto files from protobuf to LightProto ([#25337](https://github.com/apache/pulsar/pull/25337))\r\n- [improve][broker] Optimize AsyncTokenBucket overflow solution further to reduce fallback to BigInteger ([#25269](https://github.com/apache/pulsar/pull/25269))\r\n- [improve][broker] Optimize lookup result warn log ([#24942](https://github.com/apache/pulsar/pull/24942))\r\n- [improve][broker] Optimize Reader creation in TopicPoliciesService ([#24658](https://github.com/apache/pulsar/pull/24658))\r\n- [improve][broker] Part-1 of PIP-434: Expose Netty channel configuration WRITE_BUFFER_WATER_MARK to pulsar conf and pause receive requests when channel is unwritable ([#24423](https://github.com/apache/pulsar/pull/24423))\r\n- [improve][broker] Part-2 of PIP-434: Use ServerCnxThrottleTracker, instead of modifying channel.readable directly ([#24799](https://github.com/apache/pulsar/pull/24799))\r\n- [improve][broker] PIP-402: Optionally prevent role/originalPrincipal logging ([#23386](https://github.com/apache/pulsar/pull/23386))\r\n- [improve][broker] PIP-433: Ensure topic creation before starting GEO ([#24652](https://github.com/apache/pulsar/pull/24652))\r\n- [improve][broker] PIP-434: add configurations to broker.conf ([#24800](https://github.com/apache/pulsar/pull/24800))\r\n- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) ([#25070](https://github.com/apache/pulsar/pull/25070))\r\n- [improve][broker] PIP-444: Rate limit for deleting ledger to alleviate the zk pressure. ([#24760](https://github.com/apache/pulsar/pull/24760))\r\n- [improve][broker] PIP-464: Strict Avro schema validation for SchemaType.JSON ([#25362](https://github.com/apache/pulsar/pull/25362))\r\n- [improve][broker] Reduce the broker close time to avoid useless wait for event loop shutdown ([#24895](https://github.com/apache/pulsar/pull/24895))\r\n- [improve][broker] Reduce unnecessary MessageMetadata parsing by caching the parsed instance in the broker cache ([#24682](https://github.com/apache/pulsar/pull/24682))\r\n- [improve][broker] Replace isServiceUnitActiveAsync with checkTopicNsOwnership ([#24780](https://github.com/apache/pulsar/pull/24780))\r\n- [improve][broker] Update netty allocator default chunk size from 4MB to 8MB, and move internal JVM opts from PULSAR_EXTRA_OPTS to OPTS ([#25274](https://github.com/apache/pulsar/pull/25274))\r\n- [improve][broker] Use atomic counter for ongoing transaction count ([#25053](https://github.com/apache/pulsar/pull/25053))\r\n- [improve][broker]Add test for getting partitioned topic metadata with PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026))\r\n- [improve][broker]Call scheduleAtFixedRateNonConcurrently for scheduled tasks, instead of scheduleAtFixedRate ([#24596](https://github.com/apache/pulsar/pull/24596))\r\n- [improve][broker]Improve error response of failed to delete topic if it has replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975))\r\n- [improve][broker]Improve NamespaceService log that is printed when cluster was removed ([#24801](https://github.com/apache/pulsar/pull/24801))\r\n- [improve][broker]Part-2 of PIP-433 add validation when enabling namespace-level Geo-Replication ([#25170](https://github.com/apache/pulsar/pull/25170))\r\n- [improve][broker]Remove the warn log that frequently prints ([#25018](https://github.com/apache/pulsar/pull/25018))\r\n- [improve][broker]Skip to mark delete if the target position of expira… ([#24881](https://github.com/apache/pulsar/pull/24881))\r\n- [fix][monitor] Fix the incorrect metrics name ([#21981](https://github.com/apache/pulsar/pull/21981))\r\n- [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))\r\n- [improve][admin] Add counter for marker messages in PersistentTopics.analyzeSubscriptionBacklog() rest api ([#25091](https://github.com/apache/pulsar/pull/25091))\r\n- [fix][txn] fix concurrent error cause txn stuck in TransactionBufferHandlerImpl#endTxn ([#23551](https://github.com/apache/pulsar/pull/23551))\r\n- [improve][ml] Clean up managed-ledger code: deduplicate logic and use shared utilities ([#25298](https://github.com/apache/pulsar/pull/25298))\r\n- [improve][ml] Improve cache insert performance by removing exists check since it's already covered by putIfAbsent ([#24699](https://github.com/apache/pulsar/pull/24699))\r\n- [improve][ml] Migrate managed-ledger from protobuf to LightProto ([#25336](https://github.com/apache/pulsar/pull/25336))\r\n- [improve][offload] Bump hadoop to 3.4.3 and hbase to 2.6.4 ([#25396](https://github.com/apache/pulsar/pull/25396))\r\n- [improve][meta] Add byte size limit to AbstractMetadataStore's childrenCache ([#24868](https://github.com/apache/pulsar/pull/24868))\r\n- [improve][meta] PIP-453: Improve the metadata store threading model ([#25187](https://github.com/apache/pulsar/pull/25187))\r\n- [cleanup][broker] Remove unused configuration maxMessageSizeCheckIntervalInSeconds ([#24958](https://github.com/apache/pulsar/pull/24958))\r\n- [feat][broker] add topic-level subscription expiration time policy ([#25258](https://github.com/apache/pulsar/pull/25258))\r\n- [feat][broker] PIP-452: Customizable topic listing of namespace with properties  ([#25160](https://github.com/apache/pulsar/pull/25160))\r\n- [feat][monitor]  PIP-447 for Customizable Prometheus Labels for Topic Metrics ([#24991](https://github.com/apache/pulsar/pull/24991))\r\n- [feat][monitor] Add ML write latency histogram and entry size histogram as OTel metrics ([#24815](https://github.com/apache/pulsar/pull/24815))\r\n- [feat][monitor] Add publish latency histogram as OTel metrics ([#24810](https://github.com/apache/pulsar/pull/24810))\r\n- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim ([#25197](https://github.com/apache/pulsar/pull/25197))\r\n- [feat] PIP-442: Add memory limits for CommandGetTopicsOfNamespace ([#24833](https://github.com/apache/pulsar/pull/24833))\r\n- [fix] Fix mixed lookup/partition metadata requests causing reliability issues and incorrect responses ([#24832](https://github.com/apache/pulsar/pull/24832))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n- [improve][client/broker] Add DnsResolverGroup to share DNS cache across multiple PulsarClient instances ([#24784](https://github.com/apache/pulsar/pull/24784))\r\n- [improve] Eliminate unnecessary duplicate schema lookups for partitioned topics in client and geo-replication ([#25011](https://github.com/apache/pulsar/pull/25011))\r\n\r\n### Client\r\n\r\n- [fix][client] Add description method to ClientBuilder ([#24728](https://github.com/apache/pulsar/pull/24728))\r\n- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads ([#24725](https://github.com/apache/pulsar/pull/24725))\r\n- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178))\r\n- [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side dependencies ([#24761](https://github.com/apache/pulsar/pull/24761))\r\n- [fix][client] Fail messages immediately in ProducerImpl when in terminal state ([#25317](https://github.com/apache/pulsar/pull/25317))\r\n- [fix][client] Fix async APIs to return failed futures on validation errors ([#25287](https://github.com/apache/pulsar/pull/25287))\r\n- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015))\r\n- [fix][client] Fix deduplication for getPartitionedTopicMetadata to include method parameters ([#24965](https://github.com/apache/pulsar/pull/24965))\r\n- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008))\r\n- [fix][client] Fix getPendingQueueSize for PartitionedTopicProducerStatsRecorderImpl: avoid NPE and implement aggregation ([#24830](https://github.com/apache/pulsar/pull/24830))\r\n- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069))\r\n- [fix][client] Fix lookup request semaphore not release problem ([#25038](https://github.com/apache/pulsar/pull/25038))\r\n- [fix][client] Fix potential NPE in TypedMessageBuilderImpl ([#24691](https://github.com/apache/pulsar/pull/24691))\r\n- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207))\r\n- [fix][client] Fix PulsarAdmin description check and add test ([#24734](https://github.com/apache/pulsar/pull/24734))\r\n- [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))\r\n- [fix][client] Fix receiver queue auto-scale without memory limit ([#24743](https://github.com/apache/pulsar/pull/24743))\r\n- [fix][client] Fix stale Healthy state in SameAuthParamsLookupAutoClusterFailover causing flaky test ([#25388](https://github.com/apache/pulsar/pull/25388))\r\n- [fix][client] Fix thread leak in reloadLookUp method which is used by ServiceUrlProvider ([#24794](https://github.com/apache/pulsar/pull/24794))\r\n- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014))\r\n- [fix][client] Make auto partitions update work for old brokers without PIP-344 ([#24822](https://github.com/apache/pulsar/pull/24822))\r\n- [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))\r\n- [fix][client] Reduce logging in OAuth auth to fix parsing of Pulsar cli command output ([#25254](https://github.com/apache/pulsar/pull/25254))\r\n- [fix][client] rollback TopicListWatcher retry behavior ([#24752](https://github.com/apache/pulsar/pull/24752))\r\n- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229))\r\n- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006))\r\n- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106))\r\n- [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method ([#24698](https://github.com/apache/pulsar/pull/24698))\r\n- [improve][client]  PIP-407 Add newMessage with schema and transactions ([#23942](https://github.com/apache/pulsar/pull/23942))\r\n- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))\r\n- [improve][client] Allow adding custom description to User-Agent header ([#24729](https://github.com/apache/pulsar/pull/24729))\r\n- [improve][client] allow override of default global jsr310 conversion ([#24311](https://github.com/apache/pulsar/pull/24311))\r\n- [improve][client] Deduplicate getTopicsUnderNamespace in BinaryProtoLookupService ([#24962](https://github.com/apache/pulsar/pull/24962))\r\n- [improve][client] Deduplicate in-progress lookup requests also for HttpLookupService ([#25017](https://github.com/apache/pulsar/pull/25017))\r\n- [improve][client] Enable configurable preemptive OAuth2 token refresh ([#25363](https://github.com/apache/pulsar/pull/25363))\r\n- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))\r\n- [improve][client] PIP-420: Update the schema ID format ([#24798](https://github.com/apache/pulsar/pull/24798))\r\n- [improve][client] Support protobuf v4 schema compatibility ([#25261](https://github.com/apache/pulsar/pull/25261))\r\n- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013))\r\n- [improve][client]Add null check for Pulsar client clock configuration ([#24848](https://github.com/apache/pulsar/pull/24848))\r\n- [improve][client]PIP-436:Add decryptFailListener to Consumer ([#24702](https://github.com/apache/pulsar/pull/24702))\r\n- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172))\r\n- [cleanup][client] Remove unnecessary pause/resume logic from MultiTopicsConsumerImpl and cleanup putIfAbsent logic ([#25009](https://github.com/apache/pulsar/pull/25009))\r\n- [feat][client] Implement PIP-234 for sharing thread pools and DNS resolver/cache across multiple Pulsar Client instances ([#24790](https://github.com/apache/pulsar/pull/24790))\r\n- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944))\r\n- [feat][client] PIP-234: Support shared resources in PulsarAdmin to reduce thread usage ([#24893](https://github.com/apache/pulsar/pull/24893))\r\n- [feat][client] PIP-446: Support Native OpenTelemetry Tracing in Pulsar Java Client ([#24873](https://github.com/apache/pulsar/pull/24873))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait for completion in closing the cache ([#25140](https://github.com/apache/pulsar/pull/25140))\r\n- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))\r\n- [fix][io] Improve Kafka Connect source offset flushing logic ([#24654](https://github.com/apache/pulsar/pull/24654))\r\n- [fix][io][kca] kafka headers silently dropped ([#25325](https://github.com/apache/pulsar/pull/25325))\r\n- [improve][fn] Use PulsarByteBufAllocator.DEFAULT instead of ByteBufAllocator.DEFAULT ([#24952](https://github.com/apache/pulsar/pull/24952))\r\n- [improve][io] Add PUT method support to HttpSink ([#25133](https://github.com/apache/pulsar/pull/25133))\r\n- [improve][io] Set default connector class for debezium connectors ([#25215](https://github.com/apache/pulsar/pull/25215))\r\n- [improve][io] Use try-with-resources for some locations ([#24900](https://github.com/apache/pulsar/pull/24900))\r\n- [cleanup][io] Remove Pulsar IO Flume connector ([#25079](https://github.com/apache/pulsar/pull/25079))\r\n- [cleanup][io] Remove Pulsar IO Twitter connector ([#25080](https://github.com/apache/pulsar/pull/25080))\r\n- [feat][fn] Fallback to using `STATE_STORAGE_SERVICE_URL` in `PulsarMetadataStateStoreProviderImpl.init` ([#24721](https://github.com/apache/pulsar/pull/24721))\r\n- [feat][io] Add ScyllaDB tests ([#24931](https://github.com/apache/pulsar/pull/24931))\r\n- [feat][io] implement pip-297 for jdbc sinks ([#25195](https://github.com/apache/pulsar/pull/25195))\r\n\r\n### Others\r\n\r\n- [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))\r\n- [improve][misc]introduce log4j Console appender ConsoleJson ([#25034](https://github.com/apache/pulsar/pull/25034))\r\n- [fix][proxy] Close client connection immediately when credentials expire and forwardAuthorizationCredentials is disabled ([#25179](https://github.com/apache/pulsar/pull/25179))\r\n- [fix][proxy] Fix memory leaks in ParserProxyHandler ([#25142](https://github.com/apache/pulsar/pull/25142))\r\n- [improve][proxy] Add regression tests for package upload with 'Expect: 100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))\r\n- [fix][ws] Fix issue where metadataStoreAllowReadOnlyOperations setting is ignored by WebSocket server ([#25281](https://github.com/apache/pulsar/pull/25281))\r\n- [fix][cli] Fix output of --print-metadata in cli consume ([#25056](https://github.com/apache/pulsar/pull/25056))\r\n- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async operations complete ([#25051](https://github.com/apache/pulsar/pull/25051))\r\n- [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking ([#24772](https://github.com/apache/pulsar/pull/24772))\r\n- [improve][doc] Clarify geo-replication cluster removal behavior for shared vs separate configuration stores ([#24687](https://github.com/apache/pulsar/pull/24687))\r\n- [improve][doc] Suggest to raise documentation issues to the site repo ([#25162](https://github.com/apache/pulsar/pull/25162))\r\n- [improve][doc] Update Java version recommendations in README ([#24913](https://github.com/apache/pulsar/pull/24913))\r\n- [cleanup][doc]Remove TRACING.md as it has been moved to pulsar-site ([#25213](https://github.com/apache/pulsar/pull/25213))\r\n- [cleanup] PIP-457: Remove NamespaceName.isGlobal() and TopicName.isGlobal() ([#25319](https://github.com/apache/pulsar/pull/25319))\r\n- [cleanup] PIP-457: Remove support for V1 topic names and V1 Admin API ([#25275](https://github.com/apache/pulsar/pull/25275))\r\n- [cleanup] PIP-462: Remove Etcd metadata store backend ([#25329](https://github.com/apache/pulsar/pull/25329))\r\n- [cleanup] Refactored Backoff to be more consistent and intuitive to use ([#25278](https://github.com/apache/pulsar/pull/25278))\r\n- [feat] PIP-454: Metadata Store Migration Framework (implementation) ([#25219](https://github.com/apache/pulsar/pull/25219))\r\n- [feat][bookkeeper] add certs refresh ([#25370](https://github.com/apache/pulsar/pull/25370))\r\n- [fix] Fix typos in class Message and Producer    ([#25265](https://github.com/apache/pulsar/pull/25265))\r\n- [fix] PIP-457: Remove support for V1 topic names and V1 Admin API (implementation) ([#25304](https://github.com/apache/pulsar/pull/25304))\r\n- [fix]Fixed getChildren('/') on Oxia based provider ([#24863](https://github.com/apache/pulsar/pull/24863))\r\n- [improve] Add secondary index support to MetadataStore ([#25328](https://github.com/apache/pulsar/pull/25328))\r\n\r\n### Tests & CI\r\n\r\n- [improve][misc] Protect branch-4.1 ([#24715](https://github.com/apache/pulsar/pull/24715))\r\n- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 ([#25084](https://github.com/apache/pulsar/pull/25084))\r\n- [fix][build] Fix compilation issues for PR [#25219](https://github.com/apache/pulsar/pull/25219) changes after merging conflicting PR [#25278](https://github.com/apache/pulsar/pull/25278) ([#25300](https://github.com/apache/pulsar/pull/25300))\r\n- [fix][build] Fix maven deploy with maven-source-plugin 3.3.1 ([#24811](https://github.com/apache/pulsar/pull/24811))\r\n- [fix][build] Remove Confluent and Restlet maven repositories from top level pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))\r\n- [fix][build] Remove invalid profile in settings.xml that caused gpg signing to fail ([#24812](https://github.com/apache/pulsar/pull/24812))\r\n- [fix][build] Set project version to 4.2.0-SNAPSHOT ([#24690](https://github.com/apache/pulsar/pull/24690))\r\n- [fix][ci] Disable trivy-action ([#25373](https://github.com/apache/pulsar/pull/25373))\r\n- [fix][ci] Fix .github/actions/ssh-access which is used for debugging Pulsar CI in forks ([#25075](https://github.com/apache/pulsar/pull/25075))\r\n- [fix][ci] Move flaky asyncMarkDeleteBlocking tests to flaky group ([#25096](https://github.com/apache/pulsar/pull/25096))\r\n- [fix][test] Add Delta Tolerance in Double-Precision Assertions to Fix Rounding Flakiness ([#24972](https://github.com/apache/pulsar/pull/24972))\r\n- [fix][test] BacklogQuotaManagerTest.backlogsAgeMetricsNoPreciseWithoutBacklogQuota handle empty /metrics scrape ([#24887](https://github.com/apache/pulsar/pull/24887))\r\n- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 ([#25186](https://github.com/apache/pulsar/pull/25186))\r\n- [fix][test] Fix flaky ConnectionTimeoutTest by correcting latch count ([#25320](https://github.com/apache/pulsar/pull/25320))\r\n- [fix][test] Fix flaky ConsumedLedgersTrimTest.testAdminTrimLedgers ([#25342](https://github.com/apache/pulsar/pull/25342))\r\n- [fix][test] Fix flaky ConsumedLedgersTrimTest.testAdminTrimLedgers ([#25360](https://github.com/apache/pulsar/pull/25360))\r\n- [fix][test] Fix flaky ExtensibleLoadManagerImplTest.testLoadBalancerServiceUnitTableViewSyncer ([#25378](https://github.com/apache/pulsar/pull/25378))\r\n- [fix][test] Fix flaky KeySharedSubscriptionBrokerCacheTest.testReplayQueueReadsGettingCached ([#24955](https://github.com/apache/pulsar/pull/24955))\r\n- [fix][test] Fix flaky LookupPropertiesTest.testConcurrentLookupProperties ([#24854](https://github.com/apache/pulsar/pull/24854))\r\n- [fix][test] Fix flaky ManagedCursorTest.testSkipEntries ([#25339](https://github.com/apache/pulsar/pull/25339))\r\n- [fix][test] Fix flaky MessagePublishBufferThrottleTest.testBlockByPublishRateLimiting ([#25365](https://github.com/apache/pulsar/pull/25365))\r\n- [fix][test] Fix flaky MetadataStoreTest.testThreadSwitchOfZkMetadataStore ([#25347](https://github.com/apache/pulsar/pull/25347))\r\n- [fix][test] Fix flaky ModularLoadManagerImplTest.testRemoveNonExistBundleData ([#25143](https://github.com/apache/pulsar/pull/25143))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testProducerRateLimit ([#24951](https://github.com/apache/pulsar/pull/24951))\r\n- [fix][test] Fix flaky OneWayReplicatorUsingGlobalZKTest cleanup ([#25313](https://github.com/apache/pulsar/pull/25313))\r\n- [fix][test] Fix flaky OneWayReplicatorUsingGlobalZKTest.cleanup ([#25389](https://github.com/apache/pulsar/pull/25389))\r\n- [fix][test] Fix flaky PersistentStickyKeyDispatcherMultipleConsumersClassicTest.testSkipRedeliverTemporally ([#25385](https://github.com/apache/pulsar/pull/25385))\r\n- [fix][test] Fix flaky PersistentTopicTerminateTest.testRecoverAfterTerminate ([#25345](https://github.com/apache/pulsar/pull/25345))\r\n- [fix][test] Fix flaky PersistentTopicTest.testBacklogCursor ([#25348](https://github.com/apache/pulsar/pull/25348))\r\n- [fix][test] Fix flaky PulsarDebeziumOracleSourceTest ([#25314](https://github.com/apache/pulsar/pull/25314))\r\n- [fix][test] Fix flaky PulsarFunctionsK8STest ([#25108](https://github.com/apache/pulsar/pull/25108))\r\n- [fix][test] Fix flaky PulsarFunctionTlsTest.testFunctionsCreation ([#25341](https://github.com/apache/pulsar/pull/25341))\r\n- [fix][test] Fix flaky ReplicatorRateLimiterTest.testReplicatorRateLimiterMessageReceivedAllMessages ([#25340](https://github.com/apache/pulsar/pull/25340))\r\n- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed ([#24904](https://github.com/apache/pulsar/pull/24904))\r\n- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed ([#25358](https://github.com/apache/pulsar/pull/25358))\r\n- [fix][test] Fix flaky ResendRequestTest.testFailoverSingleAckedNormalTopic ([#25343](https://github.com/apache/pulsar/pull/25343))\r\n- [fix][test] Fix flaky ResendRequestTest.testFailoverSingleAckedNormalTopic ([#25364](https://github.com/apache/pulsar/pull/25364))\r\n- [fix][test] Fix flaky ShadowTopicTest.testConsumeShadowMessageWithoutCache ([#25354](https://github.com/apache/pulsar/pull/25354))\r\n- [fix][test] Fix flaky SingleThreadNonConcurrentFixedRateSchedulerTest.testPeriodicTaskCancellation ([#24823](https://github.com/apache/pulsar/pull/24823))\r\n- [fix][test] Fix flaky SubscriptionSeekTest.testSeekWillNotEncounteredFencedError by counting subscription is fenced only after seek ([#24865](https://github.com/apache/pulsar/pull/24865))\r\n- [fix][test] Fix flaky TopicListSizeResultCacheTest concurrent requests test ([#25357](https://github.com/apache/pulsar/pull/25357))\r\n- [fix][test] Fix flaky TopicTerminationTest.testCreatingProducerTasksCleanupWhenOnTerminatedTopic ([#25355](https://github.com/apache/pulsar/pull/25355))\r\n- [fix][test] Fix invalid test NonPersistentTopicTest.testProducerRateLimit ([#24957](https://github.com/apache/pulsar/pull/24957))\r\n- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests ([#25101](https://github.com/apache/pulsar/pull/25101))\r\n- [fix][test] Fix Mockito stubbing race in TopicListServiceTest ([#25227](https://github.com/apache/pulsar/pull/25227))\r\n- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage ([#25247](https://github.com/apache/pulsar/pull/25247))\r\n- [fix][test] fix testBatchMetadataStoreMetrics. ([#25241](https://github.com/apache/pulsar/pull/25241))\r\n- [fix][test] Fix the flaky test ProduceWithMessageIdTest. sendWithCallBack ([#25150](https://github.com/apache/pulsar/pull/25150))\r\n- [fix][test] Fix thread leaks in ClientDeduplicationFailureTest and RackAwareTest ([#25374](https://github.com/apache/pulsar/pull/25374))\r\n- [fix][test] Fix thread leaks in ManagedLedgerTest and PulsarMockBookKeeper ([#25377](https://github.com/apache/pulsar/pull/25377))\r\n- [fix][test] Fix thread leaks in multiple tests and KinesisSink ([#25376](https://github.com/apache/pulsar/pull/25376))\r\n- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin ([#24871](https://github.com/apache/pulsar/pull/24871))\r\n- [fix][test] Fixed Nondeterministic Assertions in KafkaAbstractSinkTest ([#24877](https://github.com/apache/pulsar/pull/24877))\r\n- [fix][test] Fixed nondeterministic JSON ordering in multiple tests ([#24821](https://github.com/apache/pulsar/pull/24821))\r\n- [fix][test] Fixed Nondeterministic Ordering in Generated Docs Topics ([#24973](https://github.com/apache/pulsar/pull/24973))\r\n- [fix][test] Fixed nondeterministic ordering in MongoSourceTest.testWriteBadMessage ([#24835](https://github.com/apache/pulsar/pull/24835))\r\n- [fix][test] Fixed Nondeterministic Ordering in SchemaInfoTest ([#24969](https://github.com/apache/pulsar/pull/24969))\r\n- [fix][test] Fixed ResponseBody Check in Test Helper ([#24872](https://github.com/apache/pulsar/pull/24872))\r\n- [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload ([#24769](https://github.com/apache/pulsar/pull/24769))\r\n- [fix][test] Made ProtobufNativeSchemaTest.testSchema order-independent ([#24805](https://github.com/apache/pulsar/pull/24805))\r\n- [fix][test] Made ProtobufSchemaTest.testParsingInfoProperty order-independent ([#24807](https://github.com/apache/pulsar/pull/24807))\r\n- [fix][test] Make ClusterMigrationTest.testClusterMigrationWithReplicationBacklog more robust ([#25330](https://github.com/apache/pulsar/pull/25330))\r\n- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test ([#25032](https://github.com/apache/pulsar/pull/25032))\r\n- [fix][test] Stabilize FunctionAssignmentTailerTest.testErrorNotifier by synchronizing mock stubbing with CountDownLatch ([#24875](https://github.com/apache/pulsar/pull/24875))\r\n- [fix][test] Stabilize PublishRateLimiterOverconsumingTest by aligning measurement and using adjacent 2-sec averages ([#24864](https://github.com/apache/pulsar/pull/24864))\r\n- [fix][test] Stabilize SequenceIdWithErrorTest by fencing after first publish to avoid empty-ledger deletion and send timeout ([#24861](https://github.com/apache/pulsar/pull/24861))\r\n- [fix][test] Stabilize testMsgDropStat by reliably triggering non-persistent publisher drop ([#24929](https://github.com/apache/pulsar/pull/24929))\r\n- [fix][test] Use AtomicBoolean.compareAndSet() to guarantee atomicity in testDoIndividualBatchAckNeverAffectIsDuplicate() method ([#25217](https://github.com/apache/pulsar/pull/25217))\r\n- [fix][test] Wait for txn.abort() to complete to avoid AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() flaky test ([#25125](https://github.com/apache/pulsar/pull/25125))\r\n- [fix][test] Whitelist SharedPulsarCluster threads in thread leak detector ([#25375](https://github.com/apache/pulsar/pull/25375))\r\n- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics ([#25216](https://github.com/apache/pulsar/pull/25216))\r\n- [fix][test]fix flaky MessagePayloadProcessorTest.testDefaultProcessor ([#24710](https://github.com/apache/pulsar/pull/24710))\r\n- [fix][test]fix flaky SimpleProducerConsumerTest.testReceiveAsyncCompletedWhenClosing ([#24858](https://github.com/apache/pulsar/pull/24858))\r\n- [fix] Fix flaky OneWayReplicatorTest.testTopicPoliciesReplicationRule ([#25316](https://github.com/apache/pulsar/pull/25316))\r\n- [fix] Fix flaky testEstimatedTimeBasedBacklogQuotaCheckWhenNoBacklog ([#25307](https://github.com/apache/pulsar/pull/25307))\r\n- [improve][build] Add Async Profiler integration for integration tests ([#24688](https://github.com/apache/pulsar/pull/24688))\r\n- [improve][build] Disable javadoc build failure ([#24594](https://github.com/apache/pulsar/pull/24594))\r\n- [improve][build] docker: use up to date wolfi-base location ([#24708](https://github.com/apache/pulsar/pull/24708))\r\n- [improve][build] Support building docker images that use Wolfi base image which is glibc based ([#24692](https://github.com/apache/pulsar/pull/24692))\r\n- [improve][ci] Move replication tests to new group Broker Group 5 in Pulsar CI ([#24917](https://github.com/apache/pulsar/pull/24917))\r\n- [improve][ci] Replace PULSARBOT_TOKEN with GITHUB_TOKEN configured with permissions ([#24916](https://github.com/apache/pulsar/pull/24916))\r\n- [improve][ci] update pulsarbot to use github-script based implementation ([#24940](https://github.com/apache/pulsar/pull/24940))\r\n- [improve][CI] Add Copilot instructions based on Pulsar Java coding conventions ([#25305](https://github.com/apache/pulsar/pull/25305))\r\n- [improve][test] Disable flaky PatternConsumerBackPressureTest until the problem is fixed ([#24948](https://github.com/apache/pulsar/pull/24948))\r\n- [improve][test] Improve integration test profiling test example ([#24701](https://github.com/apache/pulsar/pull/24701))\r\n- [improve][test] Introduce shared Pulsar cluster for faster integration tests ([#25311](https://github.com/apache/pulsar/pull/25311))\r\n- [improve][test] Set k8s test retry count to 0 ([#25230](https://github.com/apache/pulsar/pull/25230))\r\n- [improve][test] Use Oxia project docker container for integration tests ([#24995](https://github.com/apache/pulsar/pull/24995))\r\n- [cleanup] Convert 10 test classes to SharedPulsarBaseTest ([#25327](https://github.com/apache/pulsar/pull/25327))\r\n- [cleanup] Convert 10 test classes to SharedPulsarBaseTest ([#25338](https://github.com/apache/pulsar/pull/25338))\r\n- [cleanup] Convert 12 test classes to SharedPulsarBaseTest ([#25392](https://github.com/apache/pulsar/pull/25392))\r\n- [cleanup] Convert 13 test classes to SharedPulsarBaseTest ([#25331](https://github.com/apache/pulsar/pull/25331))\r\n- [cleanup] Convert 15 test classes to SharedPulsarBaseTest ([#25318](https://github.com/apache/pulsar/pull/25318))\r\n- [cleanup] Convert 30 test classes to SharedPulsarBaseTest ([#25381](https://github.com/apache/pulsar/pull/25381))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/45d71f8...v4.2.0).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/288406028","assets_url":"https://api.github.com/repos/apache/pulsar/releases/288406028/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/288406028/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.1.3","id":288406028,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4RMLoM","tag_name":"v4.1.3","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-02-19T19:47:36Z","updated_at":"2026-02-19T20:10:11Z","published_at":"2026-02-19T19:48:49Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.1.3","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.1.3","body":"#### 2026-02-19\r\n\r\n### Library updates\r\n\r\n- [improve][broker] Upgrade bookkeeper to 4.17.3 ([#25166](https://github.com/apache/pulsar/pull/25166))\r\n- [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))\r\n- [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))\r\n- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024))\r\n- [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))\r\n- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095))\r\n- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 ([#25102](https://github.com/apache/pulsar/pull/25102))\r\n- [fix][sec] Upgrade Netty to 4.1.130.Final ([#25078](https://github.com/apache/pulsar/pull/25078))\r\n- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 ([#25206](https://github.com/apache/pulsar/pull/25206))\r\n- [fix][sec] Upgrade vertx to address CVE-2026-1002 ([#25152](https://github.com/apache/pulsar/pull/25152))\r\n- [fix][test] Upgrade docker-java to 3.7.0 ([#25209](https://github.com/apache/pulsar/pull/25209))\r\n- [improve][io] Upgrade Debezium version to 3.2.5.Final ([#25029](https://github.com/apache/pulsar/pull/25029))\r\n- [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))\r\n- [improve][misc] Upgrade snappy version to 1.1.10.8 ([#25182](https://github.com/apache/pulsar/pull/25182))\r\n- [feat][meta] upgrade oxia version to 0.7.2 ([#24976](https://github.com/apache/pulsar/pull/24976))\r\n- [fix] Upgrade gson to 2.13.2 ([#25022](https://github.com/apache/pulsar/pull/25022))\r\n- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983))\r\n- [improve] Upgrade Caffeine to 3.2.3 ([#24984](https://github.com/apache/pulsar/pull/24984))\r\n- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 ([#24985](https://github.com/apache/pulsar/pull/24985))\r\n- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232))\r\n- [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))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Add schema version in rest produce api ([#25004](https://github.com/apache/pulsar/pull/25004))\r\n- [fix][broker] Avoid split non-existent bundle ([#25031](https://github.com/apache/pulsar/pull/25031))\r\n- [fix][broker] Fence reset cursor by timestamp to avoid concurrent timestamp-based position lookups ([#25151](https://github.com/apache/pulsar/pull/25151))\r\n- [fix][broker] Fix chunked message loss when no consumers are available ([#25077](https://github.com/apache/pulsar/pull/25077))\r\n- [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))\r\n- [fix][broker] Fix creation of replicated subscriptions for partitioned topics ([#24997](https://github.com/apache/pulsar/pull/24997))\r\n- [fix][broker] Fix cursor position persistence in ledger trimming ([#25087](https://github.com/apache/pulsar/pull/25087))\r\n- [fix][broker] Fix httpProxyTimeout config ([#25223](https://github.com/apache/pulsar/pull/25223))\r\n- [fix][broker] Fix incomplete futures in topic property update/delete methods ([#25228](https://github.com/apache/pulsar/pull/25228))\r\n- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication ([#25012](https://github.com/apache/pulsar/pull/25012))\r\n- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous async mark delete properties in race condition ([#25165](https://github.com/apache/pulsar/pull/25165))\r\n- [fix][broker] Fix markDeletedPosition race condition in ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method ([#25110](https://github.com/apache/pulsar/pull/25110))\r\n- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when subscription prefix doesn't match. ([#25121](https://github.com/apache/pulsar/pull/25121))\r\n- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn by returning a valid Position ([#25039](https://github.com/apache/pulsar/pull/25039))\r\n- [fix][broker] fix prepareInitPoliciesCacheAsync in SystemTopicBasedTopicPoliciesService ([#24980](https://github.com/apache/pulsar/pull/24980))\r\n- [fix][broker] Fix regex matching of namespace name which might contain a regex char ([#25136](https://github.com/apache/pulsar/pull/25136))\r\n- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null value ([#25231](https://github.com/apache/pulsar/pull/25231))\r\n- [fix][broker] Fix various error-prone detected errors mainly in logging and String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))\r\n- [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))\r\n- [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))\r\n- [fix][broker] Prevent missed topic changes in topic watchers and schedule periodic refresh with patternAutoDiscoveryPeriod interval ([#25188](https://github.com/apache/pulsar/pull/25188))\r\n- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the same subscription ([#25047](https://github.com/apache/pulsar/pull/25047))\r\n- [fix][broker]Fix ledgerHandle failed to read by using new BK API ([#25199](https://github.com/apache/pulsar/pull/25199))\r\n- [fix][broker]Fix memory leak when using a customized ManagedLedger implementation ([#25016](https://github.com/apache/pulsar/pull/25016))\r\n- [fix][broker]Incorrect backlog that is larger than expected ([#25037](https://github.com/apache/pulsar/pull/25037))\r\n- [fix][broker]Infinitely failed to delete topic if the first time failed and enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073))\r\n- [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))\r\n- [fix][broker]Topic deleting failed after removed local cluster from namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114))\r\n- [fix][broker]Wrong backlog: expected 0 but got 1 ([#24938](https://github.com/apache/pulsar/pull/24938))\r\n- [fix][admin] Fix offload policy incompatible issue. ([#25149](https://github.com/apache/pulsar/pull/25149))\r\n- [fix][admin] Refactor bookie affinity group sync operations to async in rest api ([#25050](https://github.com/apache/pulsar/pull/25050))\r\n- [fix][ml] Fix cursor backlog size to account for individual acks ([#25089](https://github.com/apache/pulsar/pull/25089))\r\n- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race condition ([#25177](https://github.com/apache/pulsar/pull/25177))\r\n- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is encountered ([#25148](https://github.com/apache/pulsar/pull/25148))\r\n- [fix][meta] Metadata cache refresh might not take effect ([#25246](https://github.com/apache/pulsar/pull/25246))\r\n- [improve][broker] Add idle timeout support for http ([#25224](https://github.com/apache/pulsar/pull/25224))\r\n- [improve][broker] Add strictAuthMethod to require explicit authentication method ([#25185](https://github.com/apache/pulsar/pull/25185))\r\n- [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))\r\n- [improve][broker] Change the log level from error to info when throwing NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130))\r\n- [improve][broker] Enhance logging for adding schema failures in ServerCnx ([#25048](https://github.com/apache/pulsar/pull/25048))\r\n- [improve][broker] Ensure metadata session state visibility and improve Unstable observability for ServiceUnitStateChannelImpl ([#25132](https://github.com/apache/pulsar/pull/25132))\r\n- [improve][broker] Fix replicated subscriptions race condition with mark delete update and snapshot completion ([#16651](https://github.com/apache/pulsar/pull/16651))\r\n- [improve][broker] Fix thread safety issue in ManagedCursorImpl.removeProperty  ([#25104](https://github.com/apache/pulsar/pull/25104))\r\n- [improve][broker] Give the detail error msg when authenticate failed with AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))\r\n- [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))\r\n- [improve][broker] Optimize Reader creation in TopicPoliciesService ([#24658](https://github.com/apache/pulsar/pull/24658))\r\n- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) ([#25070](https://github.com/apache/pulsar/pull/25070))\r\n- [improve][broker] Use atomic counter for ongoing transaction count ([#25053](https://github.com/apache/pulsar/pull/25053))\r\n- [improve][broker]Add test for getting partitioned topic metadata with PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026))\r\n- [improve][broker]Improve error response of failed to delete topic if it has replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975))\r\n- [improve][broker]Remove the warn log that frequently prints ([#25018](https://github.com/apache/pulsar/pull/25018))\r\n- [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))\r\n- [improve][admin] Add counter for marker messages in PersistentTopics.analyzeSubscriptionBacklog() rest api ([#25091](https://github.com/apache/pulsar/pull/25091))\r\n- [improve][meta] PIP-453: Improve the metadata store threading model ([#25187](https://github.com/apache/pulsar/pull/25187))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n\r\n### Client\r\n\r\n- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178))\r\n- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015))\r\n- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008))\r\n- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069))\r\n- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207))\r\n- [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))\r\n- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014))\r\n- [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))\r\n- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229))\r\n- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006))\r\n- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106))\r\n- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))\r\n- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))\r\n- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013))\r\n- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172))\r\n- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944))\r\n- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232))\r\n- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024))\r\n- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait for completion in closing the cache ([#25140](https://github.com/apache/pulsar/pull/25140))\r\n- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))\r\n- [feat][io] implement pip-297 for jdbc sinks ([#25195](https://github.com/apache/pulsar/pull/25195))\r\n- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and upgrade RabbitMQ client version ([#25085](https://github.com/apache/pulsar/pull/25085))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Close client connection immediately when credentials expire and forwardAuthorizationCredentials is disabled ([#25179](https://github.com/apache/pulsar/pull/25179))\r\n- [fix][proxy] Fix memory leaks in ParserProxyHandler ([#25142](https://github.com/apache/pulsar/pull/25142))\r\n- [improve][proxy] Add regression tests for package upload with 'Expect: 100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))\r\n- [fix][cli] Fix output of --print-metadata in cli consume ([#25056](https://github.com/apache/pulsar/pull/25056))\r\n- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async operations complete ([#25051](https://github.com/apache/pulsar/pull/25051))\r\n- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim ([#25197](https://github.com/apache/pulsar/pull/25197))\r\n- [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))\r\n- [improve][misc]introduce log4j Console appender ConsoleJson ([#25034](https://github.com/apache/pulsar/pull/25034))\r\n- [improve] Eliminate unnecessary duplicate schema lookups for partitioned topics in client and geo-replication ([#25011](https://github.com/apache/pulsar/pull/25011))\r\n\r\n### Tests & CI\r\n\r\n- [improve][build] Upgrade errorprone to 2.45.0 version ([#25054](https://github.com/apache/pulsar/pull/25054))\r\n- [improve][build] Upgrade Testcontainers to 1.21.3 ([#24982](https://github.com/apache/pulsar/pull/24982))\r\n- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 ([#25084](https://github.com/apache/pulsar/pull/25084))\r\n- [fix][build] Remove Confluent and Restlet maven repositories from top level pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))\r\n- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 ([#25186](https://github.com/apache/pulsar/pull/25186))\r\n- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests ([#25101](https://github.com/apache/pulsar/pull/25101))\r\n- [fix][test] Fix Mockito stubbing race in TopicListServiceTest ([#25227](https://github.com/apache/pulsar/pull/25227))\r\n- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage ([#25247](https://github.com/apache/pulsar/pull/25247))\r\n- [fix][test] fix testBatchMetadataStoreMetrics. ([#25241](https://github.com/apache/pulsar/pull/25241))\r\n- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin ([#24871](https://github.com/apache/pulsar/pull/24871))\r\n- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test ([#25032](https://github.com/apache/pulsar/pull/25032))\r\n- [fix][test] Wait for txn.abort() to complete to avoid AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() flaky test ([#25125](https://github.com/apache/pulsar/pull/25125))\r\n- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics ([#25216](https://github.com/apache/pulsar/pull/25216))\r\n- [improve][test] Use Oxia project docker container for integration tests ([#24995](https://github.com/apache/pulsar/pull/24995))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.1.2...v4.1.3)."},{"url":"https://api.github.com/repos/apache/pulsar/releases/288405804","assets_url":"https://api.github.com/repos/apache/pulsar/releases/288405804/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/288405804/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.9","id":288405804,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4RMLks","tag_name":"v4.0.9","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-02-19T19:47:22Z","updated_at":"2026-02-19T20:09:48Z","published_at":"2026-02-19T19:48:13Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.9","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.9","body":"#### 2026-02-19\r\n\r\n### Library updates\r\n\r\n- [improve][broker] Upgrade bookkeeper to 4.17.3 ([#25166](https://github.com/apache/pulsar/pull/25166))\r\n- [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))\r\n- [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))\r\n- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024))\r\n- [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))\r\n- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095))\r\n- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095))\r\n- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 ([#25102](https://github.com/apache/pulsar/pull/25102))\r\n- [fix][sec] Upgrade Netty to 4.1.130.Final ([#25078](https://github.com/apache/pulsar/pull/25078))\r\n- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 ([#25206](https://github.com/apache/pulsar/pull/25206))\r\n- [fix][sec] Upgrade vertx to address CVE-2026-1002 ([#25152](https://github.com/apache/pulsar/pull/25152))\r\n- [fix][test] Upgrade docker-java to 3.7.0 ([#25209](https://github.com/apache/pulsar/pull/25209))\r\n- [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))\r\n- [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))\r\n- [improve][misc] Upgrade snappy version to 1.1.10.8 ([#25182](https://github.com/apache/pulsar/pull/25182))\r\n- [feat][meta] upgrade oxia version to 0.7.2 ([#24976](https://github.com/apache/pulsar/pull/24976))\r\n- [fix] Upgrade gson to 2.13.2 ([#25022](https://github.com/apache/pulsar/pull/25022))\r\n- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983))\r\n- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 ([#24985](https://github.com/apache/pulsar/pull/24985))\r\n- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232))\r\n- [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))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Add schema version in rest produce api ([#25004](https://github.com/apache/pulsar/pull/25004))\r\n- [fix][broker] Avoid split non-existent bundle ([#25031](https://github.com/apache/pulsar/pull/25031))\r\n- [fix][broker] Fence reset cursor by timestamp to avoid concurrent timestamp-based position lookups ([#25151](https://github.com/apache/pulsar/pull/25151))\r\n- [fix][broker] Fix chunked message loss when no consumers are available ([#25077](https://github.com/apache/pulsar/pull/25077))\r\n- [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))\r\n- [fix][broker] Fix creation of replicated subscriptions for partitioned topics ([#24997](https://github.com/apache/pulsar/pull/24997))\r\n- [fix][broker] Fix cursor position persistence in ledger trimming ([#25087](https://github.com/apache/pulsar/pull/25087))\r\n- [fix][broker] Fix httpProxyTimeout config ([#25223](https://github.com/apache/pulsar/pull/25223))\r\n- [fix][broker] Fix incomplete futures in topic property update/delete methods ([#25228](https://github.com/apache/pulsar/pull/25228))\r\n- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication ([#25012](https://github.com/apache/pulsar/pull/25012))\r\n- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous async mark delete properties in race condition ([#25165](https://github.com/apache/pulsar/pull/25165))\r\n- [fix][broker] Fix markDeletedPosition race condition in ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method ([#25110](https://github.com/apache/pulsar/pull/25110))\r\n- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when subscription prefix doesn't match. ([#25121](https://github.com/apache/pulsar/pull/25121))\r\n- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn by returning a valid Position ([#25039](https://github.com/apache/pulsar/pull/25039))\r\n- [fix][broker] fix prepareInitPoliciesCacheAsync in SystemTopicBasedTopicPoliciesService ([#24980](https://github.com/apache/pulsar/pull/24980))\r\n- [fix][broker] Fix regex matching of namespace name which might contain a regex char ([#25136](https://github.com/apache/pulsar/pull/25136))\r\n- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null value ([#25231](https://github.com/apache/pulsar/pull/25231))\r\n- [fix][broker] Fix various error-prone detected errors mainly in logging and String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))\r\n- [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))\r\n- [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))\r\n- [fix][broker] Prevent missed topic changes in topic watchers and schedule periodic refresh with patternAutoDiscoveryPeriod interval ([#25188](https://github.com/apache/pulsar/pull/25188))\r\n- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the same subscription ([#25047](https://github.com/apache/pulsar/pull/25047))\r\n- [fix][broker]Fix ledgerHandle failed to read by using new BK API ([#25199](https://github.com/apache/pulsar/pull/25199))\r\n- [fix][broker]Fix memory leak when using a customized ManagedLedger implementation ([#25016](https://github.com/apache/pulsar/pull/25016))\r\n- [fix][broker]Incorrect backlog that is larger than expected ([#25037](https://github.com/apache/pulsar/pull/25037))\r\n- [fix][broker]Infinitely failed to delete topic if the first time failed and enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073))\r\n- [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))\r\n- [fix][broker]Topic deleting failed after removed local cluster from namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114))\r\n- [fix][broker]Wrong backlog: expected 0 but got 1 ([#24938](https://github.com/apache/pulsar/pull/24938))\r\n- [fix][admin] Fix offload policy incompatible issue. ([#25149](https://github.com/apache/pulsar/pull/25149))\r\n- [fix][admin] Refactor bookie affinity group sync operations to async in rest api ([#25050](https://github.com/apache/pulsar/pull/25050))\r\n- [fix][ml] Fix cursor backlog size to account for individual acks ([#25089](https://github.com/apache/pulsar/pull/25089))\r\n- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race condition ([#25177](https://github.com/apache/pulsar/pull/25177))\r\n- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is encountered ([#25148](https://github.com/apache/pulsar/pull/25148))\r\n- [fix][meta] Metadata cache refresh might not take effect ([#25246](https://github.com/apache/pulsar/pull/25246))\r\n- [improve][broker] Add idle timeout support for http ([#25224](https://github.com/apache/pulsar/pull/25224))\r\n- [improve][broker] Add strictAuthMethod to require explicit authentication method ([#25185](https://github.com/apache/pulsar/pull/25185))\r\n- [improve][broker] Change the log level from error to info when throwing NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130))\r\n- [improve][broker] Enhance logging for adding schema failures in ServerCnx ([#25048](https://github.com/apache/pulsar/pull/25048))\r\n- [improve][broker] Ensure metadata session state visibility and improve Unstable observability for ServiceUnitStateChannelImpl ([#25132](https://github.com/apache/pulsar/pull/25132))\r\n- [improve][broker] Fix replicated subscriptions race condition with mark delete update and snapshot completion ([#16651](https://github.com/apache/pulsar/pull/16651))\r\n- [improve][broker] Fix thread safety issue in ManagedCursorImpl.removeProperty  ([#25104](https://github.com/apache/pulsar/pull/25104))\r\n- [improve][broker] Give the detail error msg when authenticate failed with AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))\r\n- [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))\r\n- [improve][broker] Optimize Reader creation in TopicPoliciesService ([#24658](https://github.com/apache/pulsar/pull/24658))\r\n- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) ([#25070](https://github.com/apache/pulsar/pull/25070))\r\n- [improve][broker] Use atomic counter for ongoing transaction count ([#25053](https://github.com/apache/pulsar/pull/25053))\r\n- [improve][broker]Add test for getting partitioned topic metadata with PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026))\r\n- [improve][broker]Improve error response of failed to delete topic if it has replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975))\r\n- [improve][broker]Remove the warn log that frequently prints ([#25018](https://github.com/apache/pulsar/pull/25018))\r\n- [improve][admin] Add counter for marker messages in PersistentTopics.analyzeSubscriptionBacklog() rest api ([#25091](https://github.com/apache/pulsar/pull/25091))\r\n- [improve][meta] PIP-453: Improve the metadata store threading model ([#25187](https://github.com/apache/pulsar/pull/25187))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n- [fix][broker]Avoid read a entry that entry id is -1 when calling getLastMessagePublishTime ([#24579](https://github.com/apache/pulsar/pull/24579))\r\n- [fix][admin] Fix asyncGetRequest to handle 204 ([#25124](https://github.com/apache/pulsar/pull/25124))\r\n- [improve][broker] Cache last publish timestamp for idle topics to reduce storage reads ([#24825](https://github.com/apache/pulsar/pull/24825))\r\n- [improve][broker][pip-431] PIP-431: Add Creation and Last Publish Timestamps to Topic Stats ([#24471](https://github.com/apache/pulsar/pull/24471))\r\n- [feat][admin] PIP-415: Support getting message ID by index ([#24222](https://github.com/apache/pulsar/pull/24222))\r\n\r\n### Client\r\n\r\n- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. ([#25178](https://github.com/apache/pulsar/pull/25178))\r\n- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015))\r\n- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008))\r\n- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069))\r\n- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207))\r\n- [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))\r\n- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014))\r\n- [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))\r\n- [fix][client] Send all chunkMessageIds to broker for redelivery ([#25229](https://github.com/apache/pulsar/pull/25229))\r\n- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006))\r\n- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106))\r\n- [improve][client] Add null checks for MessageAcknowledger methods to prevent NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))\r\n- [improve][client] Make authorization server metadata path configurable in AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))\r\n- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013))\r\n- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests when using retry and DLQ topics. ([#25172](https://github.com/apache/pulsar/pull/25172))\r\n- [feat][client] oauth2 trustcerts file and timeouts ([#24944](https://github.com/apache/pulsar/pull/24944))\r\n- [improve] Upgrade Netty to 4.1.131.Final ([#25232](https://github.com/apache/pulsar/pull/25232))\r\n- [fix][sec] Eliminate commons-collections dependency ([#25024](https://github.com/apache/pulsar/pull/25024))\r\n- [improve] Upgrade Apache Commons library versions ([#24983](https://github.com/apache/pulsar/pull/24983))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait for completion in closing the cache ([#25140](https://github.com/apache/pulsar/pull/25140))\r\n- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))\r\n- [feat][io] implement pip-297 for jdbc sinks ([#25195](https://github.com/apache/pulsar/pull/25195))\r\n- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and upgrade RabbitMQ client version ([#25085](https://github.com/apache/pulsar/pull/25085))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Close client connection immediately when credentials expire and forwardAuthorizationCredentials is disabled ([#25179](https://github.com/apache/pulsar/pull/25179))\r\n- [fix][proxy] Fix memory leaks in ParserProxyHandler ([#25142](https://github.com/apache/pulsar/pull/25142))\r\n- [improve][proxy] Add regression tests for package upload with 'Expect: 100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))\r\n- [fix][cli] Fix output of --print-metadata in cli consume ([#25056](https://github.com/apache/pulsar/pull/25056))\r\n- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async operations complete ([#25051](https://github.com/apache/pulsar/pull/25051))\r\n- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim ([#25197](https://github.com/apache/pulsar/pull/25197))\r\n- [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))\r\n- [improve][misc]introduce log4j Console appender ConsoleJson ([#25034](https://github.com/apache/pulsar/pull/25034))\r\n- [improve] Eliminate unnecessary duplicate schema lookups for partitioned topics in client and geo-replication ([#25011](https://github.com/apache/pulsar/pull/25011))\r\n- [fix][cli] Print result of GetMessageIdByIndex command ([#24446](https://github.com/apache/pulsar/pull/24446))\r\n- [improve][pip] PIP-453: Improve the metadata store threading model ([#25173](https://github.com/apache/pulsar/pull/25173))\r\n- [fix][branch-4.0] Fix checkstyle\r\n- [fix][branch-4.0] Fix checkstyle issue in commit 83503521\r\n- [fix][branch-4.0] Remove unnecessary files added in 83503521\r\n- [feat] PIP-442: Add memory limits for CommandGetTopicsOfNamespace ([#24833](https://github.com/apache/pulsar/pull/24833))\r\n\r\n### Tests & CI\r\n\r\n- [improve][build] Upgrade errorprone to 2.45.0 version ([#25054](https://github.com/apache/pulsar/pull/25054))\r\n- [improve][build] Upgrade Testcontainers to 1.21.3 ([#24982](https://github.com/apache/pulsar/pull/24982))\r\n- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 ([#25084](https://github.com/apache/pulsar/pull/25084))\r\n- [fix][build] Remove Confluent and Restlet maven repositories from top level pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))\r\n- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 ([#25186](https://github.com/apache/pulsar/pull/25186))\r\n- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests ([#25101](https://github.com/apache/pulsar/pull/25101))\r\n- [fix][test] Fix Mockito stubbing race in TopicListServiceTest ([#25227](https://github.com/apache/pulsar/pull/25227))\r\n- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage ([#25247](https://github.com/apache/pulsar/pull/25247))\r\n- [fix][test] fix testBatchMetadataStoreMetrics. ([#25241](https://github.com/apache/pulsar/pull/25241))\r\n- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin ([#24871](https://github.com/apache/pulsar/pull/24871))\r\n- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test ([#25032](https://github.com/apache/pulsar/pull/25032))\r\n- [fix][test] Wait for txn.abort() to complete to avoid AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() flaky test ([#25125](https://github.com/apache/pulsar/pull/25125))\r\n- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics ([#25216](https://github.com/apache/pulsar/pull/25216))\r\n- [improve][test] Use Oxia project docker container for integration tests ([#24995](https://github.com/apache/pulsar/pull/24995))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.8...v4.0.9)."},{"url":"https://api.github.com/repos/apache/pulsar/releases/286759230","assets_url":"https://api.github.com/repos/apache/pulsar/releases/286759230/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/286759230/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.16","id":286759230,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4RF5k-","tag_name":"v3.0.16","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2026-02-16T09:24:15Z","updated_at":"2026-02-16T09:39:56Z","published_at":"2026-02-16T09:24:53Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.16","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.16","body":"#### 2026-02-16\r\n\r\n### Library updates\r\n\r\n- [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))\r\n- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 ([#25095](https://github.com/apache/pulsar/pull/25095))\r\n- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 ([#25102](https://github.com/apache/pulsar/pull/25102))\r\n- [fix][sec] Upgrade Netty to 4.1.130.Final ([#25078](https://github.com/apache/pulsar/pull/25078))\r\n- [fix][sec] Upgrade vertx to address CVE-2026-1002 ([#25152](https://github.com/apache/pulsar/pull/25152))\r\n- [fix][test] Upgrade docker-java to 3.7.0 ([#25209](https://github.com/apache/pulsar/pull/25209))\r\n- [fix] Upgrade gson to 2.13.2 ([#25022](https://github.com/apache/pulsar/pull/25022))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Fix chunked message loss when no consumers are available ([#25077](https://github.com/apache/pulsar/pull/25077))\r\n- [fix][broker] Fix creation of replicated subscriptions for partitioned topics ([#24997](https://github.com/apache/pulsar/pull/24997))\r\n- [fix][broker] Fix httpProxyTimeout config ([#25223](https://github.com/apache/pulsar/pull/25223))\r\n- [fix][broker] Fix incomplete futures in topic property update/delete methods ([#25228](https://github.com/apache/pulsar/pull/25228))\r\n- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication ([#25012](https://github.com/apache/pulsar/pull/25012))\r\n- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when subscription prefix doesn't match. ([#25121](https://github.com/apache/pulsar/pull/25121))\r\n- [fix][broker] Fix regex matching of namespace name which might contain a regex char ([#25136](https://github.com/apache/pulsar/pull/25136))\r\n- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null value ([#25231](https://github.com/apache/pulsar/pull/25231))\r\n- [fix][broker] Fix various error-prone detected errors mainly in logging and String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))\r\n- [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))\r\n- [fix][broker] Use `poll` instead `remove` to avoid `NoSuchElementException` ([#24933](https://github.com/apache/pulsar/pull/24933))\r\n- [fix][broker][branch-3.0] fix prepareInitPoliciesCacheAsync in SystemTopicBasedTopicPoliciesService ([#24978](https://github.com/apache/pulsar/pull/24978))\r\n- [fix][admin] Fix asyncGetRequest to handle 204 ([#25124](https://github.com/apache/pulsar/pull/25124))\r\n- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race condition ([#25177](https://github.com/apache/pulsar/pull/25177))\r\n- [fix][meta] Use `getChildrenFromStore` to read children data to avoid lost data ([#24665](https://github.com/apache/pulsar/pull/24665))\r\n- [improve][broker] Give the detail error msg when authenticate failed with AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))\r\n- [improve][ml] Optimize ledger opening by skipping fully acknowledged ledgers ([#24655](https://github.com/apache/pulsar/pull/24655))\r\n- [improve][meta] Improve fault tolerance of blocking calls by supporting timeout ([#21028](https://github.com/apache/pulsar/pull/21028))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n\r\n### Client\r\n\r\n- [fix][client] Fix AutoProduceBytesSchema.clone() method ([#25015](https://github.com/apache/pulsar/pull/25015))\r\n- [fix][client] Fix double recycling of the message in isValidConsumerEpoch method ([#25008](https://github.com/apache/pulsar/pull/25008))\r\n- [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method ([#25069](https://github.com/apache/pulsar/pull/25069))\r\n- [fix][client] Fix producer synchronous retry handling in failPendingMessages method ([#25207](https://github.com/apache/pulsar/pull/25207))\r\n- [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))\r\n- [fix][client] Fix thread-safety of AutoProduceBytesSchema ([#25014](https://github.com/apache/pulsar/pull/25014))\r\n- [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))\r\n- [fix][client] Skip processing messages in the listener when the consumer has been closed ([#25006](https://github.com/apache/pulsar/pull/25006))\r\n- [fix][client]Producer stuck or geo-replication stuck due to wrong value of message.numMessagesInBatch ([#25106](https://github.com/apache/pulsar/pull/25106))\r\n- [improve][client] Test no exception could be thrown for invalid epoch in message ([#25013](https://github.com/apache/pulsar/pull/25013))\r\n- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine closed already ([#24986](https://github.com/apache/pulsar/pull/24986))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait for completion in closing the cache ([#25140](https://github.com/apache/pulsar/pull/25140))\r\n- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Close client connection immediately when credentials expire and forwardAuthorizationCredentials is disabled ([#25179](https://github.com/apache/pulsar/pull/25179))\r\n- [fix][proxy] Fix memory leaks in ParserProxyHandler ([#25142](https://github.com/apache/pulsar/pull/25142))\r\n- [improve][proxy] Add regression tests for package upload with 'Expect: 100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))\r\n- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim ([#25197](https://github.com/apache/pulsar/pull/25197))\r\n- [improve] Eliminate unnecessary duplicate schema lookups for partitioned topics in client and geo-replication ([#25011](https://github.com/apache/pulsar/pull/25011))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Remove Confluent and Restlet maven repositories from top level pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))\r\n- [improve][test][branch-3.0] Add test for issue [#25220](https://github.com/apache/pulsar/pull/25220)\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.15...v3.0.16).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/262870815","assets_url":"https://api.github.com/repos/apache/pulsar/releases/262870815/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/262870815/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.1.2","id":262870815,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4Pqxcf","tag_name":"v4.1.2","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-11-17T07:57:11Z","updated_at":"2025-11-17T08:41:05Z","published_at":"2025-11-17T07:58:34Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.1.2","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.1.2","body":"#### 2025-11-17\r\n\r\n### Library updates\r\n\r\n- [fix] Update gRPC to 1.75.0 ([#24813](https://github.com/apache/pulsar/pull/24813))\r\n- [improve][misc] Upgrade Netty to 4.1.128.Final ([#24911](https://github.com/apache/pulsar/pull/24911))\r\n- [improve] Upgrade Alpine base image to 3.22 version ([#24840](https://github.com/apache/pulsar/pull/24840))\r\n- [improve][ml] Upgrade Oxia client to 0.7.0 ([#24824](https://github.com/apache/pulsar/pull/24824))\r\n- [fix][sec] Added Exclusions for tomcat-embed-core and derby and override mina-core to remediate CVEs ([#24949](https://github.com/apache/pulsar/pull/24949))\r\n- [fix][sec] Bump io.vertx:vertx-web from 4.5.10 to 4.5.22 ([#24889](https://github.com/apache/pulsar/pull/24889))\r\n- [fix][sec] Override commons-beanutils and commons-configuration2 to remediate CVEs ([#24936](https://github.com/apache/pulsar/pull/24936))\r\n- [fix][sec] Override kafka-clients in kinesis-kpl-shaded to remediate CVE-2024-31141 and CVE-2025-27817 ([#24935](https://github.com/apache/pulsar/pull/24935))\r\n- [fix][sec] Override nimbus-jose-jwt to remediate CVE-2023-52428 and CVE-2025-53864 ([#24937](https://github.com/apache/pulsar/pull/24937))\r\n- [fix][sec] Update Hbase version to 2.6.3-hadoop3 and exclude Avro from hbase-client to remediate CVEs ([#24953](https://github.com/apache/pulsar/pull/24953))\r\n- [fix][sec] Upgrade BouncyCastle FIPS to 2.0.10 to remediate CVE-2025-8916 ([#24923](https://github.com/apache/pulsar/pull/24923))\r\n- [fix][sec] Upgrade hadoop3 version from 3.4.0 to 3.4.1 ([#24950](https://github.com/apache/pulsar/pull/24950))\r\n- [fix][sec] Upgrade Jetty to 9.4.58.v20250814 to address CVE-2025-5115 ([#24897](https://github.com/apache/pulsar/pull/24897))\r\n- [fix][sec] Upgrade Spring to 6.2.12 to remediate CVE-2025-22233 and CVE-2025-41249 ([#24903](https://github.com/apache/pulsar/pull/24903))\r\n- [improve][io] Upgrade Debezium version to 3.2.4.Final ([#24896](https://github.com/apache/pulsar/pull/24896))\r\n- [improve][ci] Upgrade GitHub Actions workflows to use ubuntu-24.04 ([#24841](https://github.com/apache/pulsar/pull/24841))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Allow intermittent error from topic policies service when loading topics ([#24829](https://github.com/apache/pulsar/pull/24829))\r\n- [fix][broker] AvgShedder comparison error ([#24954](https://github.com/apache/pulsar/pull/24954))\r\n- [fix][broker] Avoid recursive update in ConcurrentHashMap during policy cache cleanup ([#24939](https://github.com/apache/pulsar/pull/24939))\r\n- [fix][broker] BacklogMessageAge is not reset when cursor mdPosition is on an open ledger ([#24915](https://github.com/apache/pulsar/pull/24915))\r\n- [fix][broker] Ensure LoadSheddingTask is scheduled after metadata service is available again ([#24838](https://github.com/apache/pulsar/pull/24838))\r\n- [fix][broker] ExtensibleLoadManager: handle SessionReestablished and Reconnected events to re-register broker metadata ([#24932](https://github.com/apache/pulsar/pull/24932))\r\n- [fix][broker] Fix bug in PersistentMessageExpiryMonitor which blocked further expirations ([#24941](https://github.com/apache/pulsar/pull/24941))\r\n- [fix][broker] fix getMaxReadPosition in TransactionBufferDisable should return latest ([#24898](https://github.com/apache/pulsar/pull/24898))\r\n- [fix][broker] Fix incorrect topic loading latency metric and timeout might not be respected ([#24785](https://github.com/apache/pulsar/pull/24785))\r\n- [fix][broker] Fix stack overflow caused by race condition when closing a connection ([#24934](https://github.com/apache/pulsar/pull/24934))\r\n- [fix][broker] Fix totalAvailablePermits not reduced when removing consumer from non-persistent dispatcher ([#24885](https://github.com/apache/pulsar/pull/24885))\r\n- [fix][broker] Fix wrong behaviour when using namespace.allowed_clusters, such as namespace deletion and namespace policies updating ([#24860](https://github.com/apache/pulsar/pull/24860))\r\n- [fix][broker] Flaky-test: ExtensibleLoadManagerImplTest.testDisableBroker ([#24770](https://github.com/apache/pulsar/pull/24770))\r\n- [fix][broker] Flaky-test: TopicTransactionBufferTest.testMessagePublishInOrder ([#24826](https://github.com/apache/pulsar/pull/24826))\r\n- [fix][broker] Run ResourceGroup tasks only when tenants/namespaces registered ([#24859](https://github.com/apache/pulsar/pull/24859))\r\n- [fix][broker] Stop to retry to read entries if the replicator has terminated ([#24880](https://github.com/apache/pulsar/pull/24880))\r\n- [fix][broker] Trigger topic creation event only once for non-existent topic ([#24802](https://github.com/apache/pulsar/pull/24802))\r\n- [fix][broker] Use `poll` instead `remove` to avoid `NoSuchElementException` ([#24933](https://github.com/apache/pulsar/pull/24933))\r\n- [fix][broker]Leaving orphan schemas and topic-level policies after partitioned topic is deleted by GC ([#24971](https://github.com/apache/pulsar/pull/24971))\r\n- [fix][broker]Transactional messages can never be sent successfully if concurrently taking transaction buffer snapshot ([#24945](https://github.com/apache/pulsar/pull/24945))\r\n- [fix][admin] Set local policies overwrites \"number of bundles\" passed during namespace creation ([#24762](https://github.com/apache/pulsar/pull/24762))\r\n- [fix][ml] Fix `getNumberOfEntries` may point to deleted ledger ([#24852](https://github.com/apache/pulsar/pull/24852))\r\n- [fix][ml] Fix ledger trimming race causing cursor to point to deleted ledgers ([#24855](https://github.com/apache/pulsar/pull/24855))\r\n- [fix][ml] PIP-430: Fix concurrency issue in MessageMetadata caching and improve caching ([#24836](https://github.com/apache/pulsar/pull/24836))\r\n- [fix]Fixed getChildren('/') on Oxia based provider ([#24863](https://github.com/apache/pulsar/pull/24863))\r\n- [improve][broker] Add tests for using absolute FQDN for advertisedAddress and remove extra dot from brokerId ([#24787](https://github.com/apache/pulsar/pull/24787))\r\n- [improve][broker] Cache last publish timestamp for idle topics to reduce storage reads ([#24825](https://github.com/apache/pulsar/pull/24825))\r\n- [improve][broker] Don't log an error when updatePartitionedTopic is called on a non-partitioned topic ([#24943](https://github.com/apache/pulsar/pull/24943))\r\n- [improve][broker] Optimize lookup result warn log ([#24942](https://github.com/apache/pulsar/pull/24942))\r\n- [improve][broker] Part-1 of PIP-434: Expose Netty channel configuration WRITE_BUFFER_WATER_MARK to pulsar conf and pause receive requests when channel is unwritable ([#24423](https://github.com/apache/pulsar/pull/24423))\r\n- [improve][broker] Part-2 of PIP-434: Use ServerCnxThrottleTracker, instead of modifying channel.readable directly ([#24799](https://github.com/apache/pulsar/pull/24799))\r\n- [improve][broker] PIP-434: add configurations to broker.conf ([#24800](https://github.com/apache/pulsar/pull/24800))\r\n- [improve][broker] Reduce the broker close time to avoid useless wait for event loop shutdown ([#24895](https://github.com/apache/pulsar/pull/24895))\r\n- [improve][broker] Replace isServiceUnitActiveAsync with checkTopicNsOwnership ([#24780](https://github.com/apache/pulsar/pull/24780))\r\n- [improve][broker]Call scheduleAtFixedRateNonConcurrently for scheduled tasks, instead of scheduleAtFixedRate ([#24596](https://github.com/apache/pulsar/pull/24596))\r\n- [improve][broker]Improve NamespaceService log that is printed when cluster was removed ([#24801](https://github.com/apache/pulsar/pull/24801))\r\n- [improve][broker]Skip to mark delete if the target position of expira… ([#24881](https://github.com/apache/pulsar/pull/24881))\r\n- [fix][txn] fix concurrent error cause txn stuck in TransactionBufferHandlerImpl#endTxn ([#23551](https://github.com/apache/pulsar/pull/23551))\r\n- [cleanup][broker] Remove unused configuration maxMessageSizeCheckIntervalInSeconds ([#24958](https://github.com/apache/pulsar/pull/24958))\r\n- [feat][monitor] Add ML write latency histogram and entry size histogram as OTel metrics ([#24815](https://github.com/apache/pulsar/pull/24815))\r\n- [feat][monitor] Add publish latency histogram as OTel metrics ([#24810](https://github.com/apache/pulsar/pull/24810))\r\n- [feat] PIP-442: Add memory limits for CommandGetTopicsOfNamespace ([#24833](https://github.com/apache/pulsar/pull/24833))\r\n\r\n### Client\r\n\r\n- [fix][client] Add description method to ClientBuilder ([#24728](https://github.com/apache/pulsar/pull/24728))\r\n- [fix][client] Fix deduplication for getPartitionedTopicMetadata to include method parameters ([#24965](https://github.com/apache/pulsar/pull/24965))\r\n- [fix][client] Fix getPendingQueueSize for PartitionedTopicProducerStatsRecorderImpl: avoid NPE and implement aggregation ([#24830](https://github.com/apache/pulsar/pull/24830))\r\n- [fix][client] Fix PulsarAdmin description check and add test ([#24734](https://github.com/apache/pulsar/pull/24734))\r\n- [fix][client] Fix thread leak in reloadLookUp method which is used by ServiceUrlProvider ([#24794](https://github.com/apache/pulsar/pull/24794))\r\n- [fix][client] Make auto partitions update work for old brokers without PIP-344 ([#24822](https://github.com/apache/pulsar/pull/24822))\r\n- [improve][client] Allow adding custom description to User-Agent header ([#24729](https://github.com/apache/pulsar/pull/24729))\r\n- [improve][client] Deduplicate getTopicsUnderNamespace in BinaryProtoLookupService ([#24962](https://github.com/apache/pulsar/pull/24962))\r\n- [improve][client] PIP-420: Update the schema ID format ([#24798](https://github.com/apache/pulsar/pull/24798))\r\n- [improve][client]Add null check for Pulsar client clock configuration ([#24848](https://github.com/apache/pulsar/pull/24848))\r\n- [feat][client] Implement PIP-234 for sharing thread pools and DNS resolver/cache across multiple Pulsar Client instances ([#24790](https://github.com/apache/pulsar/pull/24790))\r\n- [feat][client] PIP-234: Support shared resources in PulsarAdmin to reduce thread usage ([#24893](https://github.com/apache/pulsar/pull/24893))\r\n- [improve][client/broker] Add DnsResolverGroup to share DNS cache across multiple PulsarClient instances ([#24784](https://github.com/apache/pulsar/pull/24784))\r\n- [fix] Fix mixed lookup/partition metadata requests causing reliability issues and incorrect responses ([#24832](https://github.com/apache/pulsar/pull/24832))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [improve][fn] Use PulsarByteBufAllocator.DEFAULT instead of ByteBufAllocator.DEFAULT ([#24952](https://github.com/apache/pulsar/pull/24952))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Fix maven deploy with maven-source-plugin 3.3.1 ([#24811](https://github.com/apache/pulsar/pull/24811))\r\n- [fix][build] Remove invalid profile in settings.xml that caused gpg signing to fail ([#24812](https://github.com/apache/pulsar/pull/24812))\r\n- [fix][test] Add Delta Tolerance in Double-Precision Assertions to Fix Rounding Flakiness ([#24972](https://github.com/apache/pulsar/pull/24972))\r\n- [fix][test] BacklogQuotaManagerTest.backlogsAgeMetricsNoPreciseWithoutBacklogQuota handle empty /metrics scrape ([#24887](https://github.com/apache/pulsar/pull/24887))\r\n- [fix][test] Fix flaky KeySharedSubscriptionBrokerCacheTest.testReplayQueueReadsGettingCached ([#24955](https://github.com/apache/pulsar/pull/24955))\r\n- [fix][test] Fix flaky LookupPropertiesTest.testConcurrentLookupProperties ([#24854](https://github.com/apache/pulsar/pull/24854))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testProducerRateLimit ([#24951](https://github.com/apache/pulsar/pull/24951))\r\n- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed ([#24904](https://github.com/apache/pulsar/pull/24904))\r\n- [fix][test] Fix flaky SingleThreadNonConcurrentFixedRateSchedulerTest.testPeriodicTaskCancellation ([#24823](https://github.com/apache/pulsar/pull/24823))\r\n- [fix][test] Fix flaky SubscriptionSeekTest.testSeekWillNotEncounteredFencedError by counting subscription is fenced only after seek ([#24865](https://github.com/apache/pulsar/pull/24865))\r\n- [fix][test] Fix invalid test NonPersistentTopicTest.testProducerRateLimit ([#24957](https://github.com/apache/pulsar/pull/24957))\r\n- [fix][test] Fixed nondeterministic JSON ordering in multiple tests ([#24821](https://github.com/apache/pulsar/pull/24821))\r\n- [fix][test] Fixed Nondeterministic Ordering in SchemaInfoTest ([#24969](https://github.com/apache/pulsar/pull/24969))\r\n- [fix][test] Fixed ResponseBody Check in Test Helper ([#24872](https://github.com/apache/pulsar/pull/24872))\r\n- [fix][test] Made ProtobufNativeSchemaTest.testSchema order-independent ([#24805](https://github.com/apache/pulsar/pull/24805))\r\n- [fix][test] Made ProtobufSchemaTest.testParsingInfoProperty order-independent ([#24807](https://github.com/apache/pulsar/pull/24807))\r\n- [fix][test] Stabilize PublishRateLimiterOverconsumingTest by aligning measurement and using adjacent 2-sec averages ([#24864](https://github.com/apache/pulsar/pull/24864))\r\n- [fix][test] Stabilize SequenceIdWithErrorTest by fencing after first publish to avoid empty-ledger deletion and send timeout ([#24861](https://github.com/apache/pulsar/pull/24861))\r\n- [fix][test] Stabilize testMsgDropStat by reliably triggering non-persistent publisher drop ([#24929](https://github.com/apache/pulsar/pull/24929))\r\n- [fix][test]fix flaky SimpleProducerConsumerTest.testReceiveAsyncCompletedWhenClosing ([#24858](https://github.com/apache/pulsar/pull/24858))\r\n- [improve][ci] Move replication tests to new group Broker Group 5 in Pulsar CI ([#24917](https://github.com/apache/pulsar/pull/24917))\r\n- [improve][test] Disable flaky PatternConsumerBackPressureTest until the problem is fixed ([#24948](https://github.com/apache/pulsar/pull/24948))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.1.1...v4.1.2).","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/262870815/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/262870725","assets_url":"https://api.github.com/repos/apache/pulsar/releases/262870725/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/262870725/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.8","id":262870725,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4PqxbF","tag_name":"v4.0.8","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-11-17T07:57:03Z","updated_at":"2025-11-17T08:41:28Z","published_at":"2025-11-17T07:58:06Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.8","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.8","body":"#### 2025-11-17\r\n\r\n### Library updates\r\n\r\n- [fix] Update gRPC to 1.75.0 ([#24813](https://github.com/apache/pulsar/pull/24813))\r\n- [improve][misc] Upgrade Netty to 4.1.128.Final ([#24911](https://github.com/apache/pulsar/pull/24911))\r\n- [improve][ml] Upgrade Oxia client to 0.7.0 ([#24824](https://github.com/apache/pulsar/pull/24824))\r\n- [fix][sec] Added Exclusions for tomcat-embed-core and derby and override mina-core to remediate CVEs ([#24949](https://github.com/apache/pulsar/pull/24949))\r\n- [fix][sec] Bump io.vertx:vertx-web from 4.5.10 to 4.5.22 ([#24889](https://github.com/apache/pulsar/pull/24889))\r\n- [fix][sec] Override commons-beanutils and commons-configuration2 to remediate CVEs ([#24936](https://github.com/apache/pulsar/pull/24936))\r\n- [fix][sec] Override kafka-clients in kinesis-kpl-shaded to remediate CVE-2024-31141 and CVE-2025-27817 ([#24935](https://github.com/apache/pulsar/pull/24935))\r\n- [fix][sec] Override nimbus-jose-jwt to remediate CVE-2023-52428 and CVE-2025-53864 ([#24937](https://github.com/apache/pulsar/pull/24937))\r\n- [fix][sec] Update Hbase version to 2.6.3-hadoop3 and exclude Avro from hbase-client to remediate CVEs ([#24953](https://github.com/apache/pulsar/pull/24953))\r\n- [fix][sec] Upgrade BouncyCastle FIPS to 2.0.10 to remediate CVE-2025-8916 ([#24923](https://github.com/apache/pulsar/pull/24923))\r\n- [fix][sec] Upgrade hadoop3 version from 3.4.0 to 3.4.1 ([#24950](https://github.com/apache/pulsar/pull/24950))\r\n- [fix][sec] Upgrade Jetty to 9.4.58.v20250814 to address CVE-2025-5115 ([#24897](https://github.com/apache/pulsar/pull/24897))\r\n- [fix][sec] Upgrade Spring to 6.2.12 to remediate CVE-2025-22233 and CVE-2025-41249 ([#24903](https://github.com/apache/pulsar/pull/24903))\r\n- [improve][ci] Upgrade GitHub Actions workflows to use ubuntu-24.04 ([#24841](https://github.com/apache/pulsar/pull/24841))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Allow intermittent error from topic policies service when loading topics ([#24829](https://github.com/apache/pulsar/pull/24829))\r\n- [fix][broker] AvgShedder comparison error ([#24954](https://github.com/apache/pulsar/pull/24954))\r\n- [fix][broker] Avoid recursive update in ConcurrentHashMap during policy cache cleanup ([#24939](https://github.com/apache/pulsar/pull/24939))\r\n- [fix][broker] BacklogMessageAge is not reset when cursor mdPosition is on an open ledger ([#24915](https://github.com/apache/pulsar/pull/24915))\r\n- [fix][broker] Ensure LoadSheddingTask is scheduled after metadata service is available again ([#24838](https://github.com/apache/pulsar/pull/24838))\r\n- [fix][broker] ExtensibleLoadManager: handle SessionReestablished and Reconnected events to re-register broker metadata ([#24932](https://github.com/apache/pulsar/pull/24932))\r\n- [fix][broker] Fix bug in PersistentMessageExpiryMonitor which blocked further expirations ([#24941](https://github.com/apache/pulsar/pull/24941))\r\n- [fix][broker] fix getMaxReadPosition in TransactionBufferDisable should return latest ([#24898](https://github.com/apache/pulsar/pull/24898))\r\n- [fix][broker] Fix incorrect topic loading latency metric and timeout might not be respected ([#24785](https://github.com/apache/pulsar/pull/24785))\r\n- [fix][broker] Fix stack overflow caused by race condition when closing a connection ([#24934](https://github.com/apache/pulsar/pull/24934))\r\n- [fix][broker] Fix totalAvailablePermits not reduced when removing consumer from non-persistent dispatcher ([#24885](https://github.com/apache/pulsar/pull/24885))\r\n- [fix][broker] Fix wrong behaviour when using namespace.allowed_clusters, such as namespace deletion and namespace policies updating ([#24860](https://github.com/apache/pulsar/pull/24860))\r\n- [fix][broker] Flaky-test: ExtensibleLoadManagerImplTest.testDisableBroker ([#24770](https://github.com/apache/pulsar/pull/24770))\r\n- [fix][broker] Flaky-test: TopicTransactionBufferTest.testMessagePublishInOrder ([#24826](https://github.com/apache/pulsar/pull/24826))\r\n- [fix][broker] Run ResourceGroup tasks only when tenants/namespaces registered ([#24859](https://github.com/apache/pulsar/pull/24859))\r\n- [fix][broker] Stop to retry to read entries if the replicator has terminated ([#24880](https://github.com/apache/pulsar/pull/24880))\r\n- [fix][broker] Trigger topic creation event only once for non-existent topic ([#24802](https://github.com/apache/pulsar/pull/24802))\r\n- [fix][broker] Use `poll` instead `remove` to avoid `NoSuchElementException` ([#24933](https://github.com/apache/pulsar/pull/24933))\r\n- [fix][broker]Leaving orphan schemas and topic-level policies after partitioned topic is deleted by GC ([#24971](https://github.com/apache/pulsar/pull/24971))\r\n- [fix][broker]Transactional messages can never be sent successfully if concurrently taking transaction buffer snapshot ([#24945](https://github.com/apache/pulsar/pull/24945))\r\n- [fix][admin] Set local policies overwrites \"number of bundles\" passed during namespace creation ([#24762](https://github.com/apache/pulsar/pull/24762))\r\n- [fix][ml] Fix `getNumberOfEntries` may point to deleted ledger ([#24852](https://github.com/apache/pulsar/pull/24852))\r\n- [fix][ml] Fix ledger trimming race causing cursor to point to deleted ledgers ([#24855](https://github.com/apache/pulsar/pull/24855))\r\n- [fix]Fixed getChildren('/') on Oxia based provider ([#24863](https://github.com/apache/pulsar/pull/24863))\r\n- [improve][broker] Add tests for using absolute FQDN for advertisedAddress and remove extra dot from brokerId ([#24787](https://github.com/apache/pulsar/pull/24787))\r\n- [improve][broker] Don't log an error when updatePartitionedTopic is called on a non-partitioned topic ([#24943](https://github.com/apache/pulsar/pull/24943))\r\n- [improve][broker] Optimize lookup result warn log ([#24942](https://github.com/apache/pulsar/pull/24942))\r\n- [improve][broker] Part-1 of PIP-434: Expose Netty channel configuration WRITE_BUFFER_WATER_MARK to pulsar conf and pause receive requests when channel is unwritable ([#24423](https://github.com/apache/pulsar/pull/24423))\r\n- [improve][broker] Part-2 of PIP-434: Use ServerCnxThrottleTracker, instead of modifying channel.readable directly ([#24799](https://github.com/apache/pulsar/pull/24799))\r\n- [improve][broker] PIP-434: add configurations to broker.conf ([#24800](https://github.com/apache/pulsar/pull/24800))\r\n- [improve][broker] Reduce the broker close time to avoid useless wait for event loop shutdown ([#24895](https://github.com/apache/pulsar/pull/24895))\r\n- [improve][broker] Replace isServiceUnitActiveAsync with checkTopicNsOwnership ([#24780](https://github.com/apache/pulsar/pull/24780))\r\n- [improve][broker]Call scheduleAtFixedRateNonConcurrently for scheduled tasks, instead of scheduleAtFixedRate ([#24596](https://github.com/apache/pulsar/pull/24596))\r\n- [improve][broker]Improve NamespaceService log that is printed when cluster was removed ([#24801](https://github.com/apache/pulsar/pull/24801))\r\n- [improve][broker]Skip to mark delete if the target position of expira… ([#24881](https://github.com/apache/pulsar/pull/24881))\r\n- [fix][txn] fix concurrent error cause txn stuck in TransactionBufferHandlerImpl#endTxn ([#23551](https://github.com/apache/pulsar/pull/23551))\r\n- [cleanup][broker] Remove unused configuration maxMessageSizeCheckIntervalInSeconds ([#24958](https://github.com/apache/pulsar/pull/24958))\r\n- [fix][broker][branch-4.0] Fix failed testFinishTakeSnapshotWhenTopicLoading due to topic future cache conflicts ([#24947](https://github.com/apache/pulsar/pull/24947))\r\n- [improve][broker] Separate offload read and write thread pool ([#24025](https://github.com/apache/pulsar/pull/24025))\r\n- [fix][monitor] Fix the incorrect metrics name ([#21981](https://github.com/apache/pulsar/pull/21981))\r\n\r\n### Client\r\n\r\n- [fix][client] Fix deduplication for getPartitionedTopicMetadata to include method parameters ([#24965](https://github.com/apache/pulsar/pull/24965))\r\n- [fix][client] Fix getPendingQueueSize for PartitionedTopicProducerStatsRecorderImpl: avoid NPE and implement aggregation ([#24830](https://github.com/apache/pulsar/pull/24830))\r\n- [fix][client] Fix thread leak in reloadLookUp method which is used by ServiceUrlProvider ([#24794](https://github.com/apache/pulsar/pull/24794))\r\n- [fix][client] Make auto partitions update work for old brokers without PIP-344 ([#24822](https://github.com/apache/pulsar/pull/24822))\r\n- [improve][client] Deduplicate getTopicsUnderNamespace in BinaryProtoLookupService ([#24962](https://github.com/apache/pulsar/pull/24962))\r\n- [improve][client]Add null check for Pulsar client clock configuration ([#24848](https://github.com/apache/pulsar/pull/24848))\r\n- [fix] Fix mixed lookup/partition metadata requests causing reliability issues and incorrect responses ([#24832](https://github.com/apache/pulsar/pull/24832))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [improve][fn] Use PulsarByteBufAllocator.DEFAULT instead of ByteBufAllocator.DEFAULT ([#24952](https://github.com/apache/pulsar/pull/24952))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Fix maven deploy with maven-source-plugin 3.3.1 ([#24811](https://github.com/apache/pulsar/pull/24811))\r\n- [fix][build] Remove invalid profile in settings.xml that caused gpg signing to fail ([#24812](https://github.com/apache/pulsar/pull/24812))\r\n- [fix][test] Add Delta Tolerance in Double-Precision Assertions to Fix Rounding Flakiness ([#24972](https://github.com/apache/pulsar/pull/24972))\r\n- [fix][test] BacklogQuotaManagerTest.backlogsAgeMetricsNoPreciseWithoutBacklogQuota handle empty /metrics scrape ([#24887](https://github.com/apache/pulsar/pull/24887))\r\n- [fix][test] Fix flaky KeySharedSubscriptionBrokerCacheTest.testReplayQueueReadsGettingCached ([#24955](https://github.com/apache/pulsar/pull/24955))\r\n- [fix][test] Fix flaky LookupPropertiesTest.testConcurrentLookupProperties ([#24854](https://github.com/apache/pulsar/pull/24854))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testProducerRateLimit ([#24951](https://github.com/apache/pulsar/pull/24951))\r\n- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed ([#24904](https://github.com/apache/pulsar/pull/24904))\r\n- [fix][test] Fix flaky SubscriptionSeekTest.testSeekWillNotEncounteredFencedError by counting subscription is fenced only after seek ([#24865](https://github.com/apache/pulsar/pull/24865))\r\n- [fix][test] Fix invalid test NonPersistentTopicTest.testProducerRateLimit ([#24957](https://github.com/apache/pulsar/pull/24957))\r\n- [fix][test] Fixed Nondeterministic Ordering in SchemaInfoTest ([#24969](https://github.com/apache/pulsar/pull/24969))\r\n- [fix][test] Fixed ResponseBody Check in Test Helper ([#24872](https://github.com/apache/pulsar/pull/24872))\r\n- [fix][test] Made ProtobufNativeSchemaTest.testSchema order-independent ([#24805](https://github.com/apache/pulsar/pull/24805))\r\n- [fix][test] Made ProtobufSchemaTest.testParsingInfoProperty order-independent ([#24807](https://github.com/apache/pulsar/pull/24807))\r\n- [fix][test] Stabilize PublishRateLimiterOverconsumingTest by aligning measurement and using adjacent 2-sec averages ([#24864](https://github.com/apache/pulsar/pull/24864))\r\n- [fix][test] Stabilize SequenceIdWithErrorTest by fencing after first publish to avoid empty-ledger deletion and send timeout ([#24861](https://github.com/apache/pulsar/pull/24861))\r\n- [fix][test] Stabilize testMsgDropStat by reliably triggering non-persistent publisher drop ([#24929](https://github.com/apache/pulsar/pull/24929))\r\n- [fix][test]fix flaky SimpleProducerConsumerTest.testReceiveAsyncCompletedWhenClosing ([#24858](https://github.com/apache/pulsar/pull/24858))\r\n- [improve][ci] Move replication tests to new group Broker Group 5 in Pulsar CI ([#24917](https://github.com/apache/pulsar/pull/24917))\r\n- [improve][test] Disable flaky PatternConsumerBackPressureTest until the problem is fixed ([#24948](https://github.com/apache/pulsar/pull/24948))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.7...v4.0.8).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/262870677","assets_url":"https://api.github.com/repos/apache/pulsar/releases/262870677/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/262870677/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.15","id":262870677,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4PqxaV","tag_name":"v3.0.15","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-11-17T07:55:07Z","updated_at":"2025-11-17T08:41:55Z","published_at":"2025-11-17T07:57:45Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.15","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.15","body":"#### 2025-11-17\r\n\r\n### Library updates\r\n\r\n- [improve][misc] Upgrade Netty to 4.1.128.Final ([#24911](https://github.com/apache/pulsar/pull/24911))\r\n- [fix][sec] Bump io.vertx:vertx-web from 4.5.10 to 4.5.22 ([#24889](https://github.com/apache/pulsar/pull/24889))\r\n- [fix][sec] Upgrade BouncyCastle FIPS to 2.0.10 to remediate CVE-2025-8916 ([#24923](https://github.com/apache/pulsar/pull/24923))\r\n- [fix][sec] Upgrade Jetty to 9.4.58.v20250814 to address CVE-2025-5115 ([#24897](https://github.com/apache/pulsar/pull/24897))\r\n- [fix][sec] Upgrade Spring to 6.2.12 to remediate CVE-2025-22233 and CVE-2025-41249 ([#24903](https://github.com/apache/pulsar/pull/24903))\r\n- [improve][ci] Upgrade GitHub Actions workflows to use ubuntu-24.04 ([#24841](https://github.com/apache/pulsar/pull/24841))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Avoid recursive update in ConcurrentHashMap during policy cache cleanup ([#24939](https://github.com/apache/pulsar/pull/24939))\r\n- [fix][broker] BacklogMessageAge is not reset when cursor mdPosition is on an open ledger ([#24915](https://github.com/apache/pulsar/pull/24915))\r\n- [fix][broker] fix getMaxReadPosition in TransactionBufferDisable should return latest ([#24898](https://github.com/apache/pulsar/pull/24898))\r\n- [fix][broker] Fix stack overflow caused by race condition when closing a connection ([#24934](https://github.com/apache/pulsar/pull/24934))\r\n- [fix][broker] Fix totalAvailablePermits not reduced when removing consumer from non-persistent dispatcher ([#24885](https://github.com/apache/pulsar/pull/24885))\r\n- [fix][broker] Flaky-test: ExtensibleLoadManagerImplTest.testDisableBroker ([#24770](https://github.com/apache/pulsar/pull/24770))\r\n- [fix][broker] Run ResourceGroup tasks only when tenants/namespaces registered ([#24859](https://github.com/apache/pulsar/pull/24859))\r\n- [fix][broker] Stop to retry to read entries if the replicator has terminated ([#24880](https://github.com/apache/pulsar/pull/24880))\r\n- [fix][broker] Trigger topic creation event only once for non-existent topic ([#24802](https://github.com/apache/pulsar/pull/24802))\r\n- [fix][admin] Set local policies overwrites \"number of bundles\" passed during namespace creation ([#24762](https://github.com/apache/pulsar/pull/24762))\r\n- [fix][ml] Fix `getNumberOfEntries` may point to deleted ledger ([#24852](https://github.com/apache/pulsar/pull/24852))\r\n- [fix][txn] fix concurrent error cause txn stuck in TransactionBufferHandlerImpl#endTxn ([#23551](https://github.com/apache/pulsar/pull/23551))\r\n- [cleanup][broker][branch-3.0] Remove no-op configurations caused by cherry-picking ([#24960](https://github.com/apache/pulsar/pull/24960))\r\n\r\n### Client\r\n\r\n- [fix][client] Fix deduplication for getPartitionedTopicMetadata to include method parameters ([#24965](https://github.com/apache/pulsar/pull/24965))\r\n- [fix][client] Fix getPendingQueueSize for PartitionedTopicProducerStatsRecorderImpl: avoid NPE and implement aggregation ([#24830](https://github.com/apache/pulsar/pull/24830))\r\n- [fix][client] Fix thread leak in reloadLookUp method which is used by ServiceUrlProvider ([#24794](https://github.com/apache/pulsar/pull/24794))\r\n- [fix][client] Make auto partitions update work for old brokers without PIP-344 ([#24822](https://github.com/apache/pulsar/pull/24822))\r\n- [improve][client]Add null check for Pulsar client clock configuration ([#24848](https://github.com/apache/pulsar/pull/24848))\r\n- [fix] Fix mixed lookup/partition metadata requests causing reliability issues and incorrect responses ([#24832](https://github.com/apache/pulsar/pull/24832))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Remove invalid profile in settings.xml that caused gpg signing to fail ([#24812](https://github.com/apache/pulsar/pull/24812))\r\n- [fix][test] Fix flaky KeySharedSubscriptionBrokerCacheTest.testReplayQueueReadsGettingCached ([#24955](https://github.com/apache/pulsar/pull/24955))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testProducerRateLimit ([#24951](https://github.com/apache/pulsar/pull/24951))\r\n- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed ([#24904](https://github.com/apache/pulsar/pull/24904))\r\n- [fix][test] Fix flaky SubscriptionSeekTest.testSeekWillNotEncounteredFencedError by counting subscription is fenced only after seek ([#24865](https://github.com/apache/pulsar/pull/24865))\r\n- [fix][test] Fix invalid test NonPersistentTopicTest.testProducerRateLimit ([#24957](https://github.com/apache/pulsar/pull/24957))\r\n- [fix][test] Stabilize SequenceIdWithErrorTest by fencing after first publish to avoid empty-ledger deletion and send timeout ([#24861](https://github.com/apache/pulsar/pull/24861))\r\n- [fix][test] Stabilize testMsgDropStat by reliably triggering non-persistent publisher drop ([#24929](https://github.com/apache/pulsar/pull/24929))\r\n- [improve][ci] Move replication tests to new group Broker Group 5 in Pulsar CI ([#24917](https://github.com/apache/pulsar/pull/24917))\r\n- [fix][ci][branch-3.0] Drop UBUNTU_MIRROR/UBUNTU_SECURITY_MIRROR support in Dockerfile since it's broken\r\n- [fix][test][branch-3.0] Backport test case so that it compiles in branch-3.0\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.14...v3.0.15).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/250465274","assets_url":"https://api.github.com/repos/apache/pulsar/releases/250465274/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/250465274/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.1.1","id":250465274,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4O7cv6","tag_name":"v4.1.1","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-09-27T04:39:08Z","updated_at":"2025-09-27T05:55:18Z","published_at":"2025-09-27T04:40:25Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.1.1","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.1.1","body":"#### 2025-09-27\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs ([#24717](https://github.com/apache/pulsar/pull/24717))\r\n- [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 ([#24763](https://github.com/apache/pulsar/pull/24763))\r\n- [improve][build] Upgrade Apache Parent POM to version 35 ([#24742](https://github.com/apache/pulsar/pull/24742))\r\n- [improve][build] Upgrade Mockito, AssertJ and ByteBuddy to fully support JDK25 ([#24764](https://github.com/apache/pulsar/pull/24764))\r\n- [improve][build] Upgrade SpotBugs to a version that supports JDK25 ([#24768](https://github.com/apache/pulsar/pull/24768))\r\n- [feat][misc] upgrade oxia version to 0.6.2 ([#24689](https://github.com/apache/pulsar/pull/24689))\r\n- [improve][io] Upgrade to Debezium 3.2.2 ([#24712](https://github.com/apache/pulsar/pull/24712))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Key_Shared subscription doesn't always deliver messages from the replay queue after a consumer disconnects and leaves a backlog ([#24736](https://github.com/apache/pulsar/pull/24736))\r\n- [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges ([#24730](https://github.com/apache/pulsar/pull/24730))\r\n- [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. ([#24738](https://github.com/apache/pulsar/pull/24738))\r\n- [fix][broker] Fix cannot shutdown broker gracefully by admin api ([#24731](https://github.com/apache/pulsar/pull/24731))\r\n- [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread ([#24719](https://github.com/apache/pulsar/pull/24719))\r\n- [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback ([#24741](https://github.com/apache/pulsar/pull/24741))\r\n- [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK ([#24580](https://github.com/apache/pulsar/pull/24580))\r\n- [fix][ml]Fix EOFException after enabled topics offloading ([#24753](https://github.com/apache/pulsar/pull/24753))\r\n- [fix][broker] Fix NPE and annotate nullable return values for ManagedCursorContainer ([#24706](https://github.com/apache/pulsar/pull/24706))\r\n- [fix][broker]Dispatcher did unnecessary sort for recentlyJoinedConsumers and printed noisy error logs ([#24634](https://github.com/apache/pulsar/pull/24634))\r\n- [fix][broker]Fix dirty reading of namespace level offload thresholds ([#24696](https://github.com/apache/pulsar/pull/24696))\r\n- [fix][ml] Negative backlog & acked positions does not exist & message lost when concurrently occupying topic owner ([#24722](https://github.com/apache/pulsar/pull/24722))\r\n- [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable ([#23634](https://github.com/apache/pulsar/pull/23634))\r\n- [improve][broker] Allow deletion of empty persistent topics regardless of retention policy ([#24733](https://github.com/apache/pulsar/pull/24733))\r\n- [improve][broker] PIP-402: Optionally prevent role/originalPrincipal logging ([#23386](https://github.com/apache/pulsar/pull/23386))\r\n- [improve][broker] Reduce unnecessary MessageMetadata parsing by caching the parsed instance in the broker cache ([#24682](https://github.com/apache/pulsar/pull/24682))\r\n- [improve][ml] Improve cache insert performance by removing exists check since it's already covered by putIfAbsent ([#24699](https://github.com/apache/pulsar/pull/24699))\r\n\r\n### Client\r\n\r\n- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads ([#24725](https://github.com/apache/pulsar/pull/24725))\r\n- [fix][client] Fix receiver queue auto-scale without memory limit ([#24743](https://github.com/apache/pulsar/pull/24743))\r\n- [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method ([#24698](https://github.com/apache/pulsar/pull/24698))\r\n- [fix][client] rollback TopicListWatcher retry behavior ([#24752](https://github.com/apache/pulsar/pull/24752))\r\n- [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side dependencies ([#24761](https://github.com/apache/pulsar/pull/24761))\r\n- [improve][client]  PIP-407 Add newMessage with schema and transactions ([#23942](https://github.com/apache/pulsar/pull/23942))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Improve Kafka Connect source offset flushing logic ([#24654](https://github.com/apache/pulsar/pull/24654))\r\n- [feat][fn] Fallback to using `STATE_STORAGE_SERVICE_URL` in `PulsarMetadataStateStoreProviderImpl.init` ([#24721](https://github.com/apache/pulsar/pull/24721))\r\n\r\n### Others\r\n\r\n- [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking ([#24772](https://github.com/apache/pulsar/pull/24772))\r\n- [fix] Exclude commons-lang dep from bookkeeper ([#24749](https://github.com/apache/pulsar/pull/24749))\r\n\r\n### Tests & CI\r\n\r\n- [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload ([#24769](https://github.com/apache/pulsar/pull/24769))\r\n- [fix][broker] Fix testServiceConfigurationRetentionPolicy unit test ([#24756](https://github.com/apache/pulsar/pull/24756))\r\n- [fix][broker]Fix the wrong logic of the test PartitionCreationTest.testCreateMissedPartitions ([#24683](https://github.com/apache/pulsar/pull/24683))\r\n- [improve][build] Disable javadoc build failure ([#24594](https://github.com/apache/pulsar/pull/24594))\r\n- [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension ([#24767](https://github.com/apache/pulsar/pull/24767))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.1.0...v4.1.1).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/250465261","assets_url":"https://api.github.com/repos/apache/pulsar/releases/250465261/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/250465261/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.7","id":250465261,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4O7cvt","tag_name":"v4.0.7","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-09-27T04:39:04Z","updated_at":"2025-09-27T05:54:55Z","published_at":"2025-09-27T04:40:06Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.7","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.7","body":"#### 2025-09-27\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 ([#24650](https://github.com/apache/pulsar/pull/24650))\r\n- [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs ([#24717](https://github.com/apache/pulsar/pull/24717))\r\n- [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 ([#24637](https://github.com/apache/pulsar/pull/24637))\r\n- [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions ([#24661](https://github.com/apache/pulsar/pull/24661))\r\n- [fix][misc] Upgrade dependencies to fix critical security vulnerabilities ([#24532](https://github.com/apache/pulsar/pull/24532))\r\n- [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 ([#24763](https://github.com/apache/pulsar/pull/24763))\r\n- [improve][broker] Upgrade avro version to 1.12.0 ([#24617](https://github.com/apache/pulsar/pull/24617))\r\n- [fix][misc] Upgrade fastutil to 8.5.16 ([#24659](https://github.com/apache/pulsar/pull/24659))\r\n- [improve][build] Upgrade Apache Parent POM to version 35 ([#24742](https://github.com/apache/pulsar/pull/24742))\r\n- [improve][build] Upgrade Mockito, AssertJ and ByteBuddy to fully support JDK25 ([#24764](https://github.com/apache/pulsar/pull/24764))\r\n- [improve][build] Upgrade SpotBugs to a version that supports JDK25 ([#24768](https://github.com/apache/pulsar/pull/24768))\r\n- [feat][misc] upgrade oxia version to 0.6.2 ([#24689](https://github.com/apache/pulsar/pull/24689))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Key_Shared subscription doesn't always deliver messages from the replay queue after a consumer disconnects and leaves a backlog ([#24736](https://github.com/apache/pulsar/pull/24736))\r\n- [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges ([#24730](https://github.com/apache/pulsar/pull/24730))\r\n- [fix][broker] PIP-428: Fix corrupted topic policies issues with sequential topic policy updates ([#24427](https://github.com/apache/pulsar/pull/24427))\r\n- [fix][broker][branch-4.0]Can not access topic policies if topic partitions have not been created ([#24680](https://github.com/apache/pulsar/pull/24680))\r\n- [fix][broker] Add double-check for non-durable cursor creation ([#24643](https://github.com/apache/pulsar/pull/24643))\r\n- [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. ([#24738](https://github.com/apache/pulsar/pull/24738))\r\n- [fix][broker] Fix cannot shutdown broker gracefully by admin api ([#24731](https://github.com/apache/pulsar/pull/24731))\r\n- [fix][broker] Fix duplicate watcher registration after SessionReestablished ([#24621](https://github.com/apache/pulsar/pull/24621))\r\n- [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread ([#24719](https://github.com/apache/pulsar/pull/24719))\r\n- [fix][broker] Fix race condition in MetadataStoreCacheLoader causing inconsistent availableBroker list caching ([#24639](https://github.com/apache/pulsar/pull/24639))\r\n- [fix][broker] Fix REST API to produce messages to single-partitioned topics ([#24450](https://github.com/apache/pulsar/pull/24450))\r\n- [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored ([#23977](https://github.com/apache/pulsar/pull/23977))\r\n- [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback ([#24741](https://github.com/apache/pulsar/pull/24741))\r\n- [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK ([#24580](https://github.com/apache/pulsar/pull/24580))\r\n- [fix][ml]Fix EOFException after enabled topics offloading ([#24753](https://github.com/apache/pulsar/pull/24753))\r\n- [fix][broker] Fix incorrect AuthData passed to AuthorizationService in proxy scenarios ([#24593](https://github.com/apache/pulsar/pull/24593))\r\n- [fix][broker] Fix namespace deletion TLS URL selection for geo-replication ([#24591](https://github.com/apache/pulsar/pull/24591))\r\n- [fix][broker] Fix NPE and annotate nullable return values for ManagedCursorContainer ([#24706](https://github.com/apache/pulsar/pull/24706))\r\n- [fix][broker] Fix NPE being logged if load manager class name is blank ([#24570](https://github.com/apache/pulsar/pull/24570))\r\n- [fix][broker]Dispatcher did unnecessary sort for recentlyJoinedConsumers and printed noisy error logs ([#24634](https://github.com/apache/pulsar/pull/24634))\r\n- [fix][broker]Failed to create partitions after the partitions were deleted because topic GC ([#24651](https://github.com/apache/pulsar/pull/24651))\r\n- [fix][broker]Fix dirty reading of namespace level offload thresholds ([#24696](https://github.com/apache/pulsar/pull/24696))\r\n- [fix][broker]Fix thread safety issues in BucketDelayedDeliveryTracker with StampedLock optimistic reads ([#24542](https://github.com/apache/pulsar/pull/24542))\r\n- [fix][broker]User topic failed to delete after removed cluster because of failed delete data from transaction buffer topic ([#24648](https://github.com/apache/pulsar/pull/24648))\r\n- [fix][ml] Negative backlog & acked positions does not exist & message lost when concurrently occupying topic owner ([#24722](https://github.com/apache/pulsar/pull/24722))\r\n- [fix][meta] Use `getChildrenFromStore` to read children data to avoid lost data ([#24665](https://github.com/apache/pulsar/pull/24665))\r\n- [improve][admin] PIP-422 part 1: Support global topic-level replicated clusters policy ([#24390](https://github.com/apache/pulsar/pull/24390))\r\n- [improve][broker]Part-2 Add Admin API to delete topic policies ([#24602](https://github.com/apache/pulsar/pull/24602))\r\n- [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable ([#23634](https://github.com/apache/pulsar/pull/23634))\r\n- [improve][ml] Optimize ledger opening by skipping fully acknowledged ledgers ([#24655](https://github.com/apache/pulsar/pull/24655))\r\n- [improve][broker] Allow deletion of empty persistent topics regardless of retention policy ([#24733](https://github.com/apache/pulsar/pull/24733))\r\n- [improve][broker] Extract duplication in AbstractTopic#incrementTopicEpochIfNeeded ([#24520](https://github.com/apache/pulsar/pull/24520))\r\n- [improve][broker]Find the target position at most once, during expiring messages for a topic, even though there are many subscriptions ([#24622](https://github.com/apache/pulsar/pull/24622))\r\n- [improve][broker]Improve the anti-concurrency mechanism expirationCheckInProgress ([#24607](https://github.com/apache/pulsar/pull/24607))\r\n- [improve][broker]Remove block calling that named cursor.asyncGetNth when expiring messages ([#24606](https://github.com/apache/pulsar/pull/24606))\r\n\r\n### Client\r\n\r\n- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads ([#24725](https://github.com/apache/pulsar/pull/24725))\r\n- [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover ([#24662](https://github.com/apache/pulsar/pull/24662))\r\n- [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover ([#23336](https://github.com/apache/pulsar/pull/23336))\r\n- [fix][client] Fix receiver queue auto-scale without memory limit ([#24743](https://github.com/apache/pulsar/pull/24743))\r\n- [fix][client] Retry for unknown exceptions when creating a producer or consumer ([#24599](https://github.com/apache/pulsar/pull/24599))\r\n- [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message ([#24663](https://github.com/apache/pulsar/pull/24663))\r\n- [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor ([#24610](https://github.com/apache/pulsar/pull/24610))\r\n- [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method ([#24698](https://github.com/apache/pulsar/pull/24698))\r\n- [fix][client] rollback TopicListWatcher retry behavior ([#24752](https://github.com/apache/pulsar/pull/24752))\r\n- [improve][client] Support load RSA PKCS[#8](https://github.com/apache/pulsar/pull/8) private key ([#24582](https://github.com/apache/pulsar/pull/24582))\r\n- [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side dependencies ([#24761](https://github.com/apache/pulsar/pull/24761))\r\n- [improve][client] Add OpenTelemetry metrics for client memory buffer usage ([#24647](https://github.com/apache/pulsar/pull/24647))\r\n- [improve][client] RawReader support pause and resume ([#24597](https://github.com/apache/pulsar/pull/24597))\r\n- [fix][client] Refactor AttributeWrappedMeasurement to use a class instead of a record to compatible with lower version JDK\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Improve Kafka Connect source offset flushing logic ([#24654](https://github.com/apache/pulsar/pull/24654))\r\n- [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException ([#24604](https://github.com/apache/pulsar/pull/24604))\r\n- [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path ([#24669](https://github.com/apache/pulsar/pull/24669))\r\n- [improve][io] Add support for the complete KinesisProducerConfiguration in KinesisSinkConfig ([#24489](https://github.com/apache/pulsar/pull/24489))\r\n- [feat][fn] Fallback to using `STATE_STORAGE_SERVICE_URL` in `PulsarMetadataStateStoreProviderImpl.init` ([#24721](https://github.com/apache/pulsar/pull/24721))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix TooLongFrameException with Pulsar Proxy ([#24626](https://github.com/apache/pulsar/pull/24626))\r\n- [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking ([#24772](https://github.com/apache/pulsar/pull/24772))\r\n- [improve][doc] Improve the JavaDocs of sendAsync to avoid improper use ([#24601](https://github.com/apache/pulsar/pull/24601))\r\n- [fix][offload] Exclude unnecessary dependencies from tiered storage provider / offloader nar files ([#24649](https://github.com/apache/pulsar/pull/24649))\r\n- [fix][ws] Allow websocket principals to specify originalPrincipal without proxy role ([#24642](https://github.com/apache/pulsar/pull/24642))\r\n- [fix][ws] Fix WebSocket authentication with authenticateOriginalAuthData enabled ([#24615](https://github.com/apache/pulsar/pull/24615))\r\n- [fix][ws] Fix WebSocket proxy originalPrincipal for HTTP admin API calls ([#24613](https://github.com/apache/pulsar/pull/24613))\r\n- [fix] Exclude commons-lang dep from bookkeeper ([#24749](https://github.com/apache/pulsar/pull/24749))\r\n\r\n### Tests & CI\r\n\r\n- [improve][build] Use org.apache.nifi:nifi-nar-maven-plugin:2.1.0 with skipDocGeneration=true ([#24668](https://github.com/apache/pulsar/pull/24668))\r\n- [fix][ci] Fix code coverage metrics in Pulsar CI ([#24595](https://github.com/apache/pulsar/pull/24595))\r\n- [fix][test] Fix ConcurrentModificationException in Ipv4Proxy ([#24632](https://github.com/apache/pulsar/pull/24632))\r\n- [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload ([#24769](https://github.com/apache/pulsar/pull/24769))\r\n- [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage  ([#24633](https://github.com/apache/pulsar/pull/24633))\r\n- [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage ([#24630](https://github.com/apache/pulsar/pull/24630))\r\n- [fix][broker] Fix flaky testReplicatorsInflightTaskListIsEmptyAfterReplicationFinished ([#24590](https://github.com/apache/pulsar/pull/24590))\r\n- [fix][broker] Fix testServiceConfigurationRetentionPolicy unit test ([#24756](https://github.com/apache/pulsar/pull/24756))\r\n- [fix][broker]Fix flaky test PartitionCreationTest.testCreateMissedPartitions ([#24679](https://github.com/apache/pulsar/pull/24679))\r\n- [fix][broker]Fix the wrong logic of the test PartitionCreationTest.testCreateMissedPartitions ([#24683](https://github.com/apache/pulsar/pull/24683))\r\n- [improve][build] Disable javadoc build failure ([#24594](https://github.com/apache/pulsar/pull/24594))\r\n- [improve][build] Increase maven resolver's sync context timeout ([#24666](https://github.com/apache/pulsar/pull/24666))\r\n- [improve][test] Add test for dead letter topic with max unacked messages blocking ([#24535](https://github.com/apache/pulsar/pull/24535))\r\n- [improve][test] Refactor the way way pulsar-io-debezium-oracle nar file is patched when building the test image ([#24586](https://github.com/apache/pulsar/pull/24586))\r\n- [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension ([#24767](https://github.com/apache/pulsar/pull/24767))\r\n- [fix][build][branch-4.0] Fix checkstyle in BrokerServiceAutoTopicCreationTest\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.6...v4.0.7).\r\n","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/250465261/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":1,"rocket":0,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/250465236","assets_url":"https://api.github.com/repos/apache/pulsar/releases/250465236/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/250465236/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.9","id":250465236,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4O7cvU","tag_name":"v3.3.9","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-09-27T04:38:59Z","updated_at":"2025-09-27T05:54:32Z","published_at":"2025-09-27T04:39:25Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.9","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.9","body":"#### 2025-09-27\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 ([#24650](https://github.com/apache/pulsar/pull/24650))\r\n- [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs ([#24717](https://github.com/apache/pulsar/pull/24717))\r\n- [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 ([#24637](https://github.com/apache/pulsar/pull/24637))\r\n- [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 ([#24514](https://github.com/apache/pulsar/pull/24514))\r\n- [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions ([#24661](https://github.com/apache/pulsar/pull/24661))\r\n- [fix][misc] Upgrade dependencies to fix critical security vulnerabilities ([#24532](https://github.com/apache/pulsar/pull/24532))\r\n- [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 ([#24763](https://github.com/apache/pulsar/pull/24763))\r\n- [improve][build] Upgrade Apache Parent POM to version 35 ([#24742](https://github.com/apache/pulsar/pull/24742))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Add double-check for non-durable cursor creation ([#24643](https://github.com/apache/pulsar/pull/24643))\r\n- [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges ([#24730](https://github.com/apache/pulsar/pull/24730))\r\n- [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. ([#24738](https://github.com/apache/pulsar/pull/24738))\r\n- [fix][broker] Fix cannot shutdown broker gracefully by admin api ([#24731](https://github.com/apache/pulsar/pull/24731))\r\n- [fix][broker] Fix duplicate watcher registration after SessionReestablished ([#24621](https://github.com/apache/pulsar/pull/24621))\r\n- [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread ([#24719](https://github.com/apache/pulsar/pull/24719))\r\n- [fix][broker] Fix race condition in MetadataStoreCacheLoader causing inconsistent availableBroker list caching ([#24639](https://github.com/apache/pulsar/pull/24639))\r\n- [fix][broker] Fix REST API to produce messages to single-partitioned topics ([#24450](https://github.com/apache/pulsar/pull/24450))\r\n- [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored ([#23977](https://github.com/apache/pulsar/pull/23977))\r\n- [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback ([#24741](https://github.com/apache/pulsar/pull/24741))\r\n- [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable ([#23634](https://github.com/apache/pulsar/pull/23634))\r\n- [fix][meta] Use `getChildrenFromStore` to read children data to avoid lost data ([#24665](https://github.com/apache/pulsar/pull/24665))\r\n- [improve][broker]Remove block calling that named cursor.asyncGetNth when expiring messages ([#24606](https://github.com/apache/pulsar/pull/24606))\r\n\r\n### Client\r\n\r\n- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads ([#24725](https://github.com/apache/pulsar/pull/24725))\r\n- [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover ([#24662](https://github.com/apache/pulsar/pull/24662))\r\n- [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover ([#23336](https://github.com/apache/pulsar/pull/23336))\r\n- [fix][client] Fix receiver queue auto-scale without memory limit ([#24743](https://github.com/apache/pulsar/pull/24743))\r\n- [fix][client] Retry for unknown exceptions when creating a producer or consumer ([#24599](https://github.com/apache/pulsar/pull/24599))\r\n- [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message ([#24663](https://github.com/apache/pulsar/pull/24663))\r\n- [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor ([#24610](https://github.com/apache/pulsar/pull/24610))\r\n- [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method ([#24698](https://github.com/apache/pulsar/pull/24698))\r\n- [fix][client] rollback TopicListWatcher retry behavior ([#24752](https://github.com/apache/pulsar/pull/24752))\r\n- [improve][client] Support load RSA PKCS[#8](https://github.com/apache/pulsar/pull/8) private key ([#24582](https://github.com/apache/pulsar/pull/24582))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Improve Kafka Connect source offset flushing logic ([#24654](https://github.com/apache/pulsar/pull/24654))\r\n- [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException ([#24604](https://github.com/apache/pulsar/pull/24604))\r\n- [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path ([#24669](https://github.com/apache/pulsar/pull/24669))\r\n- [feat][fn] Fallback to using `STATE_STORAGE_SERVICE_URL` in `PulsarMetadataStateStoreProviderImpl.init` ([#24721](https://github.com/apache/pulsar/pull/24721))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix TooLongFrameException with Pulsar Proxy ([#24626](https://github.com/apache/pulsar/pull/24626))\r\n- [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking ([#24772](https://github.com/apache/pulsar/pull/24772))\r\n- [improve][doc] Improve the JavaDocs of sendAsync to avoid improper use ([#24601](https://github.com/apache/pulsar/pull/24601))\r\n- [fix][offload] Exclude unnecessary dependencies from tiered storage provider / offloader nar files ([#24649](https://github.com/apache/pulsar/pull/24649))\r\n\r\n### Tests & CI\r\n\r\n- [improve][build] Use org.apache.nifi:nifi-nar-maven-plugin:2.1.0 with skipDocGeneration=true ([#24668](https://github.com/apache/pulsar/pull/24668))\r\n- [fix][ci] Fix code coverage metrics in Pulsar CI ([#24595](https://github.com/apache/pulsar/pull/24595))\r\n- [fix][test] Fix ConcurrentModificationException in Ipv4Proxy ([#24632](https://github.com/apache/pulsar/pull/24632))\r\n- [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload ([#24769](https://github.com/apache/pulsar/pull/24769))\r\n- [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage  ([#24633](https://github.com/apache/pulsar/pull/24633))\r\n- [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage ([#24630](https://github.com/apache/pulsar/pull/24630))\r\n- [fix][broker] Fix flaky testReplicatorsInflightTaskListIsEmptyAfterReplicationFinished ([#24590](https://github.com/apache/pulsar/pull/24590))\r\n- [improve][build] Disable javadoc build failure ([#24594](https://github.com/apache/pulsar/pull/24594))\r\n- [improve][build] Increase maven resolver's sync context timeout ([#24666](https://github.com/apache/pulsar/pull/24666))\r\n- [improve][test] Add test for dead letter topic with max unacked messages blocking ([#24535](https://github.com/apache/pulsar/pull/24535))\r\n- [improve][test] Refactor the way way pulsar-io-debezium-oracle nar file is patched when building the test image ([#24586](https://github.com/apache/pulsar/pull/24586))\r\n- [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension ([#24767](https://github.com/apache/pulsar/pull/24767))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.8...v3.3.9).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/250465113","assets_url":"https://api.github.com/repos/apache/pulsar/releases/250465113/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/250465113/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.14","id":250465113,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4O7ctZ","tag_name":"v3.0.14","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-09-27T04:35:25Z","updated_at":"2025-09-27T05:53:42Z","published_at":"2025-09-27T04:37:02Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.14","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.14","body":"#### 2025-09-27\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 ([#24650](https://github.com/apache/pulsar/pull/24650))\r\n- [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs ([#24717](https://github.com/apache/pulsar/pull/24717))\r\n- [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 ([#24637](https://github.com/apache/pulsar/pull/24637))\r\n- [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 ([#24514](https://github.com/apache/pulsar/pull/24514))\r\n- [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions ([#24661](https://github.com/apache/pulsar/pull/24661))\r\n- [fix][misc] Upgrade dependencies to fix critical security vulnerabilities ([#24532](https://github.com/apache/pulsar/pull/24532))\r\n- [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 ([#24763](https://github.com/apache/pulsar/pull/24763))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Add double-check for non-durable cursor creation ([#24643](https://github.com/apache/pulsar/pull/24643))\r\n- [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges ([#24730](https://github.com/apache/pulsar/pull/24730))\r\n- [fix][broker] First entry will be skipped if opening NonDurableCursor while trimmed ledger is adding first entry. ([#24738](https://github.com/apache/pulsar/pull/24738))\r\n- [fix][broker] Fix cannot shutdown broker gracefully by admin api ([#24731](https://github.com/apache/pulsar/pull/24731))\r\n- [fix][broker] Fix duplicate watcher registration after SessionReestablished ([#24621](https://github.com/apache/pulsar/pull/24621))\r\n- [fix][broker] Fix memory leak when metrics are updated in a thread other than FastThreadLocalThread ([#24719](https://github.com/apache/pulsar/pull/24719))\r\n- [fix][broker] Fix race condition in MetadataStoreCacheLoader causing inconsistent availableBroker list caching ([#24639](https://github.com/apache/pulsar/pull/24639))\r\n- [fix][broker] Fix REST API to produce messages to single-partitioned topics ([#24450](https://github.com/apache/pulsar/pull/24450))\r\n- [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored ([#23977](https://github.com/apache/pulsar/pull/23977))\r\n- [fix][broker] Prevent unexpected recycle failure in dispatcher's read callback ([#24741](https://github.com/apache/pulsar/pull/24741))\r\n- [fix][broker][branch-3.0] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger ([#24518](https://github.com/apache/pulsar/pull/24518)) ([#24671](https://github.com/apache/pulsar/pull/24671))\r\n- [fix][broker][branch-3.0] Prevent NPE in ownedBundlesCountPerNamespace on first bundle load ([#24758](https://github.com/apache/pulsar/pull/24758))\r\n- [fix][broker]Fix never recovered metadata store bad version issue if received a large response from ZK ([#24580](https://github.com/apache/pulsar/pull/24580))\r\n- [fix][ml]Fix EOFException after enabled topics offloading ([#24753](https://github.com/apache/pulsar/pull/24753))\r\n- [improve][broker] Choose random thread for consumerFlow in PersistentDispatcherSingleActiveConsumer ([#20522](https://github.com/apache/pulsar/pull/20522))\r\n- [improve][broker] If there is a deadlock in the service, the probe should return a failure because the service may be unavailable ([#23634](https://github.com/apache/pulsar/pull/23634))\r\n- [improve][broker] Optimize and clean up aggregation of topic stats ([#21361](https://github.com/apache/pulsar/pull/21361))\r\n\r\n### Client\r\n\r\n- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among different threads ([#24725](https://github.com/apache/pulsar/pull/24725))\r\n- [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover ([#24662](https://github.com/apache/pulsar/pull/24662))\r\n- [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover ([#23336](https://github.com/apache/pulsar/pull/23336))\r\n- [fix][client] Fix receiver queue auto-scale without memory limit ([#24743](https://github.com/apache/pulsar/pull/24743))\r\n- [fix][client] Retry for unknown exceptions when creating a producer or consumer ([#24599](https://github.com/apache/pulsar/pull/24599))\r\n- [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message ([#24663](https://github.com/apache/pulsar/pull/24663))\r\n- [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor ([#24610](https://github.com/apache/pulsar/pull/24610))\r\n- [fix][client]TopicListWatcher not closed when calling PatternMultiTopicsConsumerImpl.closeAsync() method ([#24698](https://github.com/apache/pulsar/pull/24698))\r\n- [fix][client] rollback TopicListWatcher retry behavior ([#24752](https://github.com/apache/pulsar/pull/24752))\r\n- [improve][client] Support load RSA PKCS[#8](https://github.com/apache/pulsar/pull/8) private key ([#24582](https://github.com/apache/pulsar/pull/24582))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Improve Kafka Connect source offset flushing logic ([#24654](https://github.com/apache/pulsar/pull/24654))\r\n- [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException ([#24604](https://github.com/apache/pulsar/pull/24604))\r\n- [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path ([#24669](https://github.com/apache/pulsar/pull/24669))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix TooLongFrameException with Pulsar Proxy ([#24626](https://github.com/apache/pulsar/pull/24626))\r\n- [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, TimeAverageMessageData and ResourceUnitRanking ([#24772](https://github.com/apache/pulsar/pull/24772))\r\n- [improve][doc] Improve the JavaDocs of sendAsync to avoid improper use ([#24601](https://github.com/apache/pulsar/pull/24601))\r\n- [fix][offload] Exclude unnecessary dependencies from tiered storage provider / offloader nar files ([#24649](https://github.com/apache/pulsar/pull/24649))\r\n\r\n### Tests & CI\r\n\r\n- [improve][build] Use org.apache.nifi:nifi-nar-maven-plugin:2.1.0 with skipDocGeneration=true ([#24668](https://github.com/apache/pulsar/pull/24668))\r\n- [fix][ci] Fix code coverage metrics in Pulsar CI ([#24595](https://github.com/apache/pulsar/pull/24595))\r\n- [fix][test] Fix ConcurrentModificationException in Ipv4Proxy ([#24632](https://github.com/apache/pulsar/pull/24632))\r\n- [fix][test] Flaky-test: BrokerServiceTest.testShutDownWithMaxConcurrentUnload ([#24769](https://github.com/apache/pulsar/pull/24769))\r\n- [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage  ([#24633](https://github.com/apache/pulsar/pull/24633))\r\n- [fix][test]fix flaky ZeroQueueSizeTest.testZeroQueueGetExceptionWhenReceiveBatchMessage ([#24630](https://github.com/apache/pulsar/pull/24630))\r\n- [fix][broker] Fix flaky testReplicatorsInflightTaskListIsEmptyAfterReplicationFinished ([#24590](https://github.com/apache/pulsar/pull/24590))\r\n- [improve][build] Disable javadoc build failure ([#24594](https://github.com/apache/pulsar/pull/24594))\r\n- [improve][build] Increase maven resolver's sync context timeout ([#24666](https://github.com/apache/pulsar/pull/24666))\r\n- [improve][test] Add test for dead letter topic with max unacked messages blocking ([#24535](https://github.com/apache/pulsar/pull/24535))\r\n- [improve][test] Refactor the way way pulsar-io-debezium-oracle nar file is patched when building the test image ([#24586](https://github.com/apache/pulsar/pull/24586))\r\n- [fix][build] Import isNotBlank\r\n- [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven extension ([#24767](https://github.com/apache/pulsar/pull/24767))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.13...v3.0.14).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/245437828","assets_url":"https://api.github.com/repos/apache/pulsar/releases/245437828/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/245437828/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.1.0","id":245437828,"author":{"login":"coderzc","id":26179648,"node_id":"MDQ6VXNlcjI2MTc5NjQ4","avatar_url":"https://avatars.githubusercontent.com/u/26179648?v=4","gravatar_id":"","url":"https://api.github.com/users/coderzc","html_url":"https://github.com/coderzc","followers_url":"https://api.github.com/users/coderzc/followers","following_url":"https://api.github.com/users/coderzc/following{/other_user}","gists_url":"https://api.github.com/users/coderzc/gists{/gist_id}","starred_url":"https://api.github.com/users/coderzc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coderzc/subscriptions","organizations_url":"https://api.github.com/users/coderzc/orgs","repos_url":"https://api.github.com/users/coderzc/repos","events_url":"https://api.github.com/users/coderzc/events{/privacy}","received_events_url":"https://api.github.com/users/coderzc/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4OoRWE","tag_name":"v4.1.0","target_commitish":"master","name":"v4.1.0","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-09-08T02:40:34Z","updated_at":"2025-09-08T07:44:09Z","published_at":"2025-09-08T07:44:09Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.1.0","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.1.0","body":"### Approved PIPs\r\n\r\n- [improve][pip] PIP-292: Enforce token expiration time in the Websockets plugin ([#20953](https://github.com/apache/pulsar/pull/20953))\r\n- [improve][pip] PIP-391: Enable batch index ACK by default ([#23567](https://github.com/apache/pulsar/pull/23567))\r\n- [improve][pip] PIP-409: support producer configuration for retry/dead letter topic producer ([#24022](https://github.com/apache/pulsar/pull/24022))\r\n- [improve][pip] PIP-416: Add a new topic method to implement trigger offload by size threshold ([#24276](https://github.com/apache/pulsar/pull/24276))\r\n- [improve][pip] PIP-425: Support connecting with next available endpoint for multi-endpoint serviceUrls ([#24394](https://github.com/apache/pulsar/pull/24394))\r\n- [improve][pip] PIP-427: Align pulsar-admin Default for Mark-Delete Rate with Broker Configuration ([#24425](https://github.com/apache/pulsar/pull/24425))\r\n- [improve][pip] PIP-429: Optimize Handling of Compacted Last Entry by Skipping Payload Buffer Parsing ([#24439](https://github.com/apache/pulsar/pull/24439))\r\n- [pip] PIP-430: Pulsar Broker cache improvements: refactoring eviction and adding a new cache strategy based on expected read count ([#24444](https://github.com/apache/pulsar/pull/24444))\r\n- [improve][pip] PIP-431: Add Creation and Last Publish Timestamps to Topic Stats ([#24469](https://github.com/apache/pulsar/pull/24469))\r\n- [improve][pip] PIP-432: Add isEncrypted field to EncryptionContext ([#24481](https://github.com/apache/pulsar/pull/24481))\r\n- [improve][pip] PIP-433: Optimize the conflicts of the replication and automatic creation mechanisms, including the automatic creation of topics and schemas ([#24485](https://github.com/apache/pulsar/pull/24485))\r\n- [improve][pip] PIP-435: Add startTimestamp and endTimestamp for consuming messages in client cli ([#24524](https://github.com/apache/pulsar/pull/24524))\r\n- [improve][pip]PIP-422 Support global topic-level policy: replicated clusters and new API to delete topic-level policies ([#24368](https://github.com/apache/pulsar/pull/24368))\r\n- [improve][pip]PIP-436: Add decryptFailListener to Consumer ([#24572](https://github.com/apache/pulsar/pull/24572))\r\n- [feat][pip] PIP-420: Provide ability for Pulsar clients to integrate with third-party schema registry service ([#24328](https://github.com/apache/pulsar/pull/24328))\r\n- [improve] [pip] PIP-373: Add a topic's system prop that indicates whether users have published TXN messages in before. ([#23210](https://github.com/apache/pulsar/pull/23210))\r\n- [improve] [pip] PIP-375 Expose the Admin client configs: readTimeout, requestTimeout, and connectionTimeout ([#23222](https://github.com/apache/pulsar/pull/23222))\r\n- [improve] [pip] PIP-382: Add a label named reason for topic_load_failed_total ([#23351](https://github.com/apache/pulsar/pull/23351))\r\n- [pip] PIP-428: Change TopicPoliciesService interface to fix consistency issues ([#24428](https://github.com/apache/pulsar/pull/24428))\r\n\r\n### Library updates\r\n\r\n- [improve][broker] Upgrade avro version to 1.12.0 ([#24617](https://github.com/apache/pulsar/pull/24617))\r\n- [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](https://github.com/apache/pulsar/pull/24468))\r\n- [fix][sec] Bump commons-io version to 2.18.0 ([#23684](https://github.com/apache/pulsar/pull/23684))\r\n- [fix][sec] Mitigate CVE-2024-53990 by disabling AsyncHttpClient CookieStore ([#23725](https://github.com/apache/pulsar/pull/23725))\r\n- [fix][sec] Remove dependency on out-dated commons-configuration 1.x ([#24562](https://github.com/apache/pulsar/pull/24562))\r\n- [fix][sec] Replace bcprov-jdk15on dependency with bcprov-jdk18-on ([#23532](https://github.com/apache/pulsar/pull/23532))\r\n- [fix][sec] Upgrade async-http-client to 2.12.4 to address CVE-2024-53990 ([#23732](https://github.com/apache/pulsar/pull/23732))\r\n- [fix][sec] Upgrade bouncycastle bcpkix-fips version to 1.79 to address CVE-2025-8916 ([#24650](https://github.com/apache/pulsar/pull/24650))\r\n- [fix][sec] Upgrade golang.org/x/crypto from 0.21.0 to 0.31.0 in pulsar-function-go ([#23743](https://github.com/apache/pulsar/pull/23743))\r\n- [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 ([#24232](https://github.com/apache/pulsar/pull/24232))\r\n- [fix][sec] Upgrade jwt/v5 to 5.2.2 to address CVE-2025-30204 ([#24140](https://github.com/apache/pulsar/pull/24140))\r\n- [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 ([#24564](https://github.com/apache/pulsar/pull/24564))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 ([#24547](https://github.com/apache/pulsar/pull/24547))\r\n- [fix][sec] Upgrade to Netty 4.1.115.Final to address CVE-2024-47535 ([#23596](https://github.com/apache/pulsar/pull/23596))\r\n- [fix][sec] Upgrade to Netty 4.1.118 ([#23965](https://github.com/apache/pulsar/pull/23965))\r\n- [fix][sec] Upgrade to Netty 4.1.124.Final to address CVE-2025-55163 ([#24637](https://github.com/apache/pulsar/pull/24637))\r\n- [fix][sec] Upgrade Zookeeper to 3.9.3 to address CVE-2024-51504 ([#23581](https://github.com/apache/pulsar/pull/23581))\r\n- [fix][build] Upgrade json-smart to 2.5.2 ([#23966](https://github.com/apache/pulsar/pull/23966))\r\n- [improve][io] Upgrade AWS SDK v1 & v2, Kinesis KPL and KPC versions ([#24661](https://github.com/apache/pulsar/pull/24661))\r\n- [improve][io] Upgrade Kafka client and compatible Confluent platform version ([#24201](https://github.com/apache/pulsar/pull/24201))\r\n- [improve][io] Upgrade Spring version to 6.1.13 in IO Connectors ([#23459](https://github.com/apache/pulsar/pull/23459))\r\n- [improve][io] Upgrade Spring version to 6.1.14 in IO Connectors ([#23481](https://github.com/apache/pulsar/pull/23481))\r\n- [improve][monitor] Upgrade OTel to 1.41.0 ([#23484](https://github.com/apache/pulsar/pull/23484))\r\n- [improve][monitor] Upgrade OTel to 1.45.0 ([#23756](https://github.com/apache/pulsar/pull/23756))\r\n- [fix][misc] Upgrade dependencies to fix critical security vulnerabilities ([#24532](https://github.com/apache/pulsar/pull/24532))\r\n- [fix][misc] Upgrade fastutil to 8.5.16 ([#24659](https://github.com/apache/pulsar/pull/24659))\r\n- [improve][build] Upgrade Caffeine from 2.9.1 to 3.2.1 ([#24527](https://github.com/apache/pulsar/pull/24527))\r\n- [improve][build] Upgrade commons-compress version from 1.27.0 to 1.27.1 ([#24270](https://github.com/apache/pulsar/pull/24270))\r\n- [improve][build] Upgrade errorprone to 2.38.0 ([#24242](https://github.com/apache/pulsar/pull/24242))\r\n- [improve][build] Upgrade Gradle Develocity Maven Extension dependencies ([#24260](https://github.com/apache/pulsar/pull/24260))\r\n- [improve][build] Upgrade Lombok to 1.18.38 to support JDK 24 ([#24237](https://github.com/apache/pulsar/pull/24237))\r\n- [improve][build] Upgrade Mockito to 5.17.0 and byte-buddy to 1.15.11 ([#24241](https://github.com/apache/pulsar/pull/24241))\r\n- [improve][build] Upgrade SpotBugs to 4.9.x ([#24243](https://github.com/apache/pulsar/pull/24243))\r\n- [improve][build] Upgrade to jacoco 0.8.13 ([#24240](https://github.com/apache/pulsar/pull/24240))\r\n- [improve][build] Upgrade zstd version from 1.5.2-3 to 1.5.7-3 ([#24263](https://github.com/apache/pulsar/pull/24263))\r\n- [improve][ci] Upgrade Gradle Develocity Maven Extension to 1.23.1 ([#24004](https://github.com/apache/pulsar/pull/24004))\r\n- [improve][test] Upgrade Testcontainers to 1.20.4 and docker-java to 3.4.0 ([#24003](https://github.com/apache/pulsar/pull/24003))\r\n- [improve][misc] Upgrade Guava to 33.4.8 that uses JSpecify annotations ([#24267](https://github.com/apache/pulsar/pull/24267))\r\n- [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final ([#24397](https://github.com/apache/pulsar/pull/24397))\r\n- [improve][misc] Upgrade RE2/J to 1.8 ([#24530](https://github.com/apache/pulsar/pull/24530))\r\n- [feat][misc] Upgrade oxia version to 0.4.9 ([#23607](https://github.com/apache/pulsar/pull/23607))\r\n- [improve] Upgrade Apache Commons library versions to compatible versions ([#24205](https://github.com/apache/pulsar/pull/24205))\r\n- [improve] Upgrade lombok to 1.18.36 ([#23752](https://github.com/apache/pulsar/pull/23752))\r\n- [improve] Upgrade Netty to 4.1.119.Final ([#24049](https://github.com/apache/pulsar/pull/24049))\r\n- [improve] Upgrade Netty to 4.1.121.Final ([#24214](https://github.com/apache/pulsar/pull/24214))\r\n- [improve] Upgrade OpenTelemetry library to 1.44.1 version ([#23656](https://github.com/apache/pulsar/pull/23656))\r\n- [improve] Upgrade oxia-java to 0.4.10 and fix closing of OxiaMetadataStore ([#23653](https://github.com/apache/pulsar/pull/23653))\r\n- [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image ([#24302](https://github.com/apache/pulsar/pull/24302))\r\n- [improve] Upgrade to Netty 4.1.116.Final and io_uring to 0.0.26.Final ([#23813](https://github.com/apache/pulsar/pull/23813))\r\n- [improve] Upgrade to Netty 4.1.117.Final ([#23863](https://github.com/apache/pulsar/pull/23863))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Add double-check for non-durable cursor creation ([#24643](https://github.com/apache/pulsar/pull/24643))\r\n- [fix][broker] Add expire check for replicator ([#23975](https://github.com/apache/pulsar/pull/23975))\r\n- [fix][broker] Add topic consistency check ([#24118](https://github.com/apache/pulsar/pull/24118))\r\n- [fix][broker] Allow recreation of partitioned topic after metadata loss ([#24225](https://github.com/apache/pulsar/pull/24225))\r\n- [fix][broker] Apply dispatcherMaxReadSizeBytes also for replay reads for Shared and Key_Shared subscriptions ([#23894](https://github.com/apache/pulsar/pull/23894))\r\n- [fix][broker] Avoid block markDeletePosition forward when skip lost entries ([#21210](https://github.com/apache/pulsar/pull/21210))\r\n- [fix][broker] Avoid IllegalStateException when marker_type field is not set in publishing ([#24087](https://github.com/apache/pulsar/pull/24087))\r\n- [fix][broker] Broker is failing to create non-durable sub if topic is fenced ([#23579](https://github.com/apache/pulsar/pull/23579))\r\n- [fix][broker] Catch exception for entry payload interceptor processor ([#23683](https://github.com/apache/pulsar/pull/23683))\r\n- [fix][broker] Consumer stuck when delete subscription __compaction failed ([#23980](https://github.com/apache/pulsar/pull/23980))\r\n- [fix][broker] Continue using the next provider for authentication if one fails ([#23797](https://github.com/apache/pulsar/pull/23797))\r\n- [fix][broker] Continue using the next provider for http authentication if one fails ([#23842](https://github.com/apache/pulsar/pull/23842))\r\n- [fix][broker] Directly query single topic existence when the topic is partitioned ([#24154](https://github.com/apache/pulsar/pull/24154))\r\n- [fix][broker] expose consumer name for partitioned topic stats ([#24360](https://github.com/apache/pulsar/pull/24360))\r\n- [fix][broker] fix broker may lost rack information ([#23331](https://github.com/apache/pulsar/pull/23331))\r\n- [fix][broker] Fix Broker migration NPE while broker tls url not configured ([#23534](https://github.com/apache/pulsar/pull/23534))\r\n- [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly ([#24551](https://github.com/apache/pulsar/pull/24551))\r\n- [fix][broker] Fix broker shutdown delay by resolving hanging health checks ([#24210](https://github.com/apache/pulsar/pull/24210))\r\n- [fix][broker] Fix bug causing loss of migrated information when setting other localPolicies in namespace ([#23764](https://github.com/apache/pulsar/pull/23764))\r\n- [fix][broker] Fix ByteBuf memory leak in REST API for publishing messages ([#24228](https://github.com/apache/pulsar/pull/24228))\r\n- [fix][broker] Fix compaction service log's wrong condition ([#24207](https://github.com/apache/pulsar/pull/24207))\r\n- [fix][broker] Fix deadlock in Key_Shared PIP-379 implementation ([#23854](https://github.com/apache/pulsar/pull/23854))\r\n- [fix][broker] fix delay queue sequence issue. ([#24035](https://github.com/apache/pulsar/pull/24035))\r\n- [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry ([#24506](https://github.com/apache/pulsar/pull/24506))\r\n- [fix][broker] Fix duplicate watcher registration after SessionReestablished ([#24621](https://github.com/apache/pulsar/pull/24621))\r\n- [fix][broker] Fix enableReplicatedSubscriptions ([#23781](https://github.com/apache/pulsar/pull/23781))\r\n- [fix][broker] Fix exclusive producer creation when last shared producer closes ([#24516](https://github.com/apache/pulsar/pull/24516))\r\n- [fix][broker] fix ExtensibleLoadManager to override the ownerships concurrently without blocking load manager thread ([#24156](https://github.com/apache/pulsar/pull/24156))\r\n- [fix][broker] Fix failed TokenAuthenticatedProducerConsumerTest ([#23602](https://github.com/apache/pulsar/pull/23602))\r\n- [fix][broker] Fix flaky testReplicatorsInflightTaskListIsEmptyAfterReplicationFinished ([#24590](https://github.com/apache/pulsar/pull/24590))\r\n- [fix][broker] Fix HashedWheelTimer leak in PulsarService by stopping it in shutdown ([#24275](https://github.com/apache/pulsar/pull/24275))\r\n- [fix][broker] Fix HealthChecker deadlock in shutdown ([#24216](https://github.com/apache/pulsar/pull/24216))\r\n- [fix][broker] Fix incorrect API documentation for non-persistent topic ([#24413](https://github.com/apache/pulsar/pull/24413))\r\n- [fix][broker] Fix incorrect AuthData passed to AuthorizationService in proxy scenarios ([#24593](https://github.com/apache/pulsar/pull/24593))\r\n- [fix][broker] Fix incorrect blockedConsumerOnUnackedMsgs value when maxUnackedMessagesPerConsumer is 1 ([#23796](https://github.com/apache/pulsar/pull/23796))\r\n- [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists ([#24350](https://github.com/apache/pulsar/pull/24350))\r\n- [fix][broker] fix logging with correct error message while loading the topic ([#23544](https://github.com/apache/pulsar/pull/23544))\r\n- [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues ([#24569](https://github.com/apache/pulsar/pull/24569))\r\n- [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters ([#24543](https://github.com/apache/pulsar/pull/24543))\r\n- [fix][broker] Fix Metadata Event Synchronizer producer creation retry so that the producer gets created eventually ([#24081](https://github.com/apache/pulsar/pull/24081))\r\n- [fix][broker] Fix Metadata event synchronizer should not fail with bad version ([#24080](https://github.com/apache/pulsar/pull/24080))\r\n- [fix][broker] Fix missing validation when setting retention policy on topic level ([#24032](https://github.com/apache/pulsar/pull/24032))\r\n- [fix][broker] fix namespace deletion TLS URL selection for geo-replication ([#24591](https://github.com/apache/pulsar/pull/24591))\r\n- [fix][broker] Fix NPE being logged if load manager class name is blank ([#24570](https://github.com/apache/pulsar/pull/24570))\r\n- [fix][broker] Fix NPE when getting delayed delivery policy ([#24512](https://github.com/apache/pulsar/pull/24512))\r\n- [fix][broker] Fix NPE while publishing Metadata-Event with not init producer ([#24079](https://github.com/apache/pulsar/pull/24079))\r\n- [fix][broker] fix null lookup result when brokers are starting ([#23642](https://github.com/apache/pulsar/pull/23642))\r\n- [fix][broker] Fix ownership loss ([#23515](https://github.com/apache/pulsar/pull/23515))\r\n- [fix][broker] Fix possible mark delete NPE when batch index ack is enabled ([#23833](https://github.com/apache/pulsar/pull/23833))\r\n- [fix][broker] Fix potential deadlock when creating partitioned topic ([#24313](https://github.com/apache/pulsar/pull/24313))\r\n- [fix][broker] Fix print cluster migration state response ([#23535](https://github.com/apache/pulsar/pull/23535))\r\n- [fix][broker] Fix rate limiter token bucket and clock consistency issues causing excessive throttling and connection timeouts ([#23930](https://github.com/apache/pulsar/pull/23930))\r\n- [fix][broker] Fix repeatedly acquired pending reads quota ([#23869](https://github.com/apache/pulsar/pull/23869))\r\n- [fix][broker] Fix REST API to produce messages to single-partitioned topics ([#24450](https://github.com/apache/pulsar/pull/24450))\r\n- [fix][broker] Fix seeking by timestamp can be reset the cursor position to earliest ([#23919](https://github.com/apache/pulsar/pull/23919))\r\n- [fix][broker] Fix some problems in calculate totalAvailableBookies in method getExcludedBookiesWithIsolationGroups when some bookies belongs to multiple isolation groups. ([#24091](https://github.com/apache/pulsar/pull/24091))\r\n- [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](https://github.com/apache/pulsar/pull/24424))\r\n- [fix][broker] Fix the retry mechanism in `MetadataCache#readModifyUpdateOrCreate` ([#23686](https://github.com/apache/pulsar/pull/23686))\r\n- [fix][broker] Fix the wrong cache name ([#24407](https://github.com/apache/pulsar/pull/24407))\r\n- [fix][broker] Fix UnsupportedOperationException while setting subscription level dispatch rate policy ([#24048](https://github.com/apache/pulsar/pull/24048))\r\n- [fix][broker] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger ([#24518](https://github.com/apache/pulsar/pull/24518))\r\n- [fix][broker] Fixes Inconsistent ServiceUnitStateData View (ExtensibleLoadManagerImpl only) ([#24186](https://github.com/apache/pulsar/pull/24186))\r\n- [fix][broker] Geo Replication lost messages or frequently fails due to Deduplication is not appropriate for Geo-Replication ([#23697](https://github.com/apache/pulsar/pull/23697))\r\n- [fix][broker] Ignore metadata changes when broker is not in the Started state ([#24352](https://github.com/apache/pulsar/pull/24352))\r\n- [fix][broker] Increase readBuffer size for bookkeeper.DLOutputStream ([#23548](https://github.com/apache/pulsar/pull/23548))\r\n- [fix][broker] Invalid regex in PulsarLedgerManager causes zk data notification to be ignored ([#23977](https://github.com/apache/pulsar/pull/23977))\r\n- [fix][broker] Key_Shared subscription: Reject consumers with incompatible policy ([#23449](https://github.com/apache/pulsar/pull/23449))\r\n- [fix][broker] Make InflightReadsLimiter asynchronous and apply it for replay queue reads ([#23901](https://github.com/apache/pulsar/pull/23901))\r\n- [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it ([#24419](https://github.com/apache/pulsar/pull/24419))\r\n- [fix][broker] Orphan schema after disabled a cluster for a namespace ([#24223](https://github.com/apache/pulsar/pull/24223))\r\n- [fix][broker] PIP-322 Fix issue with rate limiters where rates can exceed limits initially and consumption pauses until token balance is positive ([#24012](https://github.com/apache/pulsar/pull/24012))\r\n- [fix][broker] PIP-379 Key_Shared implementation race condition causing out-of-order message delivery ([#23874](https://github.com/apache/pulsar/pull/23874))\r\n- [fix][broker] PIP-399: Fix Metric Name for Delayed Queue ([#23712](https://github.com/apache/pulsar/pull/23712))\r\n- [fix][broker] PIP-428: Fix corrupted topic policies issues with sequential topic policy updates ([#24427](https://github.com/apache/pulsar/pull/24427))\r\n- [fix][broker] Remove blocking calls from internalGetPartitionedStats ([#23832](https://github.com/apache/pulsar/pull/23832))\r\n- [fix][broker] Remove failed OpAddEntry from pendingAddEntries ([#23817](https://github.com/apache/pulsar/pull/23817))\r\n- [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers ([#24453](https://github.com/apache/pulsar/pull/24453))\r\n- [fix][broker] Restore the behavior to dispatch batch messages according to consumer permits ([#24092](https://github.com/apache/pulsar/pull/24092))\r\n- [fix][broker] Revert \"[fix][broker] Cancel possible pending replay read in cancelPendingRead (#23384)\" ([#23855](https://github.com/apache/pulsar/pull/23855))\r\n- [fix][broker] Revert \"[improve][client] Add log when can't add message to the container ([#23657](https://github.com/apache/pulsar/pull/23657))\r\n- [fix][broker] Skip to persist cursor info if it failed by cursor closed ([#23615](https://github.com/apache/pulsar/pull/23615))\r\n- [fix][broker] support missing cluster level fine-granted permissions ([#23675](https://github.com/apache/pulsar/pull/23675))\r\n- [fix][broker] support missing tenant level fine-granted permissions ([#23660](https://github.com/apache/pulsar/pull/23660))\r\n- [fix][broker] System topic should not be migrated during blue-green cluster migration ([#23767](https://github.com/apache/pulsar/pull/23767))\r\n- [fix][broker] The feature brokerDeleteInactivePartitionedTopicMetadataEnabled leaves orphan topic policies and topic schemas ([#24150](https://github.com/apache/pulsar/pull/24150))\r\n- [fix][broker] Unregister non-static metrics collectors registered in Prometheus default registry ([#24257](https://github.com/apache/pulsar/pull/24257))\r\n- [fix][broker]Avoid read a entry that entry id is -1 when calling getLastMessagePublishTime ([#24579](https://github.com/apache/pulsar/pull/24579))\r\n- [fix][broker]Data lost due to conflict loaded up a topic for two brokers, when enabled ServiceUnitStateMetadataStoreTableViewImpl ([#24478](https://github.com/apache/pulsar/pull/24478))\r\n- [fix][broker]excessive replication speed leads to error: Producer send queue is full ([#24189](https://github.com/apache/pulsar/pull/24189))\r\n- [fix][broker]Failed to create partitions after the partitions were deleted because topic GC ([#24651](https://github.com/apache/pulsar/pull/24651))\r\n- [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently ([#24366](https://github.com/apache/pulsar/pull/24366))\r\n- [fix][broker]Fix failed consumption after loaded up a terminated topic ([#24063](https://github.com/apache/pulsar/pull/24063))\r\n- [fix][broker]Fix flaky test PartitionCreationTest.testCreateMissedPartitions ([#24679](https://github.com/apache/pulsar/pull/24679))\r\n- [fix][broker]Fix incorrect priority between topic policies and global topic policies ([#24254](https://github.com/apache/pulsar/pull/24254))\r\n- [fix][broker]fix memory leak, messages lost, incorrect replication state if using multiple schema versions(auto_produce) ([#24178](https://github.com/apache/pulsar/pull/24178))\r\n- [fix][broker]Fix thread safety issues in BucketDelayedDeliveryTracker with StampedLock optimistic reads ([#24542](https://github.com/apache/pulsar/pull/24542))\r\n- [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect ([#24279](https://github.com/apache/pulsar/pull/24279))\r\n- [fix][broker]Non-global topic policies and global topic policies overwrite each other ([#24286](https://github.com/apache/pulsar/pull/24286))\r\n- [fix][broker]User topic failed to delete after removed cluster because of failed delete data from transaction buffer topic ([#24648](https://github.com/apache/pulsar/pull/24648))\r\n- [fix][admin] Backlog quota's policy is null which causes a NPE ([#24192](https://github.com/apache/pulsar/pull/24192))\r\n- [fix][admin] Fix exception loss in getMessageId method ([#23766](https://github.com/apache/pulsar/pull/23766))\r\n- [fix][admin] Fix exception thrown in getMessageId method ([#23784](https://github.com/apache/pulsar/pull/23784))\r\n- [fix][admin] Listen partitioned topic creation event ([#23680](https://github.com/apache/pulsar/pull/23680))\r\n- [fix][admin] Verify is policies read only before revoke permissions on topic ([#23730](https://github.com/apache/pulsar/pull/23730))\r\n- [fix][ml] Corrected pulsar_storage_size metric to not multiply offloaded storage by the write quorum ([#24054](https://github.com/apache/pulsar/pull/24054))\r\n- [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled ([#24406](https://github.com/apache/pulsar/pull/24406))\r\n- [fix][ml] Don't estimate number of entries when ledgers are empty, return 1 instead ([#24125](https://github.com/apache/pulsar/pull/24125))\r\n- [fix][ml] Fix deadlock in PendingReadsManager ([#23958](https://github.com/apache/pulsar/pull/23958))\r\n- [fix][ml] Fix issues in estimateEntryCountBySize ([#24089](https://github.com/apache/pulsar/pull/24089))\r\n- [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue ([#24338](https://github.com/apache/pulsar/pull/24338))\r\n- [fix][ml] Fix memory leaks in ManagedCursorInfo and ManagedLedgerInfo decompression and compression ([#23960](https://github.com/apache/pulsar/pull/23960))\r\n- [fix][ml] Return 1 when bytes size is 0 or negative for entry count estimation ([#24131](https://github.com/apache/pulsar/pull/24131))\r\n- [fix][ml] Skip deleting cursor if it was already deleted before calling unsubscribe ([#24098](https://github.com/apache/pulsar/pull/24098))\r\n- [fix][ml] Topic load timeout due to ml data ledger future never finishes ([#23772](https://github.com/apache/pulsar/pull/23772))\r\n- [fix][ml]Received more than once callback when calling cursor.delete ([#24405](https://github.com/apache/pulsar/pull/24405))\r\n- [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle ([#24384](https://github.com/apache/pulsar/pull/24384))\r\n- [fix][ml]Still got BK ledger, even though it has been deleted after offloaded ([#24432](https://github.com/apache/pulsar/pull/24432))\r\n- [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync ([#24331](https://github.com/apache/pulsar/pull/24331))\r\n- [fix][offload] Exclude unnecessary dependencies from tiered storage provider / offloader nar files ([#24649](https://github.com/apache/pulsar/pull/24649))\r\n- [fix][meta] Fix ephemeral handling of ZK nodes and fix MockZooKeeper ephemeral and ZK stat handling ([#23988](https://github.com/apache/pulsar/pull/23988))\r\n- [fix][meta] Fix ephemeral Zookeeper put which creates a persistent znode ([#23984](https://github.com/apache/pulsar/pull/23984))\r\n- [fix][meta] Use `getChildrenFromStore` to read children data to avoid lost data ([#24665](https://github.com/apache/pulsar/pull/24665))\r\n- [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf ([#24391](https://github.com/apache/pulsar/pull/24391))\r\n- [improve][broker] add warn log when the delayedMessagesCount is incorrect. ([#24460](https://github.com/apache/pulsar/pull/24460))\r\n- [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers ([#24386](https://github.com/apache/pulsar/pull/24386))\r\n- [improve][broker] Avoid logging errors when there is a connection issue during subscription. ([#23939](https://github.com/apache/pulsar/pull/23939))\r\n- [improve][broker] Avoid PersistentReplicator.expireMessages logic compute backlog twice ([#23957](https://github.com/apache/pulsar/pull/23957))\r\n- [improve][broker] Avoid printing log for IncompatibleSchemaException in ServerCnx ([#23938](https://github.com/apache/pulsar/pull/23938))\r\n- [improve][broker] Deny removing local cluster from topic level replicated cluster policy ([#24351](https://github.com/apache/pulsar/pull/24351))\r\n- [improve][broker] Do not print error logs for NotFound or Conflict errors when using the Admin API ([#23928](https://github.com/apache/pulsar/pull/23928))\r\n- [improve][broker] Don't print error logs for ProducerBusyException ([#23929](https://github.com/apache/pulsar/pull/23929))\r\n- [improve][broker] Enable concurrent processing of pending read Entries to avoid duplicate Reads ([#24346](https://github.com/apache/pulsar/pull/24346))\r\n- [improve][broker] Enhance compaction triggering with message check to avoid unnecessary operations ([#24449](https://github.com/apache/pulsar/pull/24449))\r\n- [improve][broker] Exclude system topics from namespace level publish and dispatch rate limiting ([#23589](https://github.com/apache/pulsar/pull/23589))\r\n- [improve][broker] Extract duplication in AbstractTopic#incrementTopicEpochIfNeeded ([#24520](https://github.com/apache/pulsar/pull/24520))\r\n- [improve][broker] extract getMaxEntriesInThisBatch into a method and add unit test for it ([#24117](https://github.com/apache/pulsar/pull/24117))\r\n- [improve][broker] Implement PIP-430 Pulsar Broker cache improvements ([#24623](https://github.com/apache/pulsar/pull/24623))\r\n- [improve][broker] Improve Consumer.equals performance ([#23864](https://github.com/apache/pulsar/pull/23864))\r\n- [improve][broker] Improve SystemTopicBasedTopicPoliciesService reader to reduce GC pressure ([#23780](https://github.com/apache/pulsar/pull/23780))\r\n- [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs ([#24392](https://github.com/apache/pulsar/pull/24392))\r\n- [improve][broker] Optimize message deduplication by removing redundant null checks and variable declarations ([#24467](https://github.com/apache/pulsar/pull/24467))\r\n- [improve][broker] Optimize message expiration rate repeated update issues ([#24073](https://github.com/apache/pulsar/pull/24073))\r\n- [improve][broker] Optimize message TTL check ([#24271](https://github.com/apache/pulsar/pull/24271))\r\n- [improve][broker] Optimize subscription seek (cursor reset) by timestamp ([#22792](https://github.com/apache/pulsar/pull/22792))\r\n- [improve][broker] Optimize ThresholdShedder with improved boundary checks and parameter reuse ([#24064](https://github.com/apache/pulsar/pull/24064))\r\n- [improve][broker] PIP-406: Introduce metrics related to dispatch throttled events ([#23946](https://github.com/apache/pulsar/pull/23946))\r\n- [improve][broker] PIP-429: Optimize Handling of Compacted Last Entry by Skipping Payload Buffer Parsing  ([#24523](https://github.com/apache/pulsar/pull/24523))\r\n- [improve][broker] PIP427:Align pulsar-admin Default for Mark-Delete Rate with Broker Configuration ([#24470](https://github.com/apache/pulsar/pull/24470))\r\n- [improve][broker] re-elect the channel owner if no channel owner is found ([#23516](https://github.com/apache/pulsar/pull/23516))\r\n- [improve][broker] Reduce cpu usage of InMemoryDelayedDeliveryTracker. ([#24430](https://github.com/apache/pulsar/pull/24430))\r\n- [improve][broker] Reduce memory occupation of InMemoryRedeliveryTracker. ([#23640](https://github.com/apache/pulsar/pull/23640))\r\n- [improve][broker] Reduce memory occupation of the delayed message queue ([#23611](https://github.com/apache/pulsar/pull/23611))\r\n- [improve][broker] Refactor a private method to eliminate an unnecessary parameter ([#23915](https://github.com/apache/pulsar/pull/23915))\r\n- [improve][broker] Skip unloading when bundle throughput is zero (ExtensibleLoadManagerImpl only) ([#23626](https://github.com/apache/pulsar/pull/23626))\r\n- [improve][broker] Support showing client ip address in client stats while using reverse proxy ([#23974](https://github.com/apache/pulsar/pull/23974))\r\n- [improve][broker] Support values up to 2^32 in ConcurrentBitmapSortedLongPairSet ([#23878](https://github.com/apache/pulsar/pull/23878))\r\n- [improve][broker][pip-431] PIP-431: Add Creation and Last Publish Timestamps to Topic Stats ([#24471](https://github.com/apache/pulsar/pull/24471))\r\n- [improve][broker]clean up duplicate code and fix typo ([#24069](https://github.com/apache/pulsar/pull/24069))\r\n- [improve][broker]Find the target position at most once, during expiring messages for a topic, even though there are many subscriptions ([#24622](https://github.com/apache/pulsar/pull/24622))\r\n- [improve][broker]Improve the anti-concurrency mechanism expirationCheckInProgress ([#24607](https://github.com/apache/pulsar/pull/24607))\r\n- [improve][broker]Improve the feature \"Optimize subscription seek (cursor reset) by timestamp\": search less entries ([#24219](https://github.com/apache/pulsar/pull/24219))\r\n- [improve][broker]Improve the log when encountered in-flight read limitation ([#24359](https://github.com/apache/pulsar/pull/24359))\r\n- [improve][broker]Part-2 Add Admin API to delete topic policies ([#24602](https://github.com/apache/pulsar/pull/24602))\r\n- [improve][broker]Remove block calling that named cursor.asyncGetNth when expiring messages ([#24606](https://github.com/apache/pulsar/pull/24606))\r\n- [improve][admin] Opt-out of topic-existence check ([#23709](https://github.com/apache/pulsar/pull/23709))\r\n- [improve][admin] PIP-422 part 1: Support global topic-level replicated clusters policy ([#24390](https://github.com/apache/pulsar/pull/24390))\r\n- [improve][admin] Print error log if handle http response fails ([#23563](https://github.com/apache/pulsar/pull/23563))\r\n- [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into CommandAck ([#24443](https://github.com/apache/pulsar/pull/24443))\r\n- [improve][ml] Avoid repetitive nested lock for isMessageDeleted in ManagedCursorImpl ([#23609](https://github.com/apache/pulsar/pull/23609))\r\n- [improve][ml] Offload ledgers without check ledger length ([#24344](https://github.com/apache/pulsar/pull/24344))\r\n- [improve][ml] Optimize BlobStoreManagedLedgerOffloader.getOffloadPolicies ([#23776](https://github.com/apache/pulsar/pull/23776))\r\n- [improve][ml] Optimize ledger opening by skipping fully acknowledged ledgers ([#24655](https://github.com/apache/pulsar/pull/24655))\r\n- [improve][ml] Use lock-free queue in InflightReadsLimiter since there's no concurrent access  ([#23962](https://github.com/apache/pulsar/pull/23962))\r\n- [improve][ml]Release idle offloaded read handle only the ref count is 0 ([#24381](https://github.com/apache/pulsar/pull/24381))\r\n- [improve][ml]Set default value of managedLedgerPersistIndividualAckAsLongArray to true ([#23888](https://github.com/apache/pulsar/pull/23888))\r\n- [fix][schema] Reject unsupported Avro schema types during schema registration ([#24103](https://github.com/apache/pulsar/pull/24103))\r\n- [improve][offload] Skip tiered-storage deployment ([#23933](https://github.com/apache/pulsar/pull/23933))\r\n- [improve][offload] Use filesystemURI as the storage path ([#23591](https://github.com/apache/pulsar/pull/23591))\r\n- [improve][meta] Simplify getting parent path in ZKMetadataStore without using java.io.File ([#23996](https://github.com/apache/pulsar/pull/23996))\r\n- [improve][monitor] Add version=0.0.4 to /metrics content type for Prometheus 3.x compatibility ([#24060](https://github.com/apache/pulsar/pull/24060))\r\n- [improve][txn] Improve Reader in TransactionBuffer to reduce GC pressure ([#23779](https://github.com/apache/pulsar/pull/23779))\r\n- [refactor][broker] Expose the managedLedger field for the sub class ([#24448](https://github.com/apache/pulsar/pull/24448))\r\n- [refactor][broker] fix wrong method name checkTopicExists. ([#24293](https://github.com/apache/pulsar/pull/24293))\r\n- [refactor][ml] Replace cache eviction algorithm with centralized removal queue and job ([#24363](https://github.com/apache/pulsar/pull/24363))\r\n- [revert][broker] Revert #24200: Cleanup OneWayReplicatorUsingGlobalPartitionedTest and OneWayReplicatorUsingGlobalZKTest ([#24211](https://github.com/apache/pulsar/pull/24211))\r\n- [feat][broker] Implement allowBrokerOperationAsync in PulsarAuthorizationProvider to avoid exception thrown ([#23663](https://github.com/apache/pulsar/pull/23663))\r\n- [feat][broker] Prevent auto-creation of topics using legacy cluster-based naming scheme ([#23620](https://github.com/apache/pulsar/pull/23620))\r\n- [feat][monitor] Add offloader stats grafana dashboard ([#23479](https://github.com/apache/pulsar/pull/23479))\r\n\r\n### Client\r\n\r\n- [fix][client] Cannot access message data inside ProducerInterceptor#onSendAcknowledgement ([#23791](https://github.com/apache/pulsar/pull/23791))\r\n- [fix][client] Close orphan producer or consumer when the creation is interrupted ([#24539](https://github.com/apache/pulsar/pull/24539))\r\n- [fix][client] Copy eventTime to retry letter topic and DLQ messages ([#24059](https://github.com/apache/pulsar/pull/24059))\r\n- [fix][client] fix ArrayIndexOutOfBoundsException in SameAuthParamsLookupAutoClusterFailover ([#24662](https://github.com/apache/pulsar/pull/24662))\r\n- [fix][client] Fix ArrayIndexOutOfBoundsException when using SameAuthParamsLookupAutoClusterFailover ([#23336](https://github.com/apache/pulsar/pull/23336))\r\n- [fix][client] Fix building broken batched message when publishing ([#24061](https://github.com/apache/pulsar/pull/24061))\r\n- [fix][client] Fix consumer leak when thread is interrupted before subscribe completes ([#24100](https://github.com/apache/pulsar/pull/24100))\r\n- [fix][client] Fix consumer not returning encrypted messages on decryption failure with compression enabled ([#24356](https://github.com/apache/pulsar/pull/24356))\r\n- [fix][client] Fix ConsumerStats.getRateMsgsReceived javadoc ([#21618](https://github.com/apache/pulsar/pull/21618))\r\n- [fix][client] Fix deadlock of NegativeAcksTracker ([#23651](https://github.com/apache/pulsar/pull/23651))\r\n- [fix][client] Fix DLQ producer name conflicts when there are same name consumers ([#23577](https://github.com/apache/pulsar/pull/23577))\r\n- [fix][client] Fix enableRetry for consumers using legacy topic naming where cluster name is included ([#23753](https://github.com/apache/pulsar/pull/23753))\r\n- [fix][client] fix incomingMessageSize and client memory usage is negative ([#23624](https://github.com/apache/pulsar/pull/23624))\r\n- [fix][client] Fix inconsistent compression threshold behavior across batching modes ([#24102](https://github.com/apache/pulsar/pull/24102))\r\n- [fix][client] Fix incorrect producer.getPendingQueueSize due to incomplete queue implementation ([#24184](https://github.com/apache/pulsar/pull/24184))\r\n- [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer ([#24528](https://github.com/apache/pulsar/pull/24528))\r\n- [fix][client] Fix LoadManagerReport not found ([#23886](https://github.com/apache/pulsar/pull/23886))\r\n- [fix][client] Fix memory leak in ClientCnx.newLookup when there's TooManyRequestsException ([#23971](https://github.com/apache/pulsar/pull/23971))\r\n- [fix][client] Fix memory leak when message size exceeds max message size and batching is enabled ([#23967](https://github.com/apache/pulsar/pull/23967))\r\n- [fix][client] Fix producer publishing getting stuck after message with incompatible schema is discarded ([#24282](https://github.com/apache/pulsar/pull/24282))\r\n- [fix][client] Fix race-condition causing doReconsumeLater to hang when creating retryLetterProducer has failed ([#23560](https://github.com/apache/pulsar/pull/23560))\r\n- [fix][client] Fix reader message filtering issue during blue-green cluster switch ([#23693](https://github.com/apache/pulsar/pull/23693))\r\n- [fix][client] Fix Reader.hasMessageAvailable return wrong value after seeking by timestamp with startMessageIdInclusive ([#23502](https://github.com/apache/pulsar/pull/23502))\r\n- [fix][client] fix the beforeConsume() method earlier hit with message listener ([#23578](https://github.com/apache/pulsar/pull/23578))\r\n- [fix][client] Fix the javadoc for startMessageIdInclusive ([#23508](https://github.com/apache/pulsar/pull/23508))\r\n- [fix][client] Fix wrong start message id when it's a chunked message id ([#23713](https://github.com/apache/pulsar/pull/23713))\r\n- [fix][client] Fixed an issue where a cert chain could not be used in TLS authentication ([#23644](https://github.com/apache/pulsar/pull/23644))\r\n- [fix][client] Initializing client-authentication using configured auth params ([#23610](https://github.com/apache/pulsar/pull/23610))\r\n- [fix][client] Make DeadLetterPolicy & KeySharedPolicy serializable ([#23718](https://github.com/apache/pulsar/pull/23718))\r\n- [fix][client] Make protobuf-java dependency optional in java client libraries ([#23632](https://github.com/apache/pulsar/pull/23632))\r\n- [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge ([#24476](https://github.com/apache/pulsar/pull/24476))\r\n- [fix][client] Orphan producer when concurrently calling producer closing and reconnection ([#23853](https://github.com/apache/pulsar/pull/23853))\r\n- [fix][client] PIP-425: fix updateServiceUrl and fix flaky ServiceUrlQuarantineTest ([#24574](https://github.com/apache/pulsar/pull/24574))\r\n- [fix][client] Prevent embedding protobuf-java class files in pulsar-client-admin and pulsar-client-all ([#23468](https://github.com/apache/pulsar/pull/23468))\r\n- [fix][client] Prevent NPE when seeking with null topic in TopicMessageId ([#24404](https://github.com/apache/pulsar/pull/24404))\r\n- [fix][client] Prevent retry topic and dead letter topic producer leaks when sending of message fails ([#23824](https://github.com/apache/pulsar/pull/23824))\r\n- [fix][client] Skip schema validation when sending messages to DLQ to avoid infinite loop when schema validation fails on an incoming message ([#24663](https://github.com/apache/pulsar/pull/24663))\r\n- [fix][client] The partitionedProducer maxPendingMessages always is 0 ([#23593](https://github.com/apache/pulsar/pull/23593))\r\n- [fix][client] Use dedicated executor for requests in BinaryProtoLookupService ([#23378](https://github.com/apache/pulsar/pull/23378))\r\n- [fix][client]Add setCompressMinMsgBodySize method to ProducerBuilder for compression configuration flexibility ([#24164](https://github.com/apache/pulsar/pull/24164))\r\n- [fix][client]Prevent ZeroQueueConsumer from receiving batch messages when using MessagePayloadProcessor ([#24610](https://github.com/apache/pulsar/pull/24610))\r\n- [improve][client] Add `startTimestamp` and `endTimestamp` for consuming message in client cli ([#24521](https://github.com/apache/pulsar/pull/24521))\r\n- [improve][client] Add OpenTelemetry metrics for client memory buffer usage ([#24647](https://github.com/apache/pulsar/pull/24647))\r\n- [improve][client] Enhance error handling for non-exist subscription in consumer creation ([#23254](https://github.com/apache/pulsar/pull/23254))\r\n- [improve][client] Make replicateSubscriptionState nullable ([#23757](https://github.com/apache/pulsar/pull/23757))\r\n- [improve][client] PIP-391: Enable batch index ACK by default ([#24203](https://github.com/apache/pulsar/pull/24203))\r\n- [improve][client] PIP-393: Improve performance of Negative Acknowledgement ([#23600](https://github.com/apache/pulsar/pull/23600))\r\n- [improve][client] PIP-420: Supports users implement external schemas ([#24488](https://github.com/apache/pulsar/pull/24488))\r\n- [improve][client] PIP-421: Require Java 17 as the minimum for Pulsar Java client SDK ([#24475](https://github.com/apache/pulsar/pull/24475))\r\n- [improve][client] Print consumer stats log if prefetched messages are not zero ([#23698](https://github.com/apache/pulsar/pull/23698))\r\n- [improve][client] Reduce unshaded dependencies and shading warnings in shaded Java client modules ([#23647](https://github.com/apache/pulsar/pull/23647))\r\n- [improve][client] Replace NameUtil#generateRandomName with RandomStringUtils#randomAlphanumeric ([#23645](https://github.com/apache/pulsar/pull/23645))\r\n- [improve][client] Support load RSA PKCS#8 private key ([#24582](https://github.com/apache/pulsar/pull/24582))\r\n- [improve][client] Terminate consumer.receive() when consumer is closed ([#24550](https://github.com/apache/pulsar/pull/24550))\r\n- [improve][client] Update TypedMessageBuilder deliverAfter and deliverAt api comment ([#23969](https://github.com/apache/pulsar/pull/23969))\r\n- [improve][client] validate ClientConfigurationData earlier to avoid resource leaks ([#24187](https://github.com/apache/pulsar/pull/24187))\r\n- [improve][client][PIP-389] Add a producer config to improve compression performance ([#23525](https://github.com/apache/pulsar/pull/23525))\r\n- [improve][client][pip] Require Java 17 as the minimum for Pulsar Java client SDK ([#24364](https://github.com/apache/pulsar/pull/24364))\r\n- [improve][client]Improve transaction log when a TXN command timeout ([#24230](https://github.com/apache/pulsar/pull/24230))\r\n- [improve][client]PIP-425:Support connecting with next available endpoint for multi-endpoint serviceUrls ([#24387](https://github.com/apache/pulsar/pull/24387))\r\n- [clean][client] Clean code for the construction of retry/dead letter topic name ([#24082](https://github.com/apache/pulsar/pull/24082))\r\n- [feat][client] Support forward proxy for the ZTS server in pulsar-client-auth-athenz ([#23947](https://github.com/apache/pulsar/pull/23947))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] Align WindowContext with BaseContext ([#23628](https://github.com/apache/pulsar/pull/23628))\r\n- [fix][fn] Record Pulsar Function processing time properly for asynchronous functions ([#23811](https://github.com/apache/pulsar/pull/23811))\r\n- [fix][io] Acknowledge RabbitMQ message after processing the message successfully ([#24354](https://github.com/apache/pulsar/pull/24354))\r\n- [fix][io] Fix kinesis avro bytes handling ([#24316](https://github.com/apache/pulsar/pull/24316))\r\n- [fix][io] Fix KinesisSink json flattening for AVRO's SchemaType.BYTES ([#24132](https://github.com/apache/pulsar/pull/24132))\r\n- [fix][io] Fix pulsar-io:pom not found ([#23979](https://github.com/apache/pulsar/pull/23979))\r\n- [fix][io] Fix SyntaxWarning in Pulsar Python functions ([#24297](https://github.com/apache/pulsar/pull/24297))\r\n- [improve][fn] Implement PIP-412: Support setting messagePayloadProcessor in Pulsar Functions and Sinks ([#24163](https://github.com/apache/pulsar/pull/24163))\r\n- [improve][fn] Improve closing of producers in Pulsar Functions ProducerCache invalidation ([#23734](https://github.com/apache/pulsar/pull/23734))\r\n- [improve][fn] Improve implementation for maxPendingAsyncRequests async concurrency limit when return type is CompletableFuture<Void> ([#23708](https://github.com/apache/pulsar/pull/23708))\r\n- [improve][fn] Introduce NewOutputMessageWithError to enable error handling ([#24122](https://github.com/apache/pulsar/pull/24122))\r\n- [improve][fn] Set default tenant and namespace for ListFunctions cmd ([#23881](https://github.com/apache/pulsar/pull/23881))\r\n- [improve][io] Add configuration parameter for disabling aggregation for Kinesis Producers ([#24289](https://github.com/apache/pulsar/pull/24289))\r\n- [improve][io] Add dependency file name information to error message when .nar file validation fails with ZipException ([#24604](https://github.com/apache/pulsar/pull/24604))\r\n- [improve][io] Add support for the complete KinesisProducerConfiguration in KinesisSinkConfig ([#24489](https://github.com/apache/pulsar/pull/24489))\r\n- [improve][io] Allow skipping connector deployment ([#23932](https://github.com/apache/pulsar/pull/23932))\r\n- [improve][io] Bump io.lettuce:lettuce-core from 5.0.2.RELEASE to 6.5.1.RELEASE in /pulsar-io/redis ([#23685](https://github.com/apache/pulsar/pull/23685))\r\n- [improve][io] Enhance Kafka connector logging with focused bootstrap server information ([#24128](https://github.com/apache/pulsar/pull/24128))\r\n- [improve][io] support kafka connect transforms and predicates ([#24221](https://github.com/apache/pulsar/pull/24221))\r\n- [improve][io] Support specifying Kinesis KPL native binary path with 1.0 version specific path ([#24669](https://github.com/apache/pulsar/pull/24669))\r\n- [improve][io][kca] support fully-qualified topic names in source records ([#24248](https://github.com/apache/pulsar/pull/24248))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix default value of connectionMaxIdleSeconds in Pulsar Proxy ([#24529](https://github.com/apache/pulsar/pull/24529))\r\n- [fix][proxy] Fix incorrect client error when calling get topic metadata ([#24181](https://github.com/apache/pulsar/pull/24181))\r\n- [fix][proxy] Fix proxy OOM by replacing TopicName with a simple conversion method ([#24465](https://github.com/apache/pulsar/pull/24465))\r\n- [fix][proxy] Fix TooLongFrameException with Pulsar Proxy ([#24626](https://github.com/apache/pulsar/pull/24626))\r\n- [fix][proxy] Propagate client connection feature flags through Pulsar Proxy to Broker ([#24158](https://github.com/apache/pulsar/pull/24158))\r\n- [fix][doc] Refine ClientBuilder#memoryLimit and ConsumerBuilder#autoScaledReceiverQueueSizeEnabled javadoc ([#23687](https://github.com/apache/pulsar/pull/23687))\r\n- [fix][doc] Workaround Go Yaml issue go-yaml/yaml#789 in docker-compose example ([#24040](https://github.com/apache/pulsar/pull/24040))\r\n- [fix][doc]fix typo in Message and RawMessage ([#24416](https://github.com/apache/pulsar/pull/24416))\r\n- [improve][proxy] Make keep-alive interval configurable in Pulsar Proxy ([#23981](https://github.com/apache/pulsar/pull/23981))\r\n- [fix][ws] Allow websocket principals to specify originalPrincipal without proxy role ([#24642](https://github.com/apache/pulsar/pull/24642))\r\n- [fix][ws] Fix WebSocket authentication with authenticateOriginalAuthData enabled ([#24615](https://github.com/apache/pulsar/pull/24615))\r\n- [fix][ws] Fix WebSocket authorization issue due to originalPrincipal must be provided ([#24533](https://github.com/apache/pulsar/pull/24533))\r\n- [fix][ws] Fix WebSocket proxy originalPrincipal for HTTP admin API calls ([#24613](https://github.com/apache/pulsar/pull/24613))\r\n- [fix][ws] Implement missing http header data functions in AuthenticationDataSubscription ([#23638](https://github.com/apache/pulsar/pull/23638))\r\n- [fix][cli] Fix pulsar-shell cannot produce message with quotes and space ([#24320](https://github.com/apache/pulsar/pull/24320))\r\n- [fix][cli] Fix set topic retention policy failed ([#23688](https://github.com/apache/pulsar/pull/23688))\r\n- [fix][cli] Fix set-retention with >2GB size value for topic policy ([#23689](https://github.com/apache/pulsar/pull/23689))\r\n- [fix][cli] Print result of GetMessageIdByIndex command ([#24446](https://github.com/apache/pulsar/pull/24446))\r\n- [fix][misc] Exclude commons-configuration2 and commons-beanutils in pulsar-common ([#24612](https://github.com/apache/pulsar/pull/24612))\r\n- [fix][misc] Fix ByteBuf leak in SchemaUtils ([#24274](https://github.com/apache/pulsar/pull/24274))\r\n- [fix][misc] Fix ByteBuf leaks in tests by making ByteBufPair.coalesce release the input ByteBufPair ([#24273](https://github.com/apache/pulsar/pull/24273))\r\n- [fix][misc] Fix topics pattern consumer backwards compatibility ([#24537](https://github.com/apache/pulsar/pull/24537))\r\n- [fix][misc] Honor dynamic log levels in log4j2.yaml ([#23847](https://github.com/apache/pulsar/pull/23847))\r\n- [fix][misc] Unable to connect an etcd metastore with recent releases due to jetc-core sharding problem ([#23604](https://github.com/apache/pulsar/pull/23604))\r\n- [fix][misc]: ignore deleted ledger when tear down cluster ([#23831](https://github.com/apache/pulsar/pull/23831))\r\n- [improve][doc] Add all legacy PIPs from Pulsar wiki and GitHub issues as files to pip directory ([#24660](https://github.com/apache/pulsar/pull/24660))\r\n- [improve][doc] Cleanup some legacy PIP documents and improve PIP listing ([#24684](https://github.com/apache/pulsar/pull/24684))\r\n- [improve][doc] Improve the JavaDocs of sendAsync to avoid improper use ([#24601](https://github.com/apache/pulsar/pull/24601))\r\n- [improve][doc] Update PIP links in PIP documents converted from the wiki and remove trailing whitespace ([#24678](https://github.com/apache/pulsar/pull/24678))\r\n- [improve][cli] Make pulsar-perf termination more responsive by using Thread interrupt status ([#24309](https://github.com/apache/pulsar/pull/24309))\r\n- [improve][misc] Disable OTel by default when running the pulsar-perf tool ([#23585](https://github.com/apache/pulsar/pull/23585))\r\n- [improve][misc] Ingore claude code generated file ([#24474](https://github.com/apache/pulsar/pull/24474))\r\n- [improve][misc] Migrate from multiple nullness annotation libraries to JSpecify annotations ([#24239](https://github.com/apache/pulsar/pull/24239))\r\n- [improve][misc] Optimize topic list hashing so that potentially large String allocation is avoided ([#24525](https://github.com/apache/pulsar/pull/24525))\r\n- [cleanup][misc] Add override annotation ([#24033](https://github.com/apache/pulsar/pull/24033))\r\n- [fix][common] TopicName: Throw IllegalArgumentException if localName is whitespace only ([#23691](https://github.com/apache/pulsar/pull/23691))\r\n- [improve][log] Print ZK path if write to ZK fails due to data being too large to persist ([#23652](https://github.com/apache/pulsar/pull/23652))\r\n- [improve][offloaders] Automatically evict Offloaded Ledgers from memory ([#19783](https://github.com/apache/pulsar/pull/19783))\r\n- [cleanup] Remove unused config `autoShrinkForConsumerPendingAcksMap` ([#24315](https://github.com/apache/pulsar/pull/24315))\r\n- [cleanup] remove unused config messagePublishBufferCheckIntervalInMillis ([#24252](https://github.com/apache/pulsar/pull/24252))\r\n- [cleanup] Remove unused static fields in BrokerService ([#24251](https://github.com/apache/pulsar/pull/24251))\r\n- [fix] [admin] Fix lookup get a null result if uses proxy ([#23556](https://github.com/apache/pulsar/pull/23556))\r\n- [fix] [broker] Add consumer name for subscription stats ([#23671](https://github.com/apache/pulsar/pull/23671))\r\n- [fix] [broker] Fix acknowledgeCumulativeAsync block when ackReceipt is enabled ([#23841](https://github.com/apache/pulsar/pull/23841))\r\n- [fix] [broker] Fix config replicationStartAt does not work when set it to earliest ([#23719](https://github.com/apache/pulsar/pull/23719))\r\n- [fix] [broker] Fix items in dispatcher.recentlyJoinedConsumers are out-of-order, which may cause a delivery stuck ([#23802](https://github.com/apache/pulsar/pull/23802))\r\n- [fix] [broker] fix NPE when calculating a topic's backlogQuota ([#23720](https://github.com/apache/pulsar/pull/23720))\r\n- [fix] [broker] Fix race-condition causing repeated delete topic ([#23522](https://github.com/apache/pulsar/pull/23522))\r\n- [fix] [broker] No longer allow creating subscription that contains slash ([#23594](https://github.com/apache/pulsar/pull/23594))\r\n- [fix] [broker] topics infinitely failed to delete after remove cluster from replicated clusters modifying when using partitioned system topic ([#24097](https://github.com/apache/pulsar/pull/24097))\r\n- [fix] [client] call redeliver 1 msg but did 2 msgs ([#23943](https://github.com/apache/pulsar/pull/23943))\r\n- [fix] [client] Fix memory leak when publishing encountered a corner case error ([#23738](https://github.com/apache/pulsar/pull/23738))\r\n- [fix] [common] Fix RawMessageImpl.getProperties() failed when the message metadata contains the same key but with different values ([#23927](https://github.com/apache/pulsar/pull/23927))\r\n- [fix] [ml] Fix cursor metadata compatability issue when switching the config unackedRangesOpenCacheSetEnabled ([#23759](https://github.com/apache/pulsar/pull/23759))\r\n- [fix] [ml] incorrect non-durable cursor's backlog due to concurrently trimming ledger and non-durable cursor creation ([#23951](https://github.com/apache/pulsar/pull/23951))\r\n- [fix] [proxy] Fix pattern consumer does not work when using Proxy ([#23489](https://github.com/apache/pulsar/pull/23489))\r\n- [fix] Avoid negative estimated entry count ([#24055](https://github.com/apache/pulsar/pull/24055))\r\n- [fix] Avoid NPE when closing an uninitialized SameAuthParamsLookupAutoClusterFailover ([#23911](https://github.com/apache/pulsar/pull/23911))\r\n- [fix] Bring GitHub Discussions back by enabling discussions in .asf.yaml ([#24077](https://github.com/apache/pulsar/pull/24077))\r\n- [fix] Bump org.apache.solr:solr-core from 8.11.3 to 9.8.0 in /pulsar-io/solr ([#23899](https://github.com/apache/pulsar/pull/23899))\r\n- [fix] chore: remove unused preciseTopicPublishRateLimiterEnable ([#24249](https://github.com/apache/pulsar/pull/24249))\r\n- [fix] fix for code scanning alert no. 48: Uncontrolled data used in path expression ([#23985](https://github.com/apache/pulsar/pull/23985))\r\n- [fix] Fix issues with Pulsar Alpine docker image stability: remove glibc-compat  ([#23762](https://github.com/apache/pulsar/pull/23762))\r\n- [fix] Initialize UrlServiceProvider before trying to use transaction coordinator ([#23914](https://github.com/apache/pulsar/pull/23914))\r\n- [fix] Prevent IllegalStateException: Field 'message' is not set ([#24472](https://github.com/apache/pulsar/pull/24472))\r\n- [fix] Use Alpine 3.21 in base image ([#23964](https://github.com/apache/pulsar/pull/23964))\r\n- [fix][broker Fix bug in RangeCache where different instance of the key wouldn't ever match ([#23903](https://github.com/apache/pulsar/pull/23903))\r\n- [Fix][Client] Fix pending message not complete when closeAsync ([#23761](https://github.com/apache/pulsar/pull/23761))\r\n- [improve] [broker] Make the estimated entry size more accurate ([#23931](https://github.com/apache/pulsar/pull/23931))\r\n- [improve] [broker] Separate offload read and write thread pool ([#24025](https://github.com/apache/pulsar/pull/24025))\r\n- [improve] [test] Add more test for the case that client receives a SendError, which relates to the PR #23038 ([#23721](https://github.com/apache/pulsar/pull/23721))\r\n- [improve] Adapt startup scripts for Java 24 changes ([#24236](https://github.com/apache/pulsar/pull/24236))\r\n- [improve] Change PersistentMessageFinder's fields modifier to reuse in plugins ([#24308](https://github.com/apache/pulsar/pull/24308))\r\n- [improve] Enable metrics for all broker caches ([#24365](https://github.com/apache/pulsar/pull/24365))\r\n- [improve] Improve logic for enabling Netty leak detection ([#23613](https://github.com/apache/pulsar/pull/23613))\r\n- [improve] Improve the GitHub issue templates ([#24264](https://github.com/apache/pulsar/pull/24264))\r\n- [improve] Install coreutils in docker image to improve compatibility ([#23667](https://github.com/apache/pulsar/pull/23667))\r\n- [improve] Support overriding java.net.preferIPv4Stack with OPTS ([#23846](https://github.com/apache/pulsar/pull/23846))\r\n- [improve] Update to Oxia 0.6.0 and use new group-id ([#24438](https://github.com/apache/pulsar/pull/24438))\r\n- [improve] Use single buffer for metrics when noUnsafe use ([#23612](https://github.com/apache/pulsar/pull/23612))\r\n- [revert] Revert \"[improve][broker] Support showing client ip address in client stats while using reverse proxy (#23974)\" ([#24177](https://github.com/apache/pulsar/pull/24177))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Add develops for buildtools ([#23992](https://github.com/apache/pulsar/pull/23992))\r\n- [fix][build] Add missing <name> to submodules ([#24421](https://github.com/apache/pulsar/pull/24421))\r\n- [fix][build] Ensure that buildtools is Java 8 compatible and fix remaining compatibility issue ([#24307](https://github.com/apache/pulsar/pull/24307))\r\n- [fix][build] Fix docker image building by replacing deprecated and removed compress argument ([#24155](https://github.com/apache/pulsar/pull/24155))\r\n- [fix][build] Fix error \"Element encoding is not allowed here\" in pom.xml ([#23655](https://github.com/apache/pulsar/pull/23655))\r\n- [fix][build] Fix errorprone maven profile configuration ([#24246](https://github.com/apache/pulsar/pull/24246))\r\n- [fix][build] Fix skipTag and use explicit tag for image name ([#24168](https://github.com/apache/pulsar/pull/24168))\r\n- [fix][build] propose wagon-ssh-external version ([#24462](https://github.com/apache/pulsar/pull/24462))\r\n- [fix][build] Set project version to 4.1.0-SNAPSHOT ([#23442](https://github.com/apache/pulsar/pull/23442))\r\n- [fix][build] Use amazoncorretto:21-alpine3.20 JDK build for Alpine 3.20 ([#23898](https://github.com/apache/pulsar/pull/23898))\r\n- [fix][ci] Bump dependency-check to 12.1.0 to fix OWASP Dependency Check job ([#24083](https://github.com/apache/pulsar/pull/24083))\r\n- [fix][ci] Fix code coverage metrics in Pulsar CI ([#24595](https://github.com/apache/pulsar/pull/24595))\r\n- [fix][ci] Temporarily move OneWayReplicatorTestBase tests to flaky group to unblock CI ([#23478](https://github.com/apache/pulsar/pull/23478))\r\n- [fix][test] Add build-helper-maven-plugin for jetcd-core-shaded ([#24099](https://github.com/apache/pulsar/pull/24099))\r\n- [fix][test] Fix DeadLetterTopicTest.testDeadLetterTopicWithInitialSubscriptionAndMultiConsumers ([#23552](https://github.com/apache/pulsar/pull/23552))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest.testFetchPartitionedTopicMetadataWithCacheRefresh ([#24161](https://github.com/apache/pulsar/pull/24161))\r\n- [fix][test] Fix flaky EntryCacheManagerTest.simple ([#24609](https://github.com/apache/pulsar/pull/24609))\r\n- [fix][test] fix flaky GrowableArrayBlockingQueueTest.testPollBlockingThreadsTermination ([#24576](https://github.com/apache/pulsar/pull/24576))\r\n- [fix][test] Fix flaky KeySharedSubscriptionTest.testNoKeySendAndReceiveWithHashRangeAutoSplitStickyKeyConsumerSelector ([#23747](https://github.com/apache/pulsar/pull/23747))\r\n- [fix][test] Fix flaky ManagedCursorTest.testLastActiveAfterResetCursor and disable failing SchemaTest ([#24261](https://github.com/apache/pulsar/pull/24261))\r\n- [fix][test] Fix flaky ManagedLedgerTest.testDoNotGetOffloadPoliciesMultipleTimesWhenTrimLedgers ([#24330](https://github.com/apache/pulsar/pull/24330))\r\n- [fix][test] Fix flaky MultiTopicsReaderTest.testMultiNonPartitionedTopicWithRollbackDuration ([#24318](https://github.com/apache/pulsar/pull/24318))\r\n- [fix][test] Fix flaky NamespacesTest.testNamespacesApiRedirects ([#24194](https://github.com/apache/pulsar/pull/24194))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testMsgDropStat ([#24134](https://github.com/apache/pulsar/pull/24134))\r\n- [fix][test] Fix flaky PrometheusMetricsTest.testBrokerMetrics ([#24042](https://github.com/apache/pulsar/pull/24042))\r\n- [fix][test] Fix flaky PulsarBrokerStatsClientTest.testTopicInternalStats ([#24341](https://github.com/apache/pulsar/pull/24341))\r\n- [fix][test] Fix flaky SimpleBrokerStartTest.testNoNICSpeed ([#24415](https://github.com/apache/pulsar/pull/24415))\r\n- [fix][test] Fix flaky test MetadataStoreTest.emptyStoreTest ([#23998](https://github.com/apache/pulsar/pull/23998))\r\n- [fix][test] Fix flaky test OneWayReplicatorUsingGlobalZKTest.testConfigReplicationStartAt ([#24011](https://github.com/apache/pulsar/pull/24011))\r\n- [fix][test] fix flaky testNegativeAcksWithBackoff when batch enabled. ([#23986](https://github.com/apache/pulsar/pull/23986))\r\n- [fix][test] Fix invalid test CompactionTest.testDeleteCompactedLedgerWithSlowAck ([#24166](https://github.com/apache/pulsar/pull/24166))\r\n- [fix][test] Fix ManagedCursorTest.testForceCursorRecovery ([#23518](https://github.com/apache/pulsar/pull/23518))\r\n- [fix][test] Fix memory leak via OTel shutdown hooks in tests ([#23483](https://github.com/apache/pulsar/pull/23483))\r\n- [fix][test] Fix more ByteBuf resource leaks in tests, part 4 ([#24332](https://github.com/apache/pulsar/pull/24332))\r\n- [fix][test] Fix more Netty ByteBuf leaks in tests ([#24299](https://github.com/apache/pulsar/pull/24299))\r\n- [fix][test] Fix more resource leaks in tests ([#24314](https://github.com/apache/pulsar/pull/24314))\r\n- [fix][test] Fix multiple ByteBuf leaks in tests ([#24281](https://github.com/apache/pulsar/pull/24281))\r\n- [fix][test] Fix multiple resource leaks in tests ([#24218](https://github.com/apache/pulsar/pull/24218))\r\n- [fix][test] Fix NonDurableSubscriptionTest.testInitReaderAtSpecifiedP… ([#23293](https://github.com/apache/pulsar/pull/23293))\r\n- [fix][test] Fix quiet time implementation in BrokerTestUtil.receiveMessages ([#23876](https://github.com/apache/pulsar/pull/23876))\r\n- [fix][test] Fix remaining UnfinishedStubbingException issue with AuthZTests ([#24174](https://github.com/apache/pulsar/pull/24174))\r\n- [fix][test] Fix resource leaks in ProxyTest and fix invalid tests ([#24204](https://github.com/apache/pulsar/pull/24204))\r\n- [fix][test] Fix resource leaks in PulsarBrokerStarterTest ([#24235](https://github.com/apache/pulsar/pull/24235))\r\n- [fix][test] Fix running ClusterMetadataSetupTest in IDE ([#23492](https://github.com/apache/pulsar/pull/23492))\r\n- [fix][test] Fix SimpleProducerConsumerTest.testMultiTopicsConsumerImplPauseForManualSubscription ([#23546](https://github.com/apache/pulsar/pull/23546))\r\n- [fix][test] Fix TestNG BetweenTestClassesListenerAdapter listener ([#24258](https://github.com/apache/pulsar/pull/24258))\r\n- [fix][test] Fix UnfinishedStubbing issue in AuthZTests ([#24165](https://github.com/apache/pulsar/pull/24165))\r\n- [fix][test] Improve reliability of IncrementPartitionsTest ([#24172](https://github.com/apache/pulsar/pull/24172))\r\n- [fix][test] Prevent OOM in test by not spying invocations in SimpleProducerConsumerTest ([#23486](https://github.com/apache/pulsar/pull/23486))\r\n- [fix][test] Remove useless test code ([#23823](https://github.com/apache/pulsar/pull/23823))\r\n- [fix][test] Simplify BetweenTestClassesListenerAdapter and fix issue with BeforeTest/AfterTest annotations ([#24304](https://github.com/apache/pulsar/pull/24304))\r\n- [fix][test] Update partitioned topic subscription assertions in IncrementPartitionsTest ([#24056](https://github.com/apache/pulsar/pull/24056))\r\n- [fix][test]: Flaky-test: GetPartitionMetadataMultiBrokerTest.testCompatibilityDifferentBrokersForNonPersistentTopic ([#23666](https://github.com/apache/pulsar/pull/23666))\r\n- [fix][test]fix flaky test BrokerServiceAutoTopicCreationTest.testDynamicConfigurationTopicAutoCreationPartitioned ([#24505](https://github.com/apache/pulsar/pull/24505))\r\n- [fix][test]Fix flaky test testTopicUnloadAfterSessionRebuild ([#23852](https://github.com/apache/pulsar/pull/23852))\r\n- [fix][test]Fix flaky test V1_ProducerConsumerTest.testConcurrentConsumerReceiveWhileReconnect ([#24019](https://github.com/apache/pulsar/pull/24019))\r\n- [fix][test]Flaky-test: SchemaServiceTest.testSchemaRegistryMetrics ([#23566](https://github.com/apache/pulsar/pull/23566))\r\n- [fix][test]flaky-test:ManagedLedgerInterceptorImplTest.testManagedLedgerPayloadInputProcessorFailure ([#24170](https://github.com/apache/pulsar/pull/24170))\r\n- [improve][build] Allow building and running tests on JDK 24 and upcoming JDK 25 LTS ([#24268](https://github.com/apache/pulsar/pull/24268))\r\n- [improve][build] Build apachepulsar/pulsar-io-kinesis-sink-kinesis_producer with Alpine 3.21 ([#24180](https://github.com/apache/pulsar/pull/24180))\r\n- [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 ([#24514](https://github.com/apache/pulsar/pull/24514))\r\n- [improve][build] Improve thread leak detector by ignoring \"Attach Listener\" thread ([#24277](https://github.com/apache/pulsar/pull/24277))\r\n- [improve][build] Increase maven resolver's sync context timeout ([#24666](https://github.com/apache/pulsar/pull/24666))\r\n- [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 ([#24473](https://github.com/apache/pulsar/pull/24473))\r\n- [improve][build] Skip top level hidden directories from license check and add instructions about AI tool directories ([#24614](https://github.com/apache/pulsar/pull/24614))\r\n- [improve][build] Suppress JVM class sharing warning when running tests ([#24278](https://github.com/apache/pulsar/pull/24278))\r\n- [improve][build] Use org.apache.nifi:nifi-nar-maven-plugin:2.1.0 with skipDocGeneration=true ([#24668](https://github.com/apache/pulsar/pull/24668))\r\n- [improve][ci] Add Netty leak detection reporting to Pulsar CI ([#24272](https://github.com/apache/pulsar/pull/24272))\r\n- [improve][ci] Disable detailed console logging for integration tests in CI ([#24266](https://github.com/apache/pulsar/pull/24266))\r\n- [improve][ci] Increase Maven max heap size to 2048M and tune GCLockerRetryAllocationCount ([#23883](https://github.com/apache/pulsar/pull/23883))\r\n- [improve][ci] Move ZkSessionExpireTest to flaky group to unblock CI ([#23810](https://github.com/apache/pulsar/pull/23810))\r\n- [improve][ci] Prevent git force push to more recent maintenance branches ([#23464](https://github.com/apache/pulsar/pull/23464))\r\n- [improve][ci] Publish build scans to develocity.apache.org ([#23851](https://github.com/apache/pulsar/pull/23851))\r\n- [improve][ci] Skip \"OWASP dependency check\" when data wasn't found in cache ([#23970](https://github.com/apache/pulsar/pull/23970))\r\n- [improve][test] Add solution to PulsarMockBookKeeper for intercepting reads ([#23875](https://github.com/apache/pulsar/pull/23875))\r\n- [improve][test] Add test for concurrent processing of pending read Entries ([#24519](https://github.com/apache/pulsar/pull/24519))\r\n- [improve][test] Add test for dead letter topic with max unacked messages blocking ([#24535](https://github.com/apache/pulsar/pull/24535))\r\n- [improve][test] Add test for retrieving bookie metrics via HTTP ([#24408](https://github.com/apache/pulsar/pull/24408))\r\n- [improve][test] Added message properties tests for batch and non-batch messages ([#23473](https://github.com/apache/pulsar/pull/23473))\r\n- [improve][test] Clarify method signatures in Bookkeeper mock client ([#23598](https://github.com/apache/pulsar/pull/23598))\r\n- [improve][test] Disable OTel autoconfigured exporters in tests ([#23540](https://github.com/apache/pulsar/pull/23540))\r\n- [improve][test] Reduce OneWayReplicatorUsingGlobalZKTest.testRemoveCluster execution time ([#23633](https://github.com/apache/pulsar/pull/23633))\r\n- [improve][test] Refactor the way way pulsar-io-debezium-oracle nar file is patched when building the test image ([#24586](https://github.com/apache/pulsar/pull/24586))\r\n- [improve][test] Remove EntryCacheCreator from ManagedLedgerFactoryImpl ([#24552](https://github.com/apache/pulsar/pull/24552))\r\n- [improve][test] Support decorating topic, subscription, dispatcher, ManagedLedger and ManagedCursors instances in tests ([#23892](https://github.com/apache/pulsar/pull/23892))\r\n- [improve][test] Use configured session timeout for MockZooKeeper and TestZKServer in PulsarTestContext ([#24171](https://github.com/apache/pulsar/pull/24171))\r\n- [improve][test]Add new test PartitionCreationTest.testGetPoliciesIfPartitionsNotCreated ([#24681](https://github.com/apache/pulsar/pull/24681))\r\n- [cleanup][build] skip generating pom.xml.versionsBackup ([#23639](https://github.com/apache/pulsar/pull/23639))\r\n- [cleanup][test] Cleanup OneWayReplicatorUsingGlobalPartitionedTest and OneWayReplicatorUsingGlobalZKTest ([#24200](https://github.com/apache/pulsar/pull/24200))\r\n- [cleanup][test] Remove unused parameter from deleteNamespaceWithRetry method in MockedPulsarServiceBaseTest ([#24283](https://github.com/apache/pulsar/pull/24283))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/milestone/40?closed=1)."},{"url":"https://api.github.com/repos/apache/pulsar/releases/236599591","assets_url":"https://api.github.com/repos/apache/pulsar/releases/236599591/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/236599591/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.6","id":236599591,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4OGjkn","tag_name":"v4.0.6","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-07-31T14:29:56Z","updated_at":"2025-07-31T16:38:06Z","published_at":"2025-07-31T14:30:21Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.6","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.6","body":"#### 2025-07-31\r\n\r\n### Known issues\r\n\r\n- The changes from PR [#24533](https://github.com/apache/pulsar/pull/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.\r\n  - A fix will be provided in the next release with [#24593](https://github.com/apache/pulsar/pull/24593)\r\n\r\n### Library updates\r\n\r\n- [improve] Upgrade pulsar-client-python to 3.8.0 in Docker image ([#24544](https://github.com/apache/pulsar/pull/24544))\r\n- [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final ([#24397](https://github.com/apache/pulsar/pull/24397))\r\n- [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 ([#24564](https://github.com/apache/pulsar/pull/24564))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 ([#24547](https://github.com/apache/pulsar/pull/24547))\r\n- [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 ([#24473](https://github.com/apache/pulsar/pull/24473))\r\n- [improve][build] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 ([#24514](https://github.com/apache/pulsar/pull/24514))\r\n- [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](https://github.com/apache/pulsar/pull/24468))\r\n- [fix][sec] Remove dependency on out-dated commons-configuration 1.x ([#24562](https://github.com/apache/pulsar/pull/24562))\r\n- [improve][misc] Upgrade RE2/J to 1.8 ([#24530](https://github.com/apache/pulsar/pull/24530))\r\n\r\n### Broker\r\n\r\n- [fix][broker] expose consumer name for partitioned topic stats ([#24360](https://github.com/apache/pulsar/pull/24360))\r\n- [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly ([#24551](https://github.com/apache/pulsar/pull/24551))\r\n- [fix][broker] Fix deduplication replay might never complete for exceptions ([#24511](https://github.com/apache/pulsar/pull/24511))\r\n- [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry ([#24506](https://github.com/apache/pulsar/pull/24506))\r\n- [fix][broker] Fix exclusive producer creation when last shared producer closes ([#24516](https://github.com/apache/pulsar/pull/24516))\r\n- [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists ([#24350](https://github.com/apache/pulsar/pull/24350))\r\n- [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues ([#24569](https://github.com/apache/pulsar/pull/24569))\r\n- [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters ([#24543](https://github.com/apache/pulsar/pull/24543))\r\n- [fix][broker] Fix maxTopicsPerNamespace might report a false failure ([#24560](https://github.com/apache/pulsar/pull/24560))\r\n- [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](https://github.com/apache/pulsar/pull/24424))\r\n- [fix][broker] Ignore metadata changes when broker is not in the Started state ([#24352](https://github.com/apache/pulsar/pull/24352))\r\n- [fix][broker] No longer allow creating subscription that contains slash ([#23594](https://github.com/apache/pulsar/pull/23594))\r\n- [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it ([#24419](https://github.com/apache/pulsar/pull/24419))\r\n- [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers ([#24453](https://github.com/apache/pulsar/pull/24453))\r\n- [fix][broker] Resolve the issue of frequent updates in message expiration deletion rate ([#24190](https://github.com/apache/pulsar/pull/24190))\r\n- [fix][broker]excessive replication speed leads to error: Producer send queue is full ([#24189](https://github.com/apache/pulsar/pull/24189))\r\n- [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently ([#24366](https://github.com/apache/pulsar/pull/24366))\r\n- [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect ([#24279](https://github.com/apache/pulsar/pull/24279))\r\n- [fix][broker]Non-global topic policies and global topic policies overwrite each other ([#24286](https://github.com/apache/pulsar/pull/24286))\r\n- [fix] Prevent IllegalStateException: Field 'message' is not set ([#24472](https://github.com/apache/pulsar/pull/24472))\r\n- [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled ([#24406](https://github.com/apache/pulsar/pull/24406))\r\n- [fix][ml] Enhance OpFindNewest to support skip non-recoverable data ([#24441](https://github.com/apache/pulsar/pull/24441))\r\n- [fix][ml] Fix asyncReadEntries might never complete if empty entries are read from BK ([#24515](https://github.com/apache/pulsar/pull/24515))\r\n- [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue ([#24338](https://github.com/apache/pulsar/pull/24338))\r\n- [fix][ml] Fix the possibility of message loss or disorder when ML PayloadProcessor processing fails ([#24522](https://github.com/apache/pulsar/pull/24522))\r\n- [fix][ml]Received more than once callback when calling cursor.delete ([#24405](https://github.com/apache/pulsar/pull/24405))\r\n- [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle ([#24384](https://github.com/apache/pulsar/pull/24384))\r\n- [fix][ml]Still got BK ledger, even though it has been deleted after offloaded ([#24432](https://github.com/apache/pulsar/pull/24432))\r\n- [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync ([#24331](https://github.com/apache/pulsar/pull/24331))\r\n- [fix][txn] Fix deadlock when loading transaction buffer snapshot ([#24401](https://github.com/apache/pulsar/pull/24401))\r\n- [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf ([#24391](https://github.com/apache/pulsar/pull/24391))\r\n- [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers ([#24386](https://github.com/apache/pulsar/pull/24386))\r\n- [improve][broker] change to warn log level for ack validation error ([#24459](https://github.com/apache/pulsar/pull/24459))\r\n- [improve][broker] Deny removing local cluster from topic level replicated cluster policy ([#24351](https://github.com/apache/pulsar/pull/24351))\r\n- [improve][broker] Improve the log when namespace bundle is not available ([#24434](https://github.com/apache/pulsar/pull/24434))\r\n- [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs ([#24392](https://github.com/apache/pulsar/pull/24392))\r\n- [improve][broker]Improve the log when encountered in-flight read limitation ([#24359](https://github.com/apache/pulsar/pull/24359))\r\n- [improve][ml] Offload ledgers without check ledger length ([#24344](https://github.com/apache/pulsar/pull/24344))\r\n- [improve][ml]Release idle offloaded read handle only the ref count is 0 ([#24381](https://github.com/apache/pulsar/pull/24381))\r\n- [improve][offloaders] Automatically evict Offloaded Ledgers from memory ([#19783](https://github.com/apache/pulsar/pull/19783))\r\n- [fix][broker] Fix NPE when getting delayed delivery policy ([#24512](https://github.com/apache/pulsar/pull/24512))\r\n- [fix][broker] Fix the wrong cache name ([#24407](https://github.com/apache/pulsar/pull/24407))\r\n- [fix][broker] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger ([#24518](https://github.com/apache/pulsar/pull/24518))\r\n- [fix][broker][branch-4.0] Revert \"[improve][broker] Reduce memory occupation of the delayed message queue ([#23611](https://github.com/apache/pulsar/pull/23611))\" ([#24429](https://github.com/apache/pulsar/pull/24429))\r\n- [fix][broker]Data lost due to conflict loaded up a topic for two brokers, when enabled ServiceUnitStateMetadataStoreTableViewImpl ([#24478](https://github.com/apache/pulsar/pull/24478))\r\n- [improve][broker] Enable concurrent processing of pending read Entries to avoid duplicate Reads ([#24346](https://github.com/apache/pulsar/pull/24346))\r\n- [improve][broker][branch-4.0] Update to Oxia 0.6.0 and use new group-id ([#24454](https://github.com/apache/pulsar/pull/24454))\r\n- [refactor][broker] Expose the managedLedger field for the sub class ([#24448](https://github.com/apache/pulsar/pull/24448))\r\n\r\n### Client\r\n\r\n- [fix][client] Close orphan producer or consumer when the creation is interrupted ([#24539](https://github.com/apache/pulsar/pull/24539))\r\n- [fix][client] Fix ClientCnx handleSendError NPE ([#24517](https://github.com/apache/pulsar/pull/24517))\r\n- [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer ([#24528](https://github.com/apache/pulsar/pull/24528))\r\n- [fix][client] Fix some potential resource leak ([#24402](https://github.com/apache/pulsar/pull/24402))\r\n- [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge ([#24476](https://github.com/apache/pulsar/pull/24476))\r\n- [fix][client] Prevent NPE when seeking with null topic in TopicMessageId ([#24404](https://github.com/apache/pulsar/pull/24404))\r\n- [fix][client][branch-4.0] Partitioned topics are unexpectedly created by client after deletion ([#24554](https://github.com/apache/pulsar/pull/24554)) ([#24571](https://github.com/apache/pulsar/pull/24571))\r\n- [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into CommandAck ([#24443](https://github.com/apache/pulsar/pull/24443))\r\n- [improve][client] Terminate consumer.receive() when consumer is closed ([#24550](https://github.com/apache/pulsar/pull/24550))\r\n- [fix][client] Fix consumer not returning encrypted messages on decryption failure with compression enabled ([#24356](https://github.com/apache/pulsar/pull/24356))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Acknowledge RabbitMQ message after processing the message successfully ([#24354](https://github.com/apache/pulsar/pull/24354))\r\n- [fix][io] Fix kinesis avro bytes handling ([#24316](https://github.com/apache/pulsar/pull/24316))\r\n- [fix][io] Fix data loss issue in Kinesis source connector ([#24501](https://github.com/apache/pulsar/pull/24501))\r\n- [fix][io] Fix Kinesis checkpoint mechanism to prevent data duplication ([#24534](https://github.com/apache/pulsar/pull/24534))\r\n- [fix][io] Make record properties configurable for kinesis source ([#24495](https://github.com/apache/pulsar/pull/24495))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix default value of connectionMaxIdleSeconds in Pulsar Proxy ([#24529](https://github.com/apache/pulsar/pull/24529))\r\n- [fix][proxy] Fix proxy OOM by replacing TopicName with a simple conversion method ([#24465](https://github.com/apache/pulsar/pull/24465))\r\n- [improve][misc] Optimize topic list hashing so that potentially large String allocation is avoided ([#24525](https://github.com/apache/pulsar/pull/24525))\r\n- [fix][ws] Fix WebSocket authorization issue due to originalPrincipal must be provided ([#24533](https://github.com/apache/pulsar/pull/24533))\r\n- [fix][cli] Fix pulsar-shell cannot produce message with quotes and space ([#24320](https://github.com/apache/pulsar/pull/24320))\r\n- [improve][client] Add `startTimestamp` and `endTimestamp` for consuming message in client cli ([#24521](https://github.com/apache/pulsar/pull/24521))\r\n- [fix][misc] Fix topics pattern consumer backwards compatibility ([#24537](https://github.com/apache/pulsar/pull/24537))\r\n- [improve] Enable metrics for all broker caches ([#24365](https://github.com/apache/pulsar/pull/24365))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Add missing &lt;name&gt; to submodules ([#24421](https://github.com/apache/pulsar/pull/24421))\r\n- [fix][test] Fix flaky AutoScaledReceiverQueueSizeTest.testNegativeClientMemory ([#24324](https://github.com/apache/pulsar/pull/24324))\r\n- [fix][test] fix flaky GrowableArrayBlockingQueueTest.testPollBlockingThreadsTermination ([#24576](https://github.com/apache/pulsar/pull/24576))\r\n- [fix][test]fix flaky test BrokerServiceAutoTopicCreationTest.testDynamicConfigurationTopicAutoCreationPartitioned ([#24505](https://github.com/apache/pulsar/pull/24505))\r\n- [improve][test] Remove EntryCacheCreator from ManagedLedgerFactoryImpl ([#24552](https://github.com/apache/pulsar/pull/24552))\r\n- [improve][ci] Fixes [#23079](https://github.com/apache/pulsar/pull/23079): Checkstyle checks applied to all test ([#24492](https://github.com/apache/pulsar/pull/24492))\r\n- [improve][test] Add test for concurrent processing of pending read Entries ([#24519](https://github.com/apache/pulsar/pull/24519))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.5...v4.0.6).\r\n","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/236599591/reactions","total_count":6,"+1":2,"-1":0,"laugh":0,"hooray":1,"confused":0,"heart":0,"rocket":3,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/236559587","assets_url":"https://api.github.com/repos/apache/pulsar/releases/236559587/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/236559587/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.8","id":236559587,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4OGZzj","tag_name":"v3.3.8","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-07-31T12:19:52Z","updated_at":"2025-07-31T16:40:53Z","published_at":"2025-07-31T12:20:14Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.8","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.8","body":"#### 2025-07-31\r\n\r\n### Library updates\r\n\r\n- [improve] Upgrade pulsar-client-python to 3.8.0 in Docker image ([#24544](https://github.com/apache/pulsar/pull/24544))\r\n- [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final ([#24397](https://github.com/apache/pulsar/pull/24397))\r\n- [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 ([#24564](https://github.com/apache/pulsar/pull/24564))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 ([#24547](https://github.com/apache/pulsar/pull/24547))\r\n- [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 ([#24473](https://github.com/apache/pulsar/pull/24473))\r\n- [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](https://github.com/apache/pulsar/pull/24468))\r\n- [fix][sec] Remove dependency on out-dated commons-configuration 1.x ([#24562](https://github.com/apache/pulsar/pull/24562))\r\n- [improve][misc] Upgrade RE2/J to 1.8 ([#24530](https://github.com/apache/pulsar/pull/24530))\r\n\r\n### Broker\r\n\r\n- [fix][broker] expose consumer name for partitioned topic stats ([#24360](https://github.com/apache/pulsar/pull/24360))\r\n- [fix][broker] Fix ack hole in cursor for geo-replication ([#20931](https://github.com/apache/pulsar/pull/20931))\r\n- [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly ([#24551](https://github.com/apache/pulsar/pull/24551))\r\n- [fix][broker] Fix deduplication replay might never complete for exceptions ([#24511](https://github.com/apache/pulsar/pull/24511))\r\n- [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry ([#24506](https://github.com/apache/pulsar/pull/24506))\r\n- [fix][broker] Fix exclusive producer creation when last shared producer closes ([#24516](https://github.com/apache/pulsar/pull/24516))\r\n- [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists ([#24350](https://github.com/apache/pulsar/pull/24350))\r\n- [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues ([#24569](https://github.com/apache/pulsar/pull/24569))\r\n- [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters ([#24543](https://github.com/apache/pulsar/pull/24543))\r\n- [fix][broker] Fix maxTopicsPerNamespace might report a false failure ([#24560](https://github.com/apache/pulsar/pull/24560))\r\n- [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](https://github.com/apache/pulsar/pull/24424))\r\n- [fix][broker] Ignore metadata changes when broker is not in the Started state ([#24352](https://github.com/apache/pulsar/pull/24352))\r\n- [Fix][broker] Limit replication rate based on bytes ([#22674](https://github.com/apache/pulsar/pull/22674))\r\n- [fix][broker] No longer allow creating subscription that contains slash ([#23594](https://github.com/apache/pulsar/pull/23594))\r\n- [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it ([#24419](https://github.com/apache/pulsar/pull/24419))\r\n- [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers ([#24453](https://github.com/apache/pulsar/pull/24453))\r\n- [fix][broker] Resolve the issue of frequent updates in message expiration deletion rate ([#24190](https://github.com/apache/pulsar/pull/24190))\r\n- [fix][broker]excessive replication speed leads to error: Producer send queue is full ([#24189](https://github.com/apache/pulsar/pull/24189))\r\n- [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently ([#24366](https://github.com/apache/pulsar/pull/24366))\r\n- [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect ([#24279](https://github.com/apache/pulsar/pull/24279))\r\n- [fix][broker]Non-global topic policies and global topic policies overwrite each other ([#24286](https://github.com/apache/pulsar/pull/24286))\r\n- [fix] Prevent IllegalStateException: Field 'message' is not set ([#24472](https://github.com/apache/pulsar/pull/24472))\r\n- [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled ([#24406](https://github.com/apache/pulsar/pull/24406))\r\n- [fix][ml] Enhance OpFindNewest to support skip non-recoverable data ([#24441](https://github.com/apache/pulsar/pull/24441))\r\n- [fix][ml] Enhance OpFindNewest to support skip non-recoverable data ([#24441](https://github.com/apache/pulsar/pull/24441))\r\n- [fix][ml] Fix asyncReadEntries might never complete if empty entries are read from BK ([#24515](https://github.com/apache/pulsar/pull/24515))\r\n- [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue ([#24338](https://github.com/apache/pulsar/pull/24338))\r\n- [fix][ml] Fix the possibility of message loss or disorder when ML PayloadProcessor processing fails ([#24522](https://github.com/apache/pulsar/pull/24522))\r\n- [fix][ml]Received more than once callback when calling cursor.delete ([#24405](https://github.com/apache/pulsar/pull/24405))\r\n- [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle ([#24384](https://github.com/apache/pulsar/pull/24384))\r\n- [fix][ml]Still got BK ledger, even though it has been deleted after offloaded ([#24432](https://github.com/apache/pulsar/pull/24432))\r\n- [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync ([#24331](https://github.com/apache/pulsar/pull/24331))\r\n- [fix][txn] Fix deadlock when loading transaction buffer snapshot ([#24401](https://github.com/apache/pulsar/pull/24401))\r\n- [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf ([#24391](https://github.com/apache/pulsar/pull/24391))\r\n- [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers ([#24386](https://github.com/apache/pulsar/pull/24386))\r\n- [improve][broker] change to warn log level for ack validation error ([#24459](https://github.com/apache/pulsar/pull/24459))\r\n- [improve][broker] Deny removing local cluster from topic level replicated cluster policy ([#24351](https://github.com/apache/pulsar/pull/24351))\r\n- [improve][broker] Improve the log when namespace bundle is not available ([#24434](https://github.com/apache/pulsar/pull/24434))\r\n- [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs ([#24392](https://github.com/apache/pulsar/pull/24392))\r\n- [improve][broker]Improve the log when encountered in-flight read limitation ([#24359](https://github.com/apache/pulsar/pull/24359))\r\n- [improve][ml] Offload ledgers without check ledger length ([#24344](https://github.com/apache/pulsar/pull/24344))\r\n- [improve][ml]Release idle offloaded read handle only the ref count is 0 ([#24381](https://github.com/apache/pulsar/pull/24381))\r\n- [improve][offloaders] Automatically evict Offloaded Ledgers from memory ([#19783](https://github.com/apache/pulsar/pull/19783))\r\n- [fix][broker] Fix NPE when getting delayed delivery policy ([#24512](https://github.com/apache/pulsar/pull/24512))\r\n- [fix][broker] Fix wrong backlog age metrics when the mark delete position point to a deleted ledger ([#24518](https://github.com/apache/pulsar/pull/24518))\r\n- [fix][broker][branch-3.3] Disable broken ExtensibleLoadManager tests and add closeInternalTopics in follower monitor ([#24557](https://github.com/apache/pulsar/pull/24557))\r\n- [improve][broker] Phase 1 of PIP-370 support disable create topics on remote cluster through replication  ([#23169](https://github.com/apache/pulsar/pull/23169))\r\n- [improve][broker] Part 2 of PIP-370: add metrics \"pulsar_replication_disconnected_count\" ([#23213](https://github.com/apache/pulsar/pull/23213))\r\n\r\n### Client\r\n\r\n- [fix][client] Close orphan producer or consumer when the creation is interrupted ([#24539](https://github.com/apache/pulsar/pull/24539))\r\n- [fix][client] Fix ClientCnx handleSendError NPE ([#24517](https://github.com/apache/pulsar/pull/24517))\r\n- [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer ([#24528](https://github.com/apache/pulsar/pull/24528))\r\n- [fix][client] Fix some potential resource leak ([#24402](https://github.com/apache/pulsar/pull/24402))\r\n- [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge ([#24476](https://github.com/apache/pulsar/pull/24476))\r\n- [fix][client] Prevent NPE when seeking with null topic in TopicMessageId ([#24404](https://github.com/apache/pulsar/pull/24404))\r\n- [fix][client][branch-4.0] Partitioned topics are unexpectedly created by client after deletion ([#24554](https://github.com/apache/pulsar/pull/24554)) ([#24571](https://github.com/apache/pulsar/pull/24571))\r\n- [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into CommandAck ([#24443](https://github.com/apache/pulsar/pull/24443))\r\n- [improve][client] Terminate consumer.receive() when consumer is closed ([#24550](https://github.com/apache/pulsar/pull/24550))\r\n- [fix][client] Fix RawReader interface compatibility\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Acknowledge RabbitMQ message after processing the message successfully ([#24354](https://github.com/apache/pulsar/pull/24354))\r\n- [fix][io] Fix kinesis avro bytes handling ([#24316](https://github.com/apache/pulsar/pull/24316))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix default value of connectionMaxIdleSeconds in Pulsar Proxy ([#24529](https://github.com/apache/pulsar/pull/24529))\r\n- [fix][proxy] Fix proxy OOM by replacing TopicName with a simple conversion method ([#24465](https://github.com/apache/pulsar/pull/24465))\r\n- [improve][misc] Optimize topic list hashing so that potentially large String allocation is avoided ([#24525](https://github.com/apache/pulsar/pull/24525))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Add missing &lt;name&gt; to submodules ([#24421](https://github.com/apache/pulsar/pull/24421))\r\n- [fix][test] Fix flaky AutoScaledReceiverQueueSizeTest.testNegativeClientMemory ([#24324](https://github.com/apache/pulsar/pull/24324))\r\n- [fix][test] fix flaky GrowableArrayBlockingQueueTest.testPollBlockingThreadsTermination ([#24576](https://github.com/apache/pulsar/pull/24576))\r\n- [fix][test]fix flaky test BrokerServiceAutoTopicCreationTest.testDynamicConfigurationTopicAutoCreationPartitioned ([#24505](https://github.com/apache/pulsar/pull/24505))\r\n- [improve][test] Remove EntryCacheCreator from ManagedLedgerFactoryImpl ([#24552](https://github.com/apache/pulsar/pull/24552))\r\n- [fix][test][branch-3.3] Fix ExtensibleLoadManager related tests blocking release\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.7...v3.3.8).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/236551516","assets_url":"https://api.github.com/repos/apache/pulsar/releases/236551516/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/236551516/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.13","id":236551516,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4OGX1c","tag_name":"v3.0.13","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-07-31T11:49:48Z","updated_at":"2025-07-31T12:10:32Z","published_at":"2025-07-31T11:51:55Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.13","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.13","body":"#### 2025-07-31\r\n\r\n### Library updates\r\n\r\n- [improve][broker][branch-3.0] Upgrade BookKeeper to 4.16.7\r\n- [improve] Upgrade pulsar-client-python to 3.8.0 in Docker image ([#24544](https://github.com/apache/pulsar/pull/24544))\r\n- [improve][misc] Upgrade Netty to 4.1.122.Final and tcnative to 2.0.72.Final ([#24397](https://github.com/apache/pulsar/pull/24397))\r\n- [fix][sec] Upgrade Kafka connector and clients version to 3.9.1 to address CVE-2025-27818 ([#24564](https://github.com/apache/pulsar/pull/24564))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22868 ([#24547](https://github.com/apache/pulsar/pull/24547))\r\n- [improve][build] replace org.apache.commons.lang to org.apache.commons.lang3 ([#24473](https://github.com/apache/pulsar/pull/24473))\r\n\r\n### Broker\r\n\r\n- [fix][broker] expose consumer name for partitioned topic stats ([#24360](https://github.com/apache/pulsar/pull/24360))\r\n- [fix][broker] Fix ack hole in cursor for geo-replication ([#20931](https://github.com/apache/pulsar/pull/20931))\r\n- [fix][broker] Fix Broker OOM due to too many waiting cursors and reuse a recycled OpReadEntry incorrectly ([#24551](https://github.com/apache/pulsar/pull/24551))\r\n- [fix][broker] Fix deduplication replay might never complete for exceptions ([#24511](https://github.com/apache/pulsar/pull/24511))\r\n- [fix][broker] Fix duplicate increment of ADD_OP_COUNT_UPDATER in OpAddEntry ([#24506](https://github.com/apache/pulsar/pull/24506))\r\n- [fix][broker] Fix exclusive producer creation when last shared producer closes ([#24516](https://github.com/apache/pulsar/pull/24516))\r\n- [fix][broker] Fix issue that topic policies was deleted after a sub topic deleted, even if the partitioned topic still exists ([#24350](https://github.com/apache/pulsar/pull/24350))\r\n- [fix][broker] Fix ManagedCursor state management race conditions and lifecycle issues ([#24569](https://github.com/apache/pulsar/pull/24569))\r\n- [fix][broker] Fix matching of topicsPattern for topic names which contain non-ascii characters ([#24543](https://github.com/apache/pulsar/pull/24543))\r\n- [fix][broker] Fix maxTopicsPerNamespace might report a false failure ([#24560](https://github.com/apache/pulsar/pull/24560))\r\n- [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](https://github.com/apache/pulsar/pull/24424))\r\n- [fix][broker] Ignore metadata changes when broker is not in the Started state ([#24352](https://github.com/apache/pulsar/pull/24352))\r\n- [Fix][broker] Limit replication rate based on bytes ([#22674](https://github.com/apache/pulsar/pull/22674))\r\n- [fix][broker] No longer allow creating subscription that contains slash ([#23594](https://github.com/apache/pulsar/pull/23594))\r\n- [fix][broker] Once the cluster is configured incorrectly, the broker maintains the incorrect cluster configuration even if you removed it ([#24419](https://github.com/apache/pulsar/pull/24419))\r\n- [fix][broker] replication does not work due to the mixed and repetitive sending of user messages and replication markers ([#24453](https://github.com/apache/pulsar/pull/24453))\r\n- [fix][broker] Resolve the issue of frequent updates in message expiration deletion rate ([#24190](https://github.com/apache/pulsar/pull/24190))\r\n- [fix][broker]excessive replication speed leads to error: Producer send queue is full ([#24189](https://github.com/apache/pulsar/pull/24189))\r\n- [fix][broker]Fix deadlock when compaction and topic deletion execute concurrently ([#24366](https://github.com/apache/pulsar/pull/24366))\r\n- [fix][broker]Global topic policies do not affect after unloading topic and persistence global topic policies never affect ([#24279](https://github.com/apache/pulsar/pull/24279))\r\n- [fix][broker]Non-global topic policies and global topic policies overwrite each other ([#24286](https://github.com/apache/pulsar/pull/24286))\r\n- [fix] Prevent IllegalStateException: Field 'message' is not set ([#24472](https://github.com/apache/pulsar/pull/24472))\r\n- [fix][ml] Cursor ignores the position that has an empty ack-set if disabled deletionAtBatchIndexLevelEnabled ([#24406](https://github.com/apache/pulsar/pull/24406))\r\n- [fix][ml] Enhance OpFindNewest to support skip non-recoverable data ([#24441](https://github.com/apache/pulsar/pull/24441))\r\n- [fix][ml] Fix asyncReadEntries might never complete if empty entries are read from BK ([#24515](https://github.com/apache/pulsar/pull/24515))\r\n- [fix][ml] Fix ManagedCursorImpl.individualDeletedMessages concurrent issue ([#24338](https://github.com/apache/pulsar/pull/24338))\r\n- [fix][ml] Fix the possibility of message loss or disorder when ML PayloadProcessor processing fails ([#24522](https://github.com/apache/pulsar/pull/24522))\r\n- [fix][ml]Received more than once callback when calling cursor.delete ([#24405](https://github.com/apache/pulsar/pull/24405))\r\n- [fix][ml]Revert a behavior change of releasing idle offloaded ledger handle: only release idle BlobStoreBackedReadHandle ([#24384](https://github.com/apache/pulsar/pull/24384))\r\n- [fix][ml]Still got BK ledger, even though it has been deleted after offloaded ([#24432](https://github.com/apache/pulsar/pull/24432))\r\n- [fix][offload] Complete the future outside of the reading loop in BlobStoreBackedReadHandleImplV2.readAsync ([#24331](https://github.com/apache/pulsar/pull/24331))\r\n- [fix][txn] Fix deadlock when loading transaction buffer snapshot ([#24401](https://github.com/apache/pulsar/pull/24401))\r\n- [improve][broker] Add managedCursor/LedgerInfoCompressionType settings to broker.conf ([#24391](https://github.com/apache/pulsar/pull/24391))\r\n- [improve][broker] Added synchronized for sendMessages in Non-Persistent message dispatchers ([#24386](https://github.com/apache/pulsar/pull/24386))\r\n- [improve][broker] change to warn log level for ack validation error ([#24459](https://github.com/apache/pulsar/pull/24459))\r\n- [improve][broker] Deny removing local cluster from topic level replicated cluster policy ([#24351](https://github.com/apache/pulsar/pull/24351))\r\n- [improve][broker] Improve the log when namespace bundle is not available ([#24434](https://github.com/apache/pulsar/pull/24434))\r\n- [improve][broker] Make maxBatchDeletedIndexToPersist configurable and document other related configs ([#24392](https://github.com/apache/pulsar/pull/24392))\r\n- [improve][broker]Improve the log when encountered in-flight read limitation ([#24359](https://github.com/apache/pulsar/pull/24359))\r\n- [improve][ml] Offload ledgers without check ledger length ([#24344](https://github.com/apache/pulsar/pull/24344))\r\n- [improve][ml]Release idle offloaded read handle only the ref count is 0 ([#24381](https://github.com/apache/pulsar/pull/24381))\r\n- [improve][offloaders] Automatically evict Offloaded Ledgers from memory ([#19783](https://github.com/apache/pulsar/pull/19783))\r\n\r\n### Client\r\n\r\n- [fix][client] Close orphan producer or consumer when the creation is interrupted ([#24539](https://github.com/apache/pulsar/pull/24539))\r\n- [fix][client] Fix ClientCnx handleSendError NPE ([#24517](https://github.com/apache/pulsar/pull/24517))\r\n- [fix][client] Fix issue in auto releasing of idle connection with topics pattern consumer ([#24528](https://github.com/apache/pulsar/pull/24528))\r\n- [fix][client] Fix some potential resource leak ([#24402](https://github.com/apache/pulsar/pull/24402))\r\n- [fix][client] NPE in MultiTopicsConsumerImpl.negativeAcknowledge ([#24476](https://github.com/apache/pulsar/pull/24476))\r\n- [fix][client] Prevent NPE when seeking with null topic in TopicMessageId ([#24404](https://github.com/apache/pulsar/pull/24404))\r\n- [fix][client][branch-4.0] Partitioned topics are unexpectedly created by client after deletion ([#24554](https://github.com/apache/pulsar/pull/24554)) ([#24571](https://github.com/apache/pulsar/pull/24571))\r\n- [fix][txn] Fix negative unacknowledged messages in transactions by ensuring that the batch size is added into CommandAck ([#24443](https://github.com/apache/pulsar/pull/24443))\r\n- [improve][client] Terminate consumer.receive() when consumer is closed ([#24550](https://github.com/apache/pulsar/pull/24550))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Acknowledge RabbitMQ message after processing the message successfully ([#24354](https://github.com/apache/pulsar/pull/24354))\r\n- [fix][io] Fix kinesis avro bytes handling ([#24316](https://github.com/apache/pulsar/pull/24316))\r\n- [fix][io][branch-3.0] Backport Kinesis Sink custom native executable support [#23762](https://github.com/apache/pulsar/pull/23762) ([#24349](https://github.com/apache/pulsar/pull/24349))\r\n- [fix][io][branch-3.0]Pulsar-SQL: Fix classcast ex when decode decimal value ([#24317](https://github.com/apache/pulsar/pull/24317))\r\n\r\n### Others\r\n\r\n- [fix][proxy] Fix default value of connectionMaxIdleSeconds in Pulsar Proxy ([#24529](https://github.com/apache/pulsar/pull/24529))\r\n- [fix][proxy] Fix proxy OOM by replacing TopicName with a simple conversion method ([#24465](https://github.com/apache/pulsar/pull/24465))\r\n- [improve][misc] Optimize topic list hashing so that potentially large String allocation is avoided ([#24525](https://github.com/apache/pulsar/pull/24525))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Add missing &lt;name&gt; to submodules ([#24421](https://github.com/apache/pulsar/pull/24421))\r\n- [fix][build] Fix potential insufficient protostuff-related configs ([#21629](https://github.com/apache/pulsar/pull/21629))\r\n- [fix][ci][branch-3.0] Fix issue in GitHub Actions when /etc/docker/daemon.json file doesn't exist\r\n- [fix][test] Cleanup resources if starting PulsarService fails in PulsarTestContext ([#21467](https://github.com/apache/pulsar/pull/21467))\r\n- [fix][test] Fix flaky AutoScaledReceiverQueueSizeTest.testNegativeClientMemory ([#24324](https://github.com/apache/pulsar/pull/24324))\r\n- [fix][test] fix flaky GrowableArrayBlockingQueueTest.testPollBlockingThreadsTermination ([#24576](https://github.com/apache/pulsar/pull/24576))\r\n- [fix][test] Fix flaky test SimpleProducerConsumerStatTest#testPartitionTopicStats ([#21642](https://github.com/apache/pulsar/pull/21642))\r\n- [fix][test] Move ExtensibleLoadManagerImplTest to flaky tests ([#22495](https://github.com/apache/pulsar/pull/22495))\r\n- [fix][test][branch-3.0] Correct topic policy loading logic and improve related tests ([#24451](https://github.com/apache/pulsar/pull/24451))\r\n- [fix][test]fix flaky test BrokerServiceAutoTopicCreationTest.testDynamicConfigurationTopicAutoCreationPartitioned ([#24505](https://github.com/apache/pulsar/pull/24505))\r\n- [improve][test] Fix flaky test SimpleProducerConsumerStatTest#testMsgRateExpired ([#20629](https://github.com/apache/pulsar/pull/20629))\r\n- [improve][test] Remove EntryCacheCreator from ManagedLedgerFactoryImpl ([#24552](https://github.com/apache/pulsar/pull/24552))\r\n- [improve][test][branch-3.0] Backport MockedPulsarServiceBaseTest.registerCloseable to branch-3.0\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.12...v3.0.13).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/220557726","assets_url":"https://api.github.com/repos/apache/pulsar/releases/220557726/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/220557726/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.7","id":220557726,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4NJXGe","tag_name":"v3.3.7","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-05-23T06:19:43Z","updated_at":"2025-05-23T06:26:41Z","published_at":"2025-05-23T06:26:41Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.7","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.7","body":"#### 2025-05-23\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 ([#24232](https://github.com/apache/pulsar/pull/24232))\r\n- [improve] Upgrade Apache Commons library versions to compatible versions ([#24205](https://github.com/apache/pulsar/pull/24205))\r\n- [improve] Upgrade Netty to 4.1.121.Final ([#24214](https://github.com/apache/pulsar/pull/24214))\r\n- [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image ([#24302](https://github.com/apache/pulsar/pull/24302))\r\n- [improve][build] Upgrade commons-compress version from 1.27.0 to 1.27.1 ([#24270](https://github.com/apache/pulsar/pull/24270))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Consumer stuck when delete subscription __compaction failed ([#23980](https://github.com/apache/pulsar/pull/23980))\r\n- [fix][broker] Fix broker shutdown delay by resolving hanging health checks ([#24210](https://github.com/apache/pulsar/pull/24210))\r\n- [fix][broker] Fix ByteBuf memory leak in REST API for publishing messages ([#24228](https://github.com/apache/pulsar/pull/24228))\r\n- [fix][broker] Fix cluster level OffloadedReadPriority to bookkeeper-first does not work ([#24151](https://github.com/apache/pulsar/pull/24151))\r\n- [fix][broker] Fix compaction service log's wrong condition ([#24207](https://github.com/apache/pulsar/pull/24207))\r\n- [fix][broker] fix ExtensibleLoadManager to override the ownerships concurrently without blocking load manager thread ([#24156](https://github.com/apache/pulsar/pull/24156))\r\n- [fix][broker] Fix HashedWheelTimer leak in PulsarService by stopping it in shutdown ([#24275](https://github.com/apache/pulsar/pull/24275))\r\n- [fix][broker] Fix HealthChecker deadlock in shutdown ([#24216](https://github.com/apache/pulsar/pull/24216))\r\n- [fix][broker] Fix potential deadlock when creating partitioned topic ([#24313](https://github.com/apache/pulsar/pull/24313))\r\n- [fix][broker] Fix seeking by timestamp can be reset the cursor position to earliest ([#23919](https://github.com/apache/pulsar/pull/23919))\r\n- [fix][broker] Fix some problems in calculate totalAvailableBookies in method getExcludedBookiesWithIsolationGroups when some bookies belongs to multiple isolation groups. ([#24091](https://github.com/apache/pulsar/pull/24091))\r\n- [fix][broker] Fix tenant creation and update with null value ([#24209](https://github.com/apache/pulsar/pull/24209))\r\n- [fix][broker] fix wrong method name checkTopicExists. ([#24293](https://github.com/apache/pulsar/pull/24293))\r\n- [fix][broker] Orphan schema after disabled a cluster for a namespace ([#24223](https://github.com/apache/pulsar/pull/24223))\r\n- [fix][broker] The feature brokerDeleteInactivePartitionedTopicMetadataEnabled leaves orphan topic policies and topic schemas ([#24150](https://github.com/apache/pulsar/pull/24150))\r\n- [fix][broker] Unregister non-static metrics collectors registered in Prometheus default registry ([#24257](https://github.com/apache/pulsar/pull/24257))\r\n- [fix][broker]Fix incorrect priority between topic policies and global topic policies ([#24254](https://github.com/apache/pulsar/pull/24254))\r\n- [fix][broker]fix memory leak, messages lost, incorrect replication state if using multiple schema versions(auto_produce) ([#24178](https://github.com/apache/pulsar/pull/24178))\r\n- [fix][admin] Backlog quota's policy is null which causes a NPE ([#24192](https://github.com/apache/pulsar/pull/24192))\r\n- [fix][ml] Fix ML thread blocking issue in internalGetPartitionedStats API ([#24167](https://github.com/apache/pulsar/pull/24167))\r\n- [fix][ml] Skip deleting cursor if it was already deleted before calling unsubscribe ([#24098](https://github.com/apache/pulsar/pull/24098))\r\n- [improve][broker] Optimize subscription seek (cursor reset) by timestamp ([#22792](https://github.com/apache/pulsar/pull/22792))\r\n- [improve][broker]Improve the feature \"Optimize subscription seek (cursor reset) by timestamp\": search less entries ([#24219](https://github.com/apache/pulsar/pull/24219))\r\n\r\n### Client\r\n\r\n- [fix][client] Fix incorrect producer.getPendingQueueSize due to incomplete queue implementation ([#24184](https://github.com/apache/pulsar/pull/24184))\r\n- [fix][client] Fix producer publishing getting stuck after message with incompatible schema is discarded ([#24282](https://github.com/apache/pulsar/pull/24282))\r\n- [improve][client] validate ClientConfigurationData earlier to avoid resource leaks ([#24187](https://github.com/apache/pulsar/pull/24187))\r\n- [improve][client]Improve transaction log when a TXN command timeout ([#24230](https://github.com/apache/pulsar/pull/24230))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix SyntaxWarning in Pulsar Python functions ([#24297](https://github.com/apache/pulsar/pull/24297))\r\n- [improve][io] Add configuration parameter for disabling aggregation for Kinesis Producers ([#24289](https://github.com/apache/pulsar/pull/24289))\r\n- [improve][io] support kafka connect transforms and predicates ([#24221](https://github.com/apache/pulsar/pull/24221))\r\n- [improve][io] Upgrade Kafka client and compatible Confluent platform version ([#24201](https://github.com/apache/pulsar/pull/24201))\r\n- [improve][io][kca] support fully-qualified topic names in source records ([#24248](https://github.com/apache/pulsar/pull/24248))\r\n\r\n### Others\r\n\r\n- [cleanup][misc] Add override annotation ([#24033](https://github.com/apache/pulsar/pull/24033))\r\n- [fix][cli] Refactor scripts to detect major Java version and pass correct add-opens parameters ([#22927](https://github.com/apache/pulsar/pull/22927))\r\n- [fix][misc] Fix ByteBuf leak in SchemaUtils ([#24274](https://github.com/apache/pulsar/pull/24274))\r\n- [fix][proxy] Fix incorrect client error when calling get topic metadata ([#24181](https://github.com/apache/pulsar/pull/24181))\r\n- [fix][proxy] Propagate client connection feature flags through Pulsar Proxy to Broker ([#24158](https://github.com/apache/pulsar/pull/24158))\r\n- [fix][schema] Reject unsupported Avro schema types during schema registration ([#24103](https://github.com/apache/pulsar/pull/24103))\r\n- [improve][cli] Make pulsar-perf termination more responsive by using Thread interrupt status ([#24309](https://github.com/apache/pulsar/pull/24309))\r\n- [improve][misc] Migrate from multiple nullness annotation libraries to JSpecify annotations ([#24239](https://github.com/apache/pulsar/pull/24239))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Ensure that buildtools is Java 8 compatible and fix remaining compatibility issue ([#24307](https://github.com/apache/pulsar/pull/24307))\r\n- [fix][build] Fix docker image building by replacing deprecated and removed compress argument ([#24155](https://github.com/apache/pulsar/pull/24155))\r\n- [fix][test] Fix flaky BatchMessageWithBatchIndexLevelTest.testBatchMessageAck ([#24212](https://github.com/apache/pulsar/pull/24212))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest ([#24162](https://github.com/apache/pulsar/pull/24162))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest.testFetchPartitionedTopicMetadataWithCacheRefresh ([#24161](https://github.com/apache/pulsar/pull/24161))\r\n- [fix][test] Fix flaky ManagedCursorTest.testLastActiveAfterResetCursor and disable failing SchemaTest ([#24261](https://github.com/apache/pulsar/pull/24261))\r\n- [fix][test] Fix flaky ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages ([#24244](https://github.com/apache/pulsar/pull/24244))\r\n- [fix][test] Fix flaky NamespacesTest.testNamespacesApiRedirects ([#24194](https://github.com/apache/pulsar/pull/24194))\r\n- [fix][test] Fix invalid test CompactionTest.testDeleteCompactedLedgerWithSlowAck ([#24166](https://github.com/apache/pulsar/pull/24166))\r\n- [fix][test] Fix more Netty ByteBuf leaks in tests ([#24299](https://github.com/apache/pulsar/pull/24299))\r\n- [fix][test] Fix multiple ByteBuf leaks in tests ([#24281](https://github.com/apache/pulsar/pull/24281))\r\n- [fix][test] Fix multiple resource leaks in tests ([#24218](https://github.com/apache/pulsar/pull/24218))\r\n- [fix][test] Fix remaining UnfinishedStubbingException issue with AuthZTests ([#24174](https://github.com/apache/pulsar/pull/24174))\r\n- [fix][test] Fix resource leaks in ProxyTest and fix invalid tests ([#24204](https://github.com/apache/pulsar/pull/24204))\r\n- [fix][test] Fix resource leaks in PulsarBrokerStarterTest ([#24235](https://github.com/apache/pulsar/pull/24235))\r\n- [fix][test] Fix TestNG BetweenTestClassesListenerAdapter listener ([#24258](https://github.com/apache/pulsar/pull/24258))\r\n- [fix][test] Fix UnfinishedStubbing issue in AuthZTests ([#24165](https://github.com/apache/pulsar/pull/24165))\r\n- [fix][test] Improve reliability of IncrementPartitionsTest ([#24172](https://github.com/apache/pulsar/pull/24172))\r\n- [fix][test] Simplify BetweenTestClassesListenerAdapter and fix issue with BeforeTest/AfterTest annotations ([#24304](https://github.com/apache/pulsar/pull/24304))\r\n- [fix][test] Update partitioned topic subscription assertions in IncrementPartitionsTest ([#24056](https://github.com/apache/pulsar/pull/24056))\r\n- [fix][test]flaky-test:ManagedLedgerInterceptorImplTest.testManagedLedgerPayloadInputProcessorFailure ([#24170](https://github.com/apache/pulsar/pull/24170))\r\n- [improve][test] Use configured session timeout for MockZooKeeper and TestZKServer in PulsarTestContext ([#24171](https://github.com/apache/pulsar/pull/24171))\r\n- [cleanup][test] Remove unused parameter from deleteNamespaceWithRetry method in MockedPulsarServiceBaseTest ([#24283](https://github.com/apache/pulsar/pull/24283))\r\n- [improve] Adapt startup scripts for Java 24 changes ([#24236](https://github.com/apache/pulsar/pull/24236))\r\n- [improve][build] Build apachepulsar/pulsar-io-kinesis-sink-kinesis_producer with Alpine 3.21 ([#24180](https://github.com/apache/pulsar/pull/24180))\r\n- [improve][build] Improve thread leak detector by ignoring \"Attach Listener\" thread ([#24277](https://github.com/apache/pulsar/pull/24277))\r\n- [improve][build] Upgrade Gradle Develocity Maven Extension dependencies ([#24260](https://github.com/apache/pulsar/pull/24260))\r\n- [improve][build] Upgrade Lombok to 1.18.38 to support JDK 24 ([#24237](https://github.com/apache/pulsar/pull/24237))\r\n- [improve][build] Upgrade SpotBugs to 4.9.x ([#24243](https://github.com/apache/pulsar/pull/24243))\r\n- [improve][build] Upgrade to jacoco 0.8.13 ([#24240](https://github.com/apache/pulsar/pull/24240))\r\n- [improve][build] Upgrade zstd version from 1.5.2-3 to 1.5.7-3 ([#24263](https://github.com/apache/pulsar/pull/24263))\r\n- [improve][ci] Disable detailed console logging for integration tests in CI ([#24266](https://github.com/apache/pulsar/pull/24266))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.6...v3.3.7).\r\n","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/220557726/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/220445890","assets_url":"https://api.github.com/repos/apache/pulsar/releases/220445890/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/220445890/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.5","id":220445890,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4NI7zC","tag_name":"v4.0.5","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-05-22T17:18:47Z","updated_at":"2025-05-22T17:29:02Z","published_at":"2025-05-22T17:29:02Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.5","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.5","body":"#### 2025-05-22\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 ([#24232](https://github.com/apache/pulsar/pull/24232))\r\n- [improve] Upgrade Netty to 4.1.121.Final ([#24214](https://github.com/apache/pulsar/pull/24214))\r\n- [improve] Upgrade Apache Commons library versions to compatible versions ([#24205](https://github.com/apache/pulsar/pull/24205))\r\n- [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image ([#24302](https://github.com/apache/pulsar/pull/24302))\r\n- [improve][build] Upgrade commons-compress version from 1.27.0 to 1.27.1 ([#24270](https://github.com/apache/pulsar/pull/24270))\r\n- [improve][build] Upgrade Lombok to 1.18.38 to support JDK 24 ([#24237](https://github.com/apache/pulsar/pull/24237))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Consumer stuck when delete subscription __compaction failed ([#23980](https://github.com/apache/pulsar/pull/23980))\r\n- [fix][broker] Fix broker shutdown delay by resolving hanging health checks ([#24210](https://github.com/apache/pulsar/pull/24210))\r\n- [fix][broker] Fix ByteBuf memory leak in REST API for publishing messages ([#24228](https://github.com/apache/pulsar/pull/24228))\r\n- [fix][broker] Fix cluster level OffloadedReadPriority to bookkeeper-first does not work ([#24151](https://github.com/apache/pulsar/pull/24151))\r\n- [fix][broker] Fix compaction service log's wrong condition ([#24207](https://github.com/apache/pulsar/pull/24207))\r\n- [fix][broker] fix ExtensibleLoadManager to override the ownerships concurrently without blocking load manager thread ([#24156](https://github.com/apache/pulsar/pull/24156))\r\n- [fix][broker] Fix HashedWheelTimer leak in PulsarService by stopping it in shutdown ([#24275](https://github.com/apache/pulsar/pull/24275))\r\n- [fix][broker] Fix HealthChecker deadlock in shutdown ([#24216](https://github.com/apache/pulsar/pull/24216))\r\n- [fix][broker] Fix NPE from the wrong iterator in the ownership cleanup job(ExtensibleLoadManagerImpl only) ([#24196](https://github.com/apache/pulsar/pull/24196))\r\n- [fix][broker] Fix potential deadlock when creating partitioned topic ([#24313](https://github.com/apache/pulsar/pull/24313))\r\n- [fix][broker] Fix some problems in calculate totalAvailableBookies in method getExcludedBookiesWithIsolationGroups when some bookies belongs to multiple isolation groups. ([#24091](https://github.com/apache/pulsar/pull/24091))\r\n- [fix][broker] Fix tenant creation and update with null value ([#24209](https://github.com/apache/pulsar/pull/24209))\r\n- [fix][broker] fix wrong method name checkTopicExists. ([#24293](https://github.com/apache/pulsar/pull/24293))\r\n- [fix][broker] Fixes Inconsistent ServiceUnitStateData View (ExtensibleLoadManagerImpl only) ([#24186](https://github.com/apache/pulsar/pull/24186))\r\n- [fix][broker] Orphan schema after disabled a cluster for a namespace ([#24223](https://github.com/apache/pulsar/pull/24223))\r\n- [fix][broker] The feature brokerDeleteInactivePartitionedTopicMetadataEnabled leaves orphan topic policies and topic schemas ([#24150](https://github.com/apache/pulsar/pull/24150))\r\n- [fix][broker] Unregister non-static metrics collectors registered in Prometheus default registry ([#24257](https://github.com/apache/pulsar/pull/24257))\r\n- [fix][broker]Fix incorrect priority between topic policies and global topic policies ([#24254](https://github.com/apache/pulsar/pull/24254))\r\n- [fix][broker]fix memory leak, messages lost, incorrect replication state if using multiple schema versions(auto_produce) ([#24178](https://github.com/apache/pulsar/pull/24178))\r\n- [fix][admin] Backlog quota's policy is null which causes a NPE ([#24192](https://github.com/apache/pulsar/pull/24192))\r\n- [fix][ml] Fix ML thread blocking issue in internalGetPartitionedStats API ([#24167](https://github.com/apache/pulsar/pull/24167))\r\n- [fix][ml] Skip deleting cursor if it was already deleted before calling unsubscribe ([#24098](https://github.com/apache/pulsar/pull/24098))\r\n\r\n### Client\r\n\r\n- [fix][client] Fix incorrect producer.getPendingQueueSize due to incomplete queue implementation ([#24184](https://github.com/apache/pulsar/pull/24184))\r\n- [fix][client] Fix producer publishing getting stuck after message with incompatible schema is discarded ([#24282](https://github.com/apache/pulsar/pull/24282))\r\n- [improve][client] validate ClientConfigurationData earlier to avoid resource leaks ([#24187](https://github.com/apache/pulsar/pull/24187))\r\n- [improve][client]Improve transaction log when a TXN command timeout ([#24230](https://github.com/apache/pulsar/pull/24230))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix SyntaxWarning in Pulsar Python functions ([#24297](https://github.com/apache/pulsar/pull/24297))\r\n- [improve][io] Add configuration parameter for disabling aggregation for Kinesis Producers ([#24289](https://github.com/apache/pulsar/pull/24289))\r\n- [improve][io] support kafka connect transforms and predicates ([#24221](https://github.com/apache/pulsar/pull/24221))\r\n- [improve][io] Upgrade Kafka client and compatible Confluent platform version ([#24201](https://github.com/apache/pulsar/pull/24201))\r\n- [improve][io][kca] support fully-qualified topic names in source records ([#24248](https://github.com/apache/pulsar/pull/24248))\r\n\r\n### Others\r\n\r\n- [cleanup] Remove unused config `autoShrinkForConsumerPendingAcksMap` ([#24315](https://github.com/apache/pulsar/pull/24315))\r\n- [cleanup] remove unused config messagePublishBufferCheckIntervalInMillis ([#24252](https://github.com/apache/pulsar/pull/24252))\r\n- [cleanup] Remove unused static fields in BrokerService ([#24251](https://github.com/apache/pulsar/pull/24251))\r\n- [cleanup][misc] Add override annotation ([#24033](https://github.com/apache/pulsar/pull/24033))\r\n- [cleanup][test] Remove unused parameter from deleteNamespaceWithRetry method in MockedPulsarServiceBaseTest ([#24283](https://github.com/apache/pulsar/pull/24283))\r\n- [fix] chore: remove unused preciseTopicPublishRateLimiterEnable ([#24249](https://github.com/apache/pulsar/pull/24249))\r\n- [fix][misc] Fix ByteBuf leak in SchemaUtils ([#24274](https://github.com/apache/pulsar/pull/24274))\r\n- [fix][misc] Fix ByteBuf leaks in tests by making ByteBufPair.coalesce release the input ByteBufPair ([#24273](https://github.com/apache/pulsar/pull/24273))\r\n- [fix][misc]: ignore deleted ledger when tear down cluster ([#23831](https://github.com/apache/pulsar/pull/23831))\r\n- [fix][proxy] Fix incorrect client error when calling get topic metadata ([#24181](https://github.com/apache/pulsar/pull/24181))\r\n- [fix][proxy] Propagate client connection feature flags through Pulsar Proxy to Broker ([#24158](https://github.com/apache/pulsar/pull/24158))\r\n- [fix][schema] Reject unsupported Avro schema types during schema registration ([#24103](https://github.com/apache/pulsar/pull/24103))\r\n- [improve][cli] Make pulsar-perf termination more responsive by using Thread interrupt status ([#24309](https://github.com/apache/pulsar/pull/24309))\r\n- [improve][misc] Migrate from multiple nullness annotation libraries to JSpecify annotations ([#24239](https://github.com/apache/pulsar/pull/24239))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Ensure that buildtools is Java 8 compatible and fix remaining compatibility issue ([#24307](https://github.com/apache/pulsar/pull/24307))\r\n- [fix][build] Fix docker image building by replacing deprecated and removed compress argument ([#24155](https://github.com/apache/pulsar/pull/24155))\r\n- [fix][build] Fix errorprone maven profile configuration ([#24246](https://github.com/apache/pulsar/pull/24246))\r\n- [fix][build] Fix skipTag and use explicit tag for image name ([#24168](https://github.com/apache/pulsar/pull/24168))\r\n- [improve] Adapt startup scripts for Java 24 changes ([#24236](https://github.com/apache/pulsar/pull/24236))\r\n- [improve][broker]Improve the feature \"Optimize subscription seek (cursor reset) by timestamp\": search less entries ([#24219](https://github.com/apache/pulsar/pull/24219))\r\n- [improve][build] Allow building and running tests on JDK 24 and upcoming JDK 25 LTS ([#24268](https://github.com/apache/pulsar/pull/24268))\r\n- [improve][build] Build apachepulsar/pulsar-io-kinesis-sink-kinesis_producer with Alpine 3.21 ([#24180](https://github.com/apache/pulsar/pull/24180))\r\n- [improve][build] Improve thread leak detector by ignoring \"Attach Listener\" thread ([#24277](https://github.com/apache/pulsar/pull/24277))\r\n- [improve][build] Suppress JVM class sharing warning when running tests ([#24278](https://github.com/apache/pulsar/pull/24278))\r\n- [improve][build] Upgrade errorprone to 2.38.0 ([#24242](https://github.com/apache/pulsar/pull/24242))\r\n- [improve][build] Upgrade Gradle Develocity Maven Extension dependencies ([#24260](https://github.com/apache/pulsar/pull/24260))\r\n- [improve][build] Upgrade Mockito to 5.17.0 and byte-buddy to 1.15.11 ([#24241](https://github.com/apache/pulsar/pull/24241))\r\n- [improve][build] Upgrade SpotBugs to 4.9.x ([#24243](https://github.com/apache/pulsar/pull/24243))\r\n- [improve][build] Upgrade to jacoco 0.8.13 ([#24240](https://github.com/apache/pulsar/pull/24240))\r\n- [improve][build] Upgrade zstd version from 1.5.2-3 to 1.5.7-3 ([#24263](https://github.com/apache/pulsar/pull/24263))\r\n- [improve][ci] Add Netty leak detection reporting to Pulsar CI ([#24272](https://github.com/apache/pulsar/pull/24272))\r\n- [improve][ci] Disable detailed console logging for integration tests in CI ([#24266](https://github.com/apache/pulsar/pull/24266))\r\n- [improve][test] Use configured session timeout for MockZooKeeper and TestZKServer in PulsarTestContext ([#24171](https://github.com/apache/pulsar/pull/24171))\r\n- [fix][test] Fix flaky BatchMessageWithBatchIndexLevelTest.testBatchMessageAck ([#24212](https://github.com/apache/pulsar/pull/24212))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest ([#24162](https://github.com/apache/pulsar/pull/24162))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest.testFetchPartitionedTopicMetadataWithCacheRefresh ([#24161](https://github.com/apache/pulsar/pull/24161))\r\n- [fix][test] Fix flaky ManagedCursorTest.testLastActiveAfterResetCursor and disable failing SchemaTest ([#24261](https://github.com/apache/pulsar/pull/24261))\r\n- [fix][test] Fix flaky ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages ([#24244](https://github.com/apache/pulsar/pull/24244))\r\n- [fix][test] Fix flaky NamespacesTest.testNamespacesApiRedirects ([#24194](https://github.com/apache/pulsar/pull/24194))\r\n- [fix][test] Fix invalid test CompactionTest.testDeleteCompactedLedgerWithSlowAck ([#24166](https://github.com/apache/pulsar/pull/24166))\r\n- [fix][test] Fix more Netty ByteBuf leaks in tests ([#24299](https://github.com/apache/pulsar/pull/24299))\r\n- [fix][test] Fix more resource leaks in tests ([#24314](https://github.com/apache/pulsar/pull/24314))\r\n- [fix][test] Fix multiple ByteBuf leaks in tests ([#24281](https://github.com/apache/pulsar/pull/24281))\r\n- [fix][test] Fix multiple resource leaks in tests ([#24218](https://github.com/apache/pulsar/pull/24218))\r\n- [fix][test] Fix remaining UnfinishedStubbingException issue with AuthZTests ([#24174](https://github.com/apache/pulsar/pull/24174))\r\n- [fix][test] Fix resource leaks in ProxyTest and fix invalid tests ([#24204](https://github.com/apache/pulsar/pull/24204))\r\n- [fix][test] Fix resource leaks in PulsarBrokerStarterTest ([#24235](https://github.com/apache/pulsar/pull/24235))\r\n- [fix][test] Fix TestNG BetweenTestClassesListenerAdapter listener ([#24258](https://github.com/apache/pulsar/pull/24258))\r\n- [fix][test] Fix UnfinishedStubbing issue in AuthZTests ([#24165](https://github.com/apache/pulsar/pull/24165))\r\n- [fix][test] Improve reliability of IncrementPartitionsTest ([#24172](https://github.com/apache/pulsar/pull/24172))\r\n- [fix][test] Simplify BetweenTestClassesListenerAdapter and fix issue with BeforeTest/AfterTest annotations ([#24304](https://github.com/apache/pulsar/pull/24304))\r\n- [fix][test] Update partitioned topic subscription assertions in IncrementPartitionsTest ([#24056](https://github.com/apache/pulsar/pull/24056))\r\n- [fix][test]flaky-test:ManagedLedgerInterceptorImplTest.testManagedLedgerPayloadInputProcessorFailure ([#24170](https://github.com/apache/pulsar/pull/24170))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.4...v4.0.5).\r\n","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/220445890/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":1,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/220442488","assets_url":"https://api.github.com/repos/apache/pulsar/releases/220442488/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/220442488/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.12","id":220442488,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4NI694","tag_name":"v3.0.12","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-05-22T17:18:24Z","updated_at":"2025-05-22T17:20:27Z","published_at":"2025-05-22T17:19:39Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.12","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.12","body":"#### 2025-05-22\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade Jetty to 9.4.57.v20241219 to mitigate CVE-2024-6763 ([#24232](https://github.com/apache/pulsar/pull/24232))\r\n- [improve] Upgrade Netty to 4.1.121.Final ([#24214](https://github.com/apache/pulsar/pull/24214))\r\n- [improve] Upgrade pulsar-client-python to 3.7.0 in Docker image ([#24302](https://github.com/apache/pulsar/pull/24302))\r\n- [improve][build] Upgrade Lombok to 1.18.38 to support JDK 24 ([#24237](https://github.com/apache/pulsar/pull/24237))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Consumer stuck when delete subscription __compaction failed ([#23980](https://github.com/apache/pulsar/pull/23980))\r\n- [fix][broker] Fix broker shutdown delay by resolving hanging health checks ([#24210](https://github.com/apache/pulsar/pull/24210))\r\n- [fix][broker] Fix ByteBuf memory leak in REST API for publishing messages ([#24228](https://github.com/apache/pulsar/pull/24228))\r\n- [fix][broker] Fix compaction service log's wrong condition ([#24207](https://github.com/apache/pulsar/pull/24207))\r\n- [fix][broker] Fix HashedWheelTimer leak in PulsarService by stopping it in shutdown ([#24275](https://github.com/apache/pulsar/pull/24275))\r\n- [fix][broker] Fix HealthChecker deadlock in shutdown ([#24216](https://github.com/apache/pulsar/pull/24216))\r\n- [fix][broker] Fix missing validation when setting retention policy on topic level ([#24032](https://github.com/apache/pulsar/pull/24032))\r\n- [fix][broker] Fix potential deadlock when creating partitioned topic ([#24313](https://github.com/apache/pulsar/pull/24313))\r\n- [fix][broker] Fix seeking by timestamp can be reset the cursor position to earliest ([#23919](https://github.com/apache/pulsar/pull/23919))\r\n- [fix][broker] Fix some problems in calculate totalAvailableBookies in method getExcludedBookiesWithIsolationGroups when some bookies belongs to multiple isolation groups. ([#24091](https://github.com/apache/pulsar/pull/24091))\r\n- [fix][broker] Fix tenant creation and update with null value ([#24209](https://github.com/apache/pulsar/pull/24209))\r\n- [fix][broker] fix wrong method name checkTopicExists. ([#24293](https://github.com/apache/pulsar/pull/24293))\r\n- [fix][broker] Orphan schema after disabled a cluster for a namespace ([#24223](https://github.com/apache/pulsar/pull/24223))\r\n- [fix][broker] The feature brokerDeleteInactivePartitionedTopicMetadataEnabled leaves orphan topic policies and topic schemas ([#24150](https://github.com/apache/pulsar/pull/24150))\r\n- [fix][broker] Unregister non-static metrics collectors registered in Prometheus default registry ([#24257](https://github.com/apache/pulsar/pull/24257))\r\n- [fix][broker]Fix incorrect priority between topic policies and global topic policies ([#24254](https://github.com/apache/pulsar/pull/24254))\r\n- [fix][broker]fix memory leak, messages lost, incorrect replication state if using multiple schema versions(auto_produce) ([#24178](https://github.com/apache/pulsar/pull/24178))\r\n- [fix][admin] Backlog quota's policy is null which causes a NPE ([#24192](https://github.com/apache/pulsar/pull/24192))\r\n- [fix][bk] Fix the var name for IsolationGroups ([#21320](https://github.com/apache/pulsar/pull/21320))\r\n- [fix][ml] Fix ML thread blocking issue in internalGetPartitionedStats API ([#24167](https://github.com/apache/pulsar/pull/24167))\r\n- [fix][ml] Skip deleting cursor if it was already deleted before calling unsubscribe ([#24098](https://github.com/apache/pulsar/pull/24098))\r\n- [improve][broker] Optimize subscription seek (cursor reset) by timestamp ([#22792](https://github.com/apache/pulsar/pull/22792))\r\n- [improve][broker]Improve the feature \"Optimize subscription seek (cursor reset) by timestamp\": search less entries ([#24219](https://github.com/apache/pulsar/pull/24219))\r\n\r\n### Client\r\n\r\n- [fix][client] Fix incorrect producer.getPendingQueueSize due to incomplete queue implementation ([#24184](https://github.com/apache/pulsar/pull/24184))\r\n- [fix][client] Fix producer publishing getting stuck after message with incompatible schema is discarded ([#24282](https://github.com/apache/pulsar/pull/24282))\r\n- [improve][client] validate ClientConfigurationData earlier to avoid resource leaks ([#24187](https://github.com/apache/pulsar/pull/24187))\r\n- [improve][client]Improve transaction log when a TXN command timeout ([#24230](https://github.com/apache/pulsar/pull/24230))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix SyntaxWarning in Pulsar Python functions ([#24297](https://github.com/apache/pulsar/pull/24297))\r\n- [improve][io] Add configuration parameter for disabling aggregation for Kinesis Producers ([#24289](https://github.com/apache/pulsar/pull/24289))\r\n- [improve][io] support kafka connect transforms and predicates ([#24221](https://github.com/apache/pulsar/pull/24221))\r\n- [improve][io] Upgrade Kafka client and compatible Confluent platform version ([#24201](https://github.com/apache/pulsar/pull/24201))\r\n- [improve][io][kca] support fully-qualified topic names in source records ([#24248](https://github.com/apache/pulsar/pull/24248))\r\n\r\n### Others\r\n\r\n- [cleanup][misc] Add override annotation ([#24033](https://github.com/apache/pulsar/pull/24033))\r\n- [fix][misc] Fix ByteBuf leak in SchemaUtils ([#24274](https://github.com/apache/pulsar/pull/24274))\r\n- [fix][proxy] Fix incorrect client error when calling get topic metadata ([#24181](https://github.com/apache/pulsar/pull/24181))\r\n- [fix][proxy] Propagate client connection feature flags through Pulsar Proxy to Broker ([#24158](https://github.com/apache/pulsar/pull/24158))\r\n- [fix][schema] Reject unsupported Avro schema types during schema registration ([#24103](https://github.com/apache/pulsar/pull/24103))\r\n\r\n### Tests & CI\r\n\r\n- [fix][build] Ensure that buildtools is Java 8 compatible and fix remaining compatibility issue ([#24307](https://github.com/apache/pulsar/pull/24307))\r\n- [fix][test] Fix flaky BatchMessageWithBatchIndexLevelTest.testBatchMessageAck ([#24212](https://github.com/apache/pulsar/pull/24212))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest ([#24162](https://github.com/apache/pulsar/pull/24162))\r\n- [fix][test] Fix flaky BrokerServiceChaosTest.testFetchPartitionedTopicMetadataWithCacheRefresh ([#24161](https://github.com/apache/pulsar/pull/24161))\r\n- [fix][test] Fix flaky ManagedCursorTest.testLastActiveAfterResetCursor and disable failing SchemaTest ([#24261](https://github.com/apache/pulsar/pull/24261))\r\n- [fix][test] Fix flaky ManagedCursorTest.testSkipEntriesWithIndividualDeletedMessages ([#24244](https://github.com/apache/pulsar/pull/24244))\r\n- [fix][test] Fix invalid test CompactionTest.testDeleteCompactedLedgerWithSlowAck ([#24166](https://github.com/apache/pulsar/pull/24166))\r\n- [fix][test] Fix more Netty ByteBuf leaks in tests ([#24299](https://github.com/apache/pulsar/pull/24299))\r\n- [fix][test] Fix multiple ByteBuf leaks in tests ([#24281](https://github.com/apache/pulsar/pull/24281))\r\n- [fix][test] Fix multiple resource leaks in tests ([#24218](https://github.com/apache/pulsar/pull/24218))\r\n- [fix][test] Fix resource leaks in ProxyTest and fix invalid tests ([#24204](https://github.com/apache/pulsar/pull/24204))\r\n- [fix][test] Fix TestNG BetweenTestClassesListenerAdapter listener ([#24258](https://github.com/apache/pulsar/pull/24258))\r\n- [fix][test] Improve reliability of IncrementPartitionsTest ([#24172](https://github.com/apache/pulsar/pull/24172))\r\n- [fix][test] Simplify BetweenTestClassesListenerAdapter and fix issue with BeforeTest/AfterTest annotations ([#24304](https://github.com/apache/pulsar/pull/24304))\r\n- [fix][test] Update partitioned topic subscription assertions in IncrementPartitionsTest ([#24056](https://github.com/apache/pulsar/pull/24056))\r\n- [fix][test]flaky-test:ManagedLedgerInterceptorImplTest.testManagedLedgerPayloadInputProcessorFailure ([#24170](https://github.com/apache/pulsar/pull/24170))\r\n- [improve][test] Use configured session timeout for MockZooKeeper and TestZKServer in PulsarTestContext ([#24171](https://github.com/apache/pulsar/pull/24171))\r\n- [improve][build] Upgrade Gradle Develocity Maven Extension dependencies ([#24260](https://github.com/apache/pulsar/pull/24260))\r\n- [improve][ci] Disable detailed console logging for integration tests in CI ([#24266](https://github.com/apache/pulsar/pull/24266))\r\n- [improve][build] Upgrade SpotBugs to 4.9.x ([#24243](https://github.com/apache/pulsar/pull/24243))\r\n- [improve][build] Upgrade to jacoco 0.8.13 ([#24240](https://github.com/apache/pulsar/pull/24240))\r\n- [improve][build] Upgrade zstd version from 1.5.2-3 to 1.5.7-3 ([#24263](https://github.com/apache/pulsar/pull/24263))\r\n- [cleanup][test] Remove unused parameter from deleteNamespaceWithRetry method in MockedPulsarServiceBaseTest ([#24283](https://github.com/apache/pulsar/pull/24283))\r\n\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.11...v3.0.12).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/211228782","assets_url":"https://api.github.com/repos/apache/pulsar/releases/211228782/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/211228782/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.4","id":211228782,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4Mlxhu","tag_name":"v4.0.4","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-04-09T09:14:16Z","updated_at":"2025-04-09T09:47:17Z","published_at":"2025-04-09T09:15:11Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.4","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.4","body":"#### 2025-04-09\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade jwt/v5 to 5.2.2 to address CVE-2025-30204 ([#24140](https://github.com/apache/pulsar/pull/24140))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22870 ([#24135](https://github.com/apache/pulsar/pull/24135))\r\n- [improve] Upgrade Netty to 4.1.119.Final ([#24049](https://github.com/apache/pulsar/pull/24049))\r\n\r\n### Broker\r\n\r\n- [fix] Avoid negative estimated entry count ([#24055](https://github.com/apache/pulsar/pull/24055))\r\n- [fix][broker] Add expire check for replicator ([#23975](https://github.com/apache/pulsar/pull/23975))\r\n- [fix][broker] Avoid IllegalStateException when marker_type field is not set in publishing ([#24087](https://github.com/apache/pulsar/pull/24087))\r\n- [fix][broker] fix delay queue sequence issue. ([#24035](https://github.com/apache/pulsar/pull/24035))\r\n- [fix][broker] Fix Metadata Event Synchronizer producer creation retry so that the producer gets created eventually ([#24081](https://github.com/apache/pulsar/pull/24081))\r\n- [fix][broker] Fix Metadata event synchronizer should not fail with bad version ([#24080](https://github.com/apache/pulsar/pull/24080))\r\n- [fix][broker] Fix missing validation when setting retention policy on topic level ([#24032](https://github.com/apache/pulsar/pull/24032))\r\n- [fix][broker] Fix NPE while publishing Metadata-Event with not init producer ([#24079](https://github.com/apache/pulsar/pull/24079))\r\n- [fix][broker] Fix UnsupportedOperationException while setting subscription level dispatch rate policy ([#24048](https://github.com/apache/pulsar/pull/24048))\r\n- [fix][broker] http metric endpoint get compaction latency stats always be 0 ([#24067](https://github.com/apache/pulsar/pull/24067))\r\n- [fix][broker] Pattern subscription doesn't work when the pattern excludes the topic domain. ([#24072](https://github.com/apache/pulsar/pull/24072))\r\n- [fix][broker] Restore the behavior to dispatch batch messages according to consumer permits ([#24092](https://github.com/apache/pulsar/pull/24092))\r\n- [fix][broker] topics infinitely failed to delete after remove cluster from replicated clusters modifying when using partitioned system topic ([#24097](https://github.com/apache/pulsar/pull/24097))\r\n- [fix][broker]Fix failed consumption after loaded up a terminated topic ([#24063](https://github.com/apache/pulsar/pull/24063))\r\n- [fix][ml] Corrected pulsar_storage_size metric to not multiply offloaded storage by the write quorum ([#24054](https://github.com/apache/pulsar/pull/24054))\r\n- [fix][ml] Don't estimate number of entries when ledgers are empty, return 1 instead ([#24125](https://github.com/apache/pulsar/pull/24125))\r\n- [fix][ml] Fix issues in estimateEntryCountBySize ([#24089](https://github.com/apache/pulsar/pull/24089))\r\n- [fix][ml] Return 1 when bytes size is 0 or negative for entry count estimation ([#24131](https://github.com/apache/pulsar/pull/24131))\r\n- [improve][broker] Change topic exists log to warn ([#24116](https://github.com/apache/pulsar/pull/24116))\r\n- [improve][broker] extract getMaxEntriesInThisBatch into a method and add unit test for it ([#24117](https://github.com/apache/pulsar/pull/24117))\r\n- [improve][broker] Optimize message expiration rate repeated update issues ([#24073](https://github.com/apache/pulsar/pull/24073))\r\n- [improve][broker] Optimize ThresholdShedder with improved boundary checks and parameter reuse ([#24064](https://github.com/apache/pulsar/pull/24064))\r\n- [improve][broker][branch-4.0] PIP-406: Introduce metrics related to dispatch throttled events ([#24111](https://github.com/apache/pulsar/pull/24111))\r\n- [improve][meta] Change log level from error to warn for unknown notification types in OxiaMetadataStore ([#24126](https://github.com/apache/pulsar/pull/24126))\r\n\r\n### Client\r\n\r\n- [fix][client] Copy eventTime to retry letter topic and DLQ messages ([#24059](https://github.com/apache/pulsar/pull/24059))\r\n- [fix][client] Fix building broken batched message when publishing ([#24061](https://github.com/apache/pulsar/pull/24061))\r\n- [fix][client] Fix consumer leak when thread is interrupted before subscribe completes ([#24100](https://github.com/apache/pulsar/pull/24100))\r\n- [fix][client] Pattern subscription regression when broker-side evaluation is disabled ([#24104](https://github.com/apache/pulsar/pull/24104))\r\n- [fix][client] PIP-409 retry/dead letter topic producer config don't take effect. ([#24071](https://github.com/apache/pulsar/pull/24071))\r\n- [improve][client] PIP-409: support producer configuration for retry/dead letter topic producer ([#24020](https://github.com/apache/pulsar/pull/24020))\r\n- [improve][client] Prevent NullPointException when closing ClientCredentialsFlow ([#24123](https://github.com/apache/pulsar/pull/24123))\r\n- [clean][client] Clean code for the construction of retry/dead letter topic name ([#24082](https://github.com/apache/pulsar/pull/24082))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix KinesisSink json flattening for AVRO's SchemaType.BYTES ([#24132](https://github.com/apache/pulsar/pull/24132))\r\n- [improve][fn] Introduce NewOutputMessageWithError to enable error handling ([#24122](https://github.com/apache/pulsar/pull/24122))\r\n- [improve][io] Enhance Kafka connector logging with focused bootstrap server information ([#24128](https://github.com/apache/pulsar/pull/24128))\r\n- [improve][io] Remove sleep when sourceTask.poll of kafka return null ([#24124](https://github.com/apache/pulsar/pull/24124))\r\n\r\n### Others\r\n\r\n- [fix][doc] fix doc related to chunk message feature. ([#24023](https://github.com/apache/pulsar/pull/24023))\r\n- [fix][doc] Workaround Go Yaml issue go-yaml/yaml#789 in docker-compose example ([#24040](https://github.com/apache/pulsar/pull/24040))\r\n- [improve][monitor] Add version=0.0.4 to /metrics content type for Prometheus 3.x compatibility ([#24060](https://github.com/apache/pulsar/pull/24060))\r\n\r\n### Tests & CI\r\n\r\n- [fix][ci] Bump dependency-check to 12.1.0 to fix OWASP Dependency Check job ([#24083](https://github.com/apache/pulsar/pull/24083))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testMsgDropStat ([#24134](https://github.com/apache/pulsar/pull/24134))\r\n- [fix][test] Fix flaky PrometheusMetricsTest.testBrokerMetrics ([#24042](https://github.com/apache/pulsar/pull/24042))\r\n\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.3...v4.0.4).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/211228699","assets_url":"https://api.github.com/repos/apache/pulsar/releases/211228699/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/211228699/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.6","id":211228699,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4Mlxgb","tag_name":"v3.3.6","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-04-09T09:13:31Z","updated_at":"2025-04-09T09:46:59Z","published_at":"2025-04-09T09:14:45Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.6","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.6","body":"#### 2025-04-09\r\n\r\n### Library updates\r\n\r\n- [fix] Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /pulsar-function-go ([#22261](https://github.com/apache/pulsar/pull/22261))\r\n- [fix][sec] Upgrade jwt/v5 to 5.2.2 to address CVE-2025-30204 ([#24140](https://github.com/apache/pulsar/pull/24140))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22870 ([#24135](https://github.com/apache/pulsar/pull/24135))\r\n- [improve] Upgrade Netty to 4.1.119.Final ([#24049](https://github.com/apache/pulsar/pull/24049))\r\n\r\n### Broker\r\n\r\n- [fix] Avoid negative estimated entry count ([#24055](https://github.com/apache/pulsar/pull/24055))\r\n- [fix][broker] Add expire check for replicator ([#23975](https://github.com/apache/pulsar/pull/23975))\r\n- [fix][broker] Avoid IllegalStateException when marker_type field is not set in publishing ([#24087](https://github.com/apache/pulsar/pull/24087))\r\n- [fix][broker] Fix Metadata Event Synchronizer producer creation retry so that the producer gets created eventually ([#24081](https://github.com/apache/pulsar/pull/24081))\r\n- [fix][broker] Fix Metadata event synchronizer should not fail with bad version ([#24080](https://github.com/apache/pulsar/pull/24080))\r\n- [fix][broker] Fix missing validation when setting retention policy on topic level ([#24032](https://github.com/apache/pulsar/pull/24032))\r\n- [fix][broker] Fix NPE while publishing Metadata-Event with not init producer ([#24079](https://github.com/apache/pulsar/pull/24079))\r\n- [fix][broker] Pattern subscription doesn't work when the pattern excludes the topic domain. ([#24072](https://github.com/apache/pulsar/pull/24072))\r\n- [fix][broker] topics infinitely failed to delete after remove cluster from replicated clusters modifying when using partitioned system topic ([#24097](https://github.com/apache/pulsar/pull/24097))\r\n- [fix][broker]Fix failed consumption after loaded up a terminated topic ([#24063](https://github.com/apache/pulsar/pull/24063))\r\n- [fix][ml] Corrected pulsar_storage_size metric to not multiply offloaded storage by the write quorum ([#24054](https://github.com/apache/pulsar/pull/24054))\r\n- [fix][ml] Don't estimate number of entries when ledgers are empty, return 1 instead ([#24125](https://github.com/apache/pulsar/pull/24125))\r\n- [fix][ml] Fix issues in estimateEntryCountBySize ([#24089](https://github.com/apache/pulsar/pull/24089))\r\n- [fix][ml] Return 1 when bytes size is 0 or negative for entry count estimation ([#24131](https://github.com/apache/pulsar/pull/24131))\r\n- [improve][broker] Change topic exists log to warn ([#24116](https://github.com/apache/pulsar/pull/24116))\r\n- [improve][broker] Optimize message expiration rate repeated update issues ([#24073](https://github.com/apache/pulsar/pull/24073))\r\n- [improve][broker] Optimize ThresholdShedder with improved boundary checks and parameter reuse ([#24064](https://github.com/apache/pulsar/pull/24064))\r\n- [improve][broker] Separate offload read and write thread pool ([#24025](https://github.com/apache/pulsar/pull/24025))\r\n- [improve][meta] Change log level from error to warn for unknown notification types in OxiaMetadataStore ([#24126](https://github.com/apache/pulsar/pull/24126))\r\n\r\n### Client\r\n\r\n- [fix][client] Copy eventTime to retry letter topic and DLQ messages ([#24059](https://github.com/apache/pulsar/pull/24059))\r\n- [fix][client] Fix building broken batched message when publishing ([#24061](https://github.com/apache/pulsar/pull/24061))\r\n- [fix][client] Fix consumer leak when thread is interrupted before subscribe completes ([#24100](https://github.com/apache/pulsar/pull/24100))\r\n- [fix][client] Pattern subscription regression when broker-side evaluation is disabled ([#24104](https://github.com/apache/pulsar/pull/24104))\r\n- [improve][client] Prevent NullPointException when closing ClientCredentialsFlow ([#24123](https://github.com/apache/pulsar/pull/24123))\r\n- [clean][client] Clean code for the construction of retry/dead letter topic name ([#24082](https://github.com/apache/pulsar/pull/24082))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix KinesisSink json flattening for AVRO's SchemaType.BYTES ([#24132](https://github.com/apache/pulsar/pull/24132))\r\n- [improve][io] Enhance Kafka connector logging with focused bootstrap server information ([#24128](https://github.com/apache/pulsar/pull/24128))\r\n- [improve][io] Remove sleep when sourceTask.poll of kafka return null ([#24124](https://github.com/apache/pulsar/pull/24124))\r\n\r\n### Others\r\n\r\n- [fix][doc] fix doc related to chunk message feature. ([#24023](https://github.com/apache/pulsar/pull/24023))\r\n- [improve][monitor] Add version=0.0.4 to /metrics content type for Prometheus 3.x compatibility ([#24060](https://github.com/apache/pulsar/pull/24060))\r\n\r\n### Tests & CI\r\n\r\n- [fix][ci] Bump dependency-check to 12.1.0 to fix OWASP Dependency Check job ([#24083](https://github.com/apache/pulsar/pull/24083))\r\n- [fix][test] Fix flaky NonPersistentTopicTest.testMsgDropStat ([#24134](https://github.com/apache/pulsar/pull/24134))\r\n- [fix][test] Fix flaky PrometheusMetricsTest.testBrokerMetrics ([#24042](https://github.com/apache/pulsar/pull/24042))\r\n\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.5...v3.3.6).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/211201935","assets_url":"https://api.github.com/repos/apache/pulsar/releases/211201935/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/211201935/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.11","id":211201935,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4Mlq-P","tag_name":"v3.0.11","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-04-09T07:10:33Z","updated_at":"2025-04-09T09:46:38Z","published_at":"2025-04-09T07:11:55Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.11","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.11","body":"#### 2025-04-09\r\n\r\n### Library updates\r\n\r\n- [fix] Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /pulsar-function-go ([#22261](https://github.com/apache/pulsar/pull/22261))\r\n- [fix][sec] Upgrade jwt/v5 to 5.2.2 to address CVE-2025-30204 ([#24140](https://github.com/apache/pulsar/pull/24140))\r\n- [fix][sec] Upgrade pulsar-function-go dependencies to address CVE-2025-22870 ([#24135](https://github.com/apache/pulsar/pull/24135))\r\n- [improve] Upgrade Netty to 4.1.119.Final ([#24049](https://github.com/apache/pulsar/pull/24049))\r\n\r\n### Broker\r\n\r\n- [fix] Avoid negative estimated entry count ([#24055](https://github.com/apache/pulsar/pull/24055))\r\n- [fix][admin] Verify is policies read only before revoke permissions on topic ([#23730](https://github.com/apache/pulsar/pull/23730))\r\n- [fix][broker] Add expire check for replicator ([#23975](https://github.com/apache/pulsar/pull/23975))\r\n- [fix][broker] Avoid IllegalStateException when marker_type field is not set in publishing ([#24087](https://github.com/apache/pulsar/pull/24087))\r\n- [fix][broker] fix broker identifying incorrect stuck topic ([#24006](https://github.com/apache/pulsar/pull/24006))\r\n- [fix][broker] Fix BucketDelayedDeliveryTracker thread safety ([#24014](https://github.com/apache/pulsar/pull/24014))\r\n- [fix][broker] Fix get outdated compactedTopicContext after compactionHorizon has been updated ([#20984](https://github.com/apache/pulsar/pull/20984))\r\n- [fix][broker] Fix Metadata Event Synchronizer producer creation retry so that the producer gets created eventually ([#24081](https://github.com/apache/pulsar/pull/24081))\r\n- [fix][broker] Fix Metadata event synchronizer should not fail with bad version ([#24080](https://github.com/apache/pulsar/pull/24080))\r\n- [fix][broker] Fix NPE while publishing Metadata-Event with not init producer ([#24079](https://github.com/apache/pulsar/pull/24079))\r\n- [fix][broker] Fix UnsupportedOperationException while setting subscription level dispatch rate policy ([#24048](https://github.com/apache/pulsar/pull/24048))\r\n- [fix][broker] Geo Replication lost messages or frequently fails due to Deduplication is not appropriate for Geo-Replication ([#23697](https://github.com/apache/pulsar/pull/23697))\r\n- [fix][broker] http metric endpoint get compaction latency stats always be 0 ([#24067](https://github.com/apache/pulsar/pull/24067))\r\n- [fix][broker] Pattern subscription doesn't work when the pattern excludes the topic domain. ([#24072](https://github.com/apache/pulsar/pull/24072))\r\n- [fix][broker] topics infinitely failed to delete after remove cluster from replicated clusters modifying when using partitioned system topic ([#24097](https://github.com/apache/pulsar/pull/24097))\r\n- [fix][broker]Fix failed consumption after loaded up a terminated topic ([#24063](https://github.com/apache/pulsar/pull/24063))\r\n- [fix][ml] Corrected pulsar_storage_size metric to not multiply offloaded storage by the write quorum ([#24054](https://github.com/apache/pulsar/pull/24054))\r\n- [fix][ml] Don't estimate number of entries when ledgers are empty, return 1 instead ([#24125](https://github.com/apache/pulsar/pull/24125))\r\n- [fix][ml] Fix issues in estimateEntryCountBySize ([#24089](https://github.com/apache/pulsar/pull/24089))\r\n- [fix][ml] Return 1 when bytes size is 0 or negative for entry count estimation ([#24131](https://github.com/apache/pulsar/pull/24131))\r\n- [improve][broker] Change topic exists log to warn ([#24116](https://github.com/apache/pulsar/pull/24116))\r\n- [improve][broker] Fix non-persistent system topic schema compatibility ([#23286](https://github.com/apache/pulsar/pull/23286))\r\n- [improve][broker] Improve CompactedTopicImpl lock ([#20697](https://github.com/apache/pulsar/pull/20697))\r\n- [improve][broker] Make the estimated entry size more accurate ([#23931](https://github.com/apache/pulsar/pull/23931))\r\n- [improve][broker] Optimize message expiration rate repeated update issues ([#24073](https://github.com/apache/pulsar/pull/24073))\r\n- [improve][broker] Optimize ThresholdShedder with improved boundary checks and parameter reuse ([#24064](https://github.com/apache/pulsar/pull/24064))\r\n- [improve][ml] Use lock-free queue in InflightReadsLimiter since there's no concurrent access  ([#23962](https://github.com/apache/pulsar/pull/23962))\r\n\r\n### Client\r\n\r\n- [fix][client] Copy eventTime to retry letter topic and DLQ messages ([#24059](https://github.com/apache/pulsar/pull/24059))\r\n- [fix][client] Fix building broken batched message when publishing ([#24061](https://github.com/apache/pulsar/pull/24061))\r\n- [fix][client] Fix consumer leak when thread is interrupted before subscribe completes ([#24100](https://github.com/apache/pulsar/pull/24100))\r\n- [fix][client] Pattern subscription regression when broker-side evaluation is disabled ([#24104](https://github.com/apache/pulsar/pull/24104))\r\n- [improve][client] Prevent NullPointException when closing ClientCredentialsFlow ([#24123](https://github.com/apache/pulsar/pull/24123))\r\n- [clean][client] Clean code for the construction of retry/dead letter topic name ([#24082](https://github.com/apache/pulsar/pull/24082))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix KinesisSink json flattening for AVRO's SchemaType.BYTES ([#24132](https://github.com/apache/pulsar/pull/24132))\r\n- [improve][fn] Set default tenant and namespace for ListFunctions cmd ([#23881](https://github.com/apache/pulsar/pull/23881))\r\n- [improve][io] Enhance Kafka connector logging with focused bootstrap server information ([#24128](https://github.com/apache/pulsar/pull/24128))\r\n- [improve][io] Remove sleep when sourceTask.poll of kafka return null ([#24124](https://github.com/apache/pulsar/pull/24124))\r\n\r\n### Others\r\n\r\n- [fix][doc] fix doc related to chunk message feature. ([#24023](https://github.com/apache/pulsar/pull/24023))\r\n- [improve][cli] Support additional msg metadata for V1 topic on peek message cmd ([#23978](https://github.com/apache/pulsar/pull/23978))\r\n- [improve][monitor] Add version=0.0.4 to /metrics content type for Prometheus 3.x compatibility ([#24060](https://github.com/apache/pulsar/pull/24060))\r\n\r\n### Tests & CI\r\n\r\n- [fix][test] Fix flaky test OneWayReplicatorUsingGlobalZKTest.testConfigReplicationStartAt ([#24011](https://github.com/apache/pulsar/pull/24011))\r\n- [fix][test]Fix flaky test V1_ProducerConsumerTest.testConcurrentConsumerReceiveWhileReconnect ([#24019](https://github.com/apache/pulsar/pull/24019))\r\n- [fix][ci] Bump dependency-check to 12.1.0 to fix OWASP Dependency Check job ([#24083](https://github.com/apache/pulsar/pull/24083))\r\n- [improve][test] Upgrade Testcontainers to 1.20.4 and docker-java to 3.4.0 ([#24003](https://github.com/apache/pulsar/pull/24003))\r\n- [improve][ci] Upgrade Gradle Develocity Maven Extension to 1.23.1 ([#24004](https://github.com/apache/pulsar/pull/24004))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.10...v3.0.11).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/202770802","assets_url":"https://api.github.com/repos/apache/pulsar/releases/202770802/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/202770802/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.3","id":202770802,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4MFgly","tag_name":"v4.0.3","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-02-27T11:36:05Z","updated_at":"2025-03-17T12:42:49Z","published_at":"2025-02-27T11:36:46Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.3","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.3","body":"#### 2025-02-27\r\n\r\n### Known issues\r\n\r\nThere's a potential regression where consuming messages could fail due to https://github.com/apache/pulsar/pull/23931 changes. This is being addressed in https://github.com/apache/pulsar/pull/24055 and https://github.com/apache/pulsar/pull/24089. No workarounds currently exist.\r\n\r\n### Library updates\r\n\r\n- [feat][misc] upgrade oxia java client to 0.5.0 ([#23871](https://github.com/apache/pulsar/pull/23871))\r\n- [fix] Bump org.apache.solr:solr-core from 8.11.3 to 9.8.0 in /pulsar-io/solr ([#23899](https://github.com/apache/pulsar/pull/23899))\r\n- [fix] Use Alpine 3.21 in base image ([#23964](https://github.com/apache/pulsar/pull/23964))\r\n- [fix][build] Upgrade json-smart to 2.5.2 ([#23966](https://github.com/apache/pulsar/pull/23966))\r\n- [improve] Upgrade to Netty 4.1.117.Final ([#23863](https://github.com/apache/pulsar/pull/23863))\r\n- [fix][sec] Upgrade to Netty 4.1.118 to address [CVE-2025-24970](https://github.com/netty/netty/security/advisories/GHSA-4g8c-wm8x-jfhw) ([#23965](https://github.com/apache/pulsar/pull/23965))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Fix bug in RangeCache where different instance of the key wouldn't ever match ([#23903](https://github.com/apache/pulsar/pull/23903))\r\n- [fix][broker] Apply dispatcherMaxReadSizeBytes also for replay reads for Shared and Key_Shared subscriptions ([#23894](https://github.com/apache/pulsar/pull/23894))\r\n- [fix][broker] Closed topics won't be removed from the cache ([#23884](https://github.com/apache/pulsar/pull/23884))\r\n- [fix][broker] Fix BucketDelayedDeliveryTracker thread safety ([#24014](https://github.com/apache/pulsar/pull/24014))\r\n- [fix][broker] Fix NPE during active consumer is disconnected ([#24008](https://github.com/apache/pulsar/pull/24008))\r\n- [fix][broker] Fix incorrect blockedConsumerOnUnackedMsgs value when maxUnackedMessagesPerConsumer is 1 ([#23796](https://github.com/apache/pulsar/pull/23796))\r\n- [fix][broker] Fix rate limiter token bucket and clock consistency issues causing excessive throttling and connection timeouts ([#23930](https://github.com/apache/pulsar/pull/23930))\r\n- [fix][broker] Fix repeatedly acquired pending reads quota ([#23869](https://github.com/apache/pulsar/pull/23869))\r\n- [fix][broker] Fix seeking by timestamp can be reset the cursor position to earliest ([#23919](https://github.com/apache/pulsar/pull/23919))\r\n- [fix][broker] Geo Replication lost messages or frequently fails due to Deduplication is not appropriate for Geo-Replication ([#23697](https://github.com/apache/pulsar/pull/23697))\r\n- [fix][broker] Make InflightReadsLimiter asynchronous and apply it for replay queue reads ([#23901](https://github.com/apache/pulsar/pull/23901))\r\n- [fix][broker] PIP-322 Fix issue with rate limiters where rates can exceed limits initially and consumption pauses until token balance is positive ([#24012](https://github.com/apache/pulsar/pull/24012))\r\n- [fix][broker] PIP-379 Key_Shared implementation race condition causing out-of-order message delivery ([#23874](https://github.com/apache/pulsar/pull/23874))\r\n- [fix][broker] Skip to persist cursor info if it failed by cursor closed ([#23615](https://github.com/apache/pulsar/pull/23615))\r\n- [fix][broker] fix broker identifying incorrect stuck topic ([#24006](https://github.com/apache/pulsar/pull/24006))\r\n- [fix][broker] fix broker may lost rack information ([#23331](https://github.com/apache/pulsar/pull/23331))\r\n- [fix][meta] Fix ephemeral Zookeeper put which creates a persistent znode ([#23984](https://github.com/apache/pulsar/pull/23984))\r\n- [fix][meta] Fix ephemeral handling of ZK nodes and fix MockZooKeeper ephemeral and ZK stat handling ([#23988](https://github.com/apache/pulsar/pull/23988))\r\n- [fix][ml] Fix cursor metadata compatability issue when switching the config unackedRangesOpenCacheSetEnabled ([#23759](https://github.com/apache/pulsar/pull/23759))\r\n- [fix][ml] Fix deadlock in PendingReadsManager ([#23958](https://github.com/apache/pulsar/pull/23958))\r\n- [fix][ml] Fix memory leak due to duplicated RangeCache value retain operations  ([#23955](https://github.com/apache/pulsar/pull/23955))\r\n- [fix][ml] Fix memory leaks in ManagedCursorInfo and ManagedLedgerInfo decompression and compression ([#23960](https://github.com/apache/pulsar/pull/23960))\r\n- [fix][ml] incorrect non-durable cursor's backlog due to concurrently trimming ledger and non-durable cursor creation ([#23951](https://github.com/apache/pulsar/pull/23951))\r\n- [improve][broker] Avoid PersistentReplicator.expireMessages logic compute backlog twice ([#23957](https://github.com/apache/pulsar/pull/23957))\r\n- [improve][broker] Avoid logging errors when there is a connection issue during subscription. ([#23939](https://github.com/apache/pulsar/pull/23939))\r\n- [improve][broker] Avoid printing log for IncompatibleSchemaException in ServerCnx ([#23938](https://github.com/apache/pulsar/pull/23938))\r\n- [improve][broker] Do not print error logs for NotFound or Conflict errors when using the Admin API ([#23928](https://github.com/apache/pulsar/pull/23928))\r\n- [improve][broker] Don't print error logs for ProducerBusyException ([#23929](https://github.com/apache/pulsar/pull/23929))\r\n- [improve][broker] Fix non-persistent system topic schema compatibility ([#23286](https://github.com/apache/pulsar/pull/23286))\r\n- [improve][broker] Improve Consumer.equals performance ([#23864](https://github.com/apache/pulsar/pull/23864))\r\n- [improve][broker] Make the estimated entry size more accurate ([#23931](https://github.com/apache/pulsar/pull/23931))\r\n- [improve][broker] Refactor a private method to eliminate an unnecessary parameter ([#23915](https://github.com/apache/pulsar/pull/23915))\r\n- [improve][broker] Remove spamming logs for customized managed ledger ([#23862](https://github.com/apache/pulsar/pull/23862))\r\n- [improve][broker] Support values up to 2^32 in ConcurrentBitmapSortedLongPairSet ([#23878](https://github.com/apache/pulsar/pull/23878))\r\n- [improve][meta] Simplify getting parent path in ZKMetadataStore without using java.io.File ([#23996](https://github.com/apache/pulsar/pull/23996))\r\n- [improve][ml] Use lock-free queue in InflightReadsLimiter since there's no concurrent access  ([#23962](https://github.com/apache/pulsar/pull/23962))\r\n\r\n### Client\r\n\r\n- [feat][client] Support forward proxy for the ZTS server in pulsar-client-auth-athenz ([#23947](https://github.com/apache/pulsar/pull/23947))\r\n- [fix] Avoid NPE when closing an uninitialized SameAuthParamsLookupAutoClusterFailover ([#23911](https://github.com/apache/pulsar/pull/23911))\r\n- [fix] Initialize UrlServiceProvider before trying to use transaction coordinator ([#23914](https://github.com/apache/pulsar/pull/23914))\r\n- [fix][client] Fix LoadManagerReport not found ([#23886](https://github.com/apache/pulsar/pull/23886))\r\n- [fix][client] Fix memory leak in ClientCnx.newLookup when there's TooManyRequestsException ([#23971](https://github.com/apache/pulsar/pull/23971))\r\n- [fix][client] Fix memory leak when message size exceeds max message size and batching is enabled ([#23967](https://github.com/apache/pulsar/pull/23967))\r\n- [fix][client] call redeliver 1 msg but did 2 msgs ([#23943](https://github.com/apache/pulsar/pull/23943))\r\n- [fix][client] fix retry topic with exclusive mode. ([#23859](https://github.com/apache/pulsar/pull/23859))\r\n- [improve][client] Avoid logging errors for retriable errors when creating producer ([#23935](https://github.com/apache/pulsar/pull/23935))\r\n- [improve][client] Update TypedMessageBuilder deliverAfter and deliverAt api comment ([#23969](https://github.com/apache/pulsar/pull/23969))\r\n- [improve][cli] Support additional msg metadata for V1 topic on peek message cmd ([#23978](https://github.com/apache/pulsar/pull/23978))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix pulsar-io:pom not found ([#23979](https://github.com/apache/pulsar/pull/23979))\r\n- [improve][fn] Set default tenant and namespace for ListFunctions cmd ([#23881](https://github.com/apache/pulsar/pull/23881))\r\n- [improve][io] Allow skipping connector deployment ([#23932](https://github.com/apache/pulsar/pull/23932))\r\n\r\n### Others\r\n\r\n- [fix] fix for code scanning alert no. 48: Uncontrolled data used in path expression ([#23985](https://github.com/apache/pulsar/pull/23985))\r\n- [fix][build] Use amazoncorretto:21-alpine3.20 JDK build for Alpine 3.20 ([#23898](https://github.com/apache/pulsar/pull/23898))\r\n- [fix][build] Add develops for buildtools ([#23992](https://github.com/apache/pulsar/pull/23992))\r\n- [improve][proxy] Make keep-alive interval configurable in Pulsar Proxy ([#23981](https://github.com/apache/pulsar/pull/23981))\r\n\r\n### Tests & CI\r\n\r\n- [fix][test] Fix flaky DelayedDeliveryTest.testEnableTopicDelayedDelivery ([#23893](https://github.com/apache/pulsar/pull/23893))\r\n- [fix][test] Fix flaky test MetadataStoreTest.emptyStoreTest ([#23998](https://github.com/apache/pulsar/pull/23998))\r\n- [fix][test] Fix flaky test OneWayReplicatorUsingGlobalZKTest.testConfigReplicationStartAt ([#24011](https://github.com/apache/pulsar/pull/24011))\r\n- [fix][test] Fix quiet time implementation in BrokerTestUtil.receiveMessages ([#23876](https://github.com/apache/pulsar/pull/23876))\r\n- [fix][test] fix flaky testNegativeAcksWithBackoff when batch enabled. ([#23986](https://github.com/apache/pulsar/pull/23986))\r\n- [fix][test]Fix flaky test V1_ProducerConsumerTest.testConcurrentConsumerReceiveWhileReconnect ([#24019](https://github.com/apache/pulsar/pull/24019))\r\n- [improve][test] Add solution to PulsarMockBookKeeper for intercepting reads ([#23875](https://github.com/apache/pulsar/pull/23875))\r\n- [improve][test] Support decorating topic, subscription, dispatcher, ManagedLedger and ManagedCursors instances in tests ([#23892](https://github.com/apache/pulsar/pull/23892))\r\n- [improve][test] Upgrade Testcontainers to 1.20.4 and docker-java to 3.4.0 ([#24003](https://github.com/apache/pulsar/pull/24003))\r\n- [fix][ci] Configure Docker data-root to /mnt/docker to avoid running out of disk space ([#23909](https://github.com/apache/pulsar/pull/23909))\r\n- [improve][ci] Increase Maven max heap size to 2048M and tune GCLockerRetryAllocationCount ([#23883](https://github.com/apache/pulsar/pull/23883))\r\n- [improve][ci] Skip \"OWASP dependency check\" when data wasn't found in cache ([#23970](https://github.com/apache/pulsar/pull/23970))\r\n- [improve][ci] Upgrade Gradle Develocity Maven Extension to 1.23.1 ([#24004](https://github.com/apache/pulsar/pull/24004))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.2...v4.0.3).\r\n","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/202770802/reactions","total_count":2,"+1":2,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/202770726","assets_url":"https://api.github.com/repos/apache/pulsar/releases/202770726/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/202770726/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.5","id":202770726,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4MFgkm","tag_name":"v3.3.5","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-02-27T11:35:59Z","updated_at":"2025-03-17T12:43:46Z","published_at":"2025-02-27T11:36:24Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.5","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.5","body":"#### 2025-02-27\r\n\r\n### Known issues\r\n\r\nThere's a potential regression where consuming messages could fail due to https://github.com/apache/pulsar/pull/23931 changes. This is being addressed in https://github.com/apache/pulsar/pull/24055 and https://github.com/apache/pulsar/pull/24089. No workarounds currently exist.\r\n\r\n### Library updates\r\n\r\n- [feat][misc] upgrade oxia java client to 0.5.0 ([#23871](https://github.com/apache/pulsar/pull/23871))\r\n- [fix] Use Alpine 3.21 in base image ([#23964](https://github.com/apache/pulsar/pull/23964))\r\n- [fix][build] Upgrade json-smart to 2.5.2 ([#23966](https://github.com/apache/pulsar/pull/23966))\r\n- [improve] Upgrade to Netty 4.1.117.Final ([#23863](https://github.com/apache/pulsar/pull/23863))\r\n- [fix][sec] Upgrade to Netty 4.1.118 to address [CVE-2025-24970](https://github.com/netty/netty/security/advisories/GHSA-4g8c-wm8x-jfhw) ([#23965](https://github.com/apache/pulsar/pull/23965))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Fix bug in RangeCache where different instance of the key wouldn't ever match ([#23903](https://github.com/apache/pulsar/pull/23903))\r\n- [fix][broker] Closed topics won't be removed from the cache ([#23884](https://github.com/apache/pulsar/pull/23884))\r\n- [fix][broker] Continue using the next provider for http authentication if one fails ([#23842](https://github.com/apache/pulsar/pull/23842))\r\n- [fix][broker] Fix BucketDelayedDeliveryTracker thread safety ([#24014](https://github.com/apache/pulsar/pull/24014))\r\n- [fix][broker] Fix NPE during active consumer is disconnected ([#24008](https://github.com/apache/pulsar/pull/24008))\r\n- [fix][broker] Fix acknowledgeCumulativeAsync block when ackReceipt is enabled ([#23841](https://github.com/apache/pulsar/pull/23841))\r\n- [fix][broker] Fix incorrect blockedConsumerOnUnackedMsgs value when maxUnackedMessagesPerConsumer is 1 ([#23796](https://github.com/apache/pulsar/pull/23796))\r\n- [fix][broker] Fix possible mark delete NPE when batch index ack is enabled ([#23833](https://github.com/apache/pulsar/pull/23833))\r\n- [fix][broker] Fix rate limiter token bucket and clock consistency issues causing excessive throttling and connection timeouts ([#23930](https://github.com/apache/pulsar/pull/23930))\r\n- [fix][broker] Fix repeatedly acquired pending reads quota ([#23869](https://github.com/apache/pulsar/pull/23869))\r\n- [fix][broker] Fix the retry mechanism in `MetadataCache#readModifyUpdateOrCreate` ([#23686](https://github.com/apache/pulsar/pull/23686))\r\n- [fix][broker] Geo Replication lost messages or frequently fails due to Deduplication is not appropriate for Geo-Replication ([#23697](https://github.com/apache/pulsar/pull/23697))\r\n- [fix][broker] Make InflightReadsLimiter asynchronous and apply it for replay queue reads ([#23901](https://github.com/apache/pulsar/pull/23901))\r\n- [fix][broker] PIP-322 Fix issue with rate limiters where rates can exceed limits initially and consumption pauses until token balance is positive ([#24012](https://github.com/apache/pulsar/pull/24012))\r\n- [fix][broker] PIP-399: Fix Metric Name for Delayed Queue ([#23712](https://github.com/apache/pulsar/pull/23712))\r\n- [fix][broker] Remove blocking calls from internalGetPartitionedStats ([#23832](https://github.com/apache/pulsar/pull/23832))\r\n- [fix][broker] Revert \"[fix][broker] Cancel possible pending replay read in cancelPendingRead ([#23384](https://github.com/apache/pulsar/pull/23384))\" ([#23855](https://github.com/apache/pulsar/pull/23855))\r\n- [fix][broker] Support large number of unack message store for cursor recovery ([#9292](https://github.com/apache/pulsar/pull/9292))\r\n- [fix][broker] fix broker identifying incorrect stuck topic ([#24006](https://github.com/apache/pulsar/pull/24006))\r\n- [fix][broker] fix broker may lost rack information ([#23331](https://github.com/apache/pulsar/pull/23331))\r\n- [fix][meta] Fix ephemeral Zookeeper put which creates a persistent znode ([#23984](https://github.com/apache/pulsar/pull/23984))\r\n- [fix][meta] Fix ephemeral handling of ZK nodes and fix MockZooKeeper ephemeral and ZK stat handling ([#23988](https://github.com/apache/pulsar/pull/23988))\r\n- [fix][ml] Fix cursor metadata compatability issue when switching the config unackedRangesOpenCacheSetEnabled ([#23759](https://github.com/apache/pulsar/pull/23759))\r\n- [fix][ml] Fix deadlock in PendingReadsManager ([#23958](https://github.com/apache/pulsar/pull/23958))\r\n- [fix][ml] Fix memory leak due to duplicated RangeCache value retain operations  ([#23955](https://github.com/apache/pulsar/pull/23955))\r\n- [fix][ml] Fix memory leaks in ManagedCursorInfo and ManagedLedgerInfo decompression and compression ([#23960](https://github.com/apache/pulsar/pull/23960))\r\n- [fix][ml] incorrect non-durable cursor's backlog due to concurrently trimming ledger and non-durable cursor creation ([#23951](https://github.com/apache/pulsar/pull/23951))\r\n- [improve][broker] Avoid PersistentReplicator.expireMessages logic compute backlog twice ([#23957](https://github.com/apache/pulsar/pull/23957))\r\n- [improve][broker] Avoid logging errors when there is a connection issue during subscription. ([#23939](https://github.com/apache/pulsar/pull/23939))\r\n- [improve][broker] Avoid printing log for IncompatibleSchemaException in ServerCnx ([#23938](https://github.com/apache/pulsar/pull/23938))\r\n- [improve][broker] Do not print error logs for NotFound or Conflict errors when using the Admin API ([#23928](https://github.com/apache/pulsar/pull/23928))\r\n- [improve][broker] Don't print error logs for ProducerBusyException ([#23929](https://github.com/apache/pulsar/pull/23929))\r\n- [improve][broker] Fix non-persistent system topic schema compatibility ([#23286](https://github.com/apache/pulsar/pull/23286))\r\n- [improve][broker] Improve Consumer.equals performance ([#23864](https://github.com/apache/pulsar/pull/23864))\r\n- [improve][broker] Make the estimated entry size more accurate ([#23931](https://github.com/apache/pulsar/pull/23931))\r\n- [improve][broker] Reduce unnecessary REPLICATED_SUBSCRIPTION_SNAPSHOT_REQUEST ([#23839](https://github.com/apache/pulsar/pull/23839))\r\n- [improve][broker] Remove spamming logs for customized managed ledger ([#23862](https://github.com/apache/pulsar/pull/23862))\r\n- [improve][broker] Support values up to 2^32 in ConcurrentBitmapSortedLongPairSet ([#23878](https://github.com/apache/pulsar/pull/23878))\r\n- [improve][meta] Simplify getting parent path in ZKMetadataStore without using java.io.File ([#23996](https://github.com/apache/pulsar/pull/23996))\r\n- [improve][ml] Use lock-free queue in InflightReadsLimiter since there's no concurrent access  ([#23962](https://github.com/apache/pulsar/pull/23962))\r\n\r\n### Client\r\n\r\n- [fix] Avoid NPE when closing an uninitialized SameAuthParamsLookupAutoClusterFailover ([#23911](https://github.com/apache/pulsar/pull/23911))\r\n- [fix] Initialize UrlServiceProvider before trying to use transaction coordinator ([#23914](https://github.com/apache/pulsar/pull/23914))\r\n- [fix][client] Fix LoadManagerReport not found ([#23886](https://github.com/apache/pulsar/pull/23886))\r\n- [fix][client] Fix memory leak in ClientCnx.newLookup when there's TooManyRequestsException ([#23971](https://github.com/apache/pulsar/pull/23971))\r\n- [fix][client] Fix memory leak when message size exceeds max message size and batching is enabled ([#23967](https://github.com/apache/pulsar/pull/23967))\r\n- [fix][client] Orphan producer when concurrently calling producer closing and reconnection ([#23853](https://github.com/apache/pulsar/pull/23853))\r\n- [fix][client] call redeliver 1 msg but did 2 msgs ([#23943](https://github.com/apache/pulsar/pull/23943))\r\n- [fix][client] fix retry topic with exclusive mode. ([#23859](https://github.com/apache/pulsar/pull/23859))\r\n- [improve][client] Avoid logging errors for retriable errors when creating producer ([#23935](https://github.com/apache/pulsar/pull/23935))\r\n- [improve][cli] Support additional msg metadata for V1 topic on peek message cmd ([#23978](https://github.com/apache/pulsar/pull/23978))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix pulsar-io:pom not found ([#23979](https://github.com/apache/pulsar/pull/23979))\r\n- [improve] Validate user paths in Functions utils ([#22833](https://github.com/apache/pulsar/pull/22833))\r\n- [improve][fn] Set default tenant and namespace for ListFunctions cmd ([#23881](https://github.com/apache/pulsar/pull/23881))\r\n- [improve][io] Allow skipping connector deployment ([#23932](https://github.com/apache/pulsar/pull/23932))\r\n\r\n### Others\r\n\r\n- [fix] fix for code scanning alert no. 48: Uncontrolled data used in path expression ([#23985](https://github.com/apache/pulsar/pull/23985))\r\n- [fix][build] Use amazoncorretto:21-alpine3.20 JDK build for Alpine 3.20 ([#23898](https://github.com/apache/pulsar/pull/23898))\r\n- [fix][build] Add develops for buildtools ([#23992](https://github.com/apache/pulsar/pull/23992))\r\n- [fix][misc] Honor dynamic log levels in log4j2.yaml ([#23847](https://github.com/apache/pulsar/pull/23847))\r\n- [improve][proxy] Make keep-alive interval configurable in Pulsar Proxy ([#23981](https://github.com/apache/pulsar/pull/23981))\r\n\r\n### Tests & CI\r\n\r\n- [improve][test] Add solution to PulsarMockBookKeeper for intercepting reads ([#23875](https://github.com/apache/pulsar/pull/23875))\r\n- [improve][test] Upgrade Testcontainers to 1.20.4 and docker-java to 3.4.0 ([#24003](https://github.com/apache/pulsar/pull/24003))\r\n- [fix][test] Add reconsumeLater call in RetryTopicTest#testRetryTopicWithMultiTopic. ([#23857](https://github.com/apache/pulsar/pull/23857))\r\n- [fix][test] Fix flaky DelayedDeliveryTest.testEnableTopicDelayedDelivery ([#23893](https://github.com/apache/pulsar/pull/23893))\r\n- [fix][test] Fix flaky test MetadataStoreTest.emptyStoreTest ([#23998](https://github.com/apache/pulsar/pull/23998))\r\n- [fix][test] Fix flaky test OneWayReplicatorUsingGlobalZKTest.testConfigReplicationStartAt ([#24011](https://github.com/apache/pulsar/pull/24011))\r\n- [fix][test] Fix quiet time implementation in BrokerTestUtil.receiveMessages ([#23876](https://github.com/apache/pulsar/pull/23876))\r\n- [fix][test] fix flaky testNegativeAcksWithBackoff when batch enabled. ([#23986](https://github.com/apache/pulsar/pull/23986))\r\n- [fix][test]Fix flaky test V1_ProducerConsumerTest.testConcurrentConsumerReceiveWhileReconnect ([#24019](https://github.com/apache/pulsar/pull/24019))\r\n- [fix][test]Fix flaky test testTopicUnloadAfterSessionRebuild ([#23852](https://github.com/apache/pulsar/pull/23852))\r\n- [fix][ci] Configure Docker data-root to /mnt/docker to avoid running out of disk space ([#23909](https://github.com/apache/pulsar/pull/23909))\r\n- [improve][ci] Increase Maven max heap size to 2048M and tune GCLockerRetryAllocationCount ([#23883](https://github.com/apache/pulsar/pull/23883))\r\n- [improve][ci] Publish build scans to develocity.apache.org ([#23851](https://github.com/apache/pulsar/pull/23851))\r\n- [improve][ci] Skip \"OWASP dependency check\" when data wasn't found in cache ([#23970](https://github.com/apache/pulsar/pull/23970))\r\n- [improve][ci] Upgrade Gradle Develocity Maven Extension to 1.23.1 ([#24004](https://github.com/apache/pulsar/pull/24004))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.4...v3.3.5).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/202770033","assets_url":"https://api.github.com/repos/apache/pulsar/releases/202770033/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/202770033/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.10","id":202770033,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4MFgZx","tag_name":"v3.0.10","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-02-27T11:32:02Z","updated_at":"2025-03-17T12:48:28Z","published_at":"2025-02-27T11:32:42Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.10","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.10","body":"#### 2025-02-27\r\n\r\n### Library updates\r\n\r\n- [improve] Upgrade to Netty 4.1.117.Final ([#23863](https://github.com/apache/pulsar/pull/23863))\r\n- [fix][sec] Upgrade to Netty 4.1.118 to address [CVE-2025-24970](https://github.com/netty/netty/security/advisories/GHSA-4g8c-wm8x-jfhw) ([#23965](https://github.com/apache/pulsar/pull/23965))\r\n- [fix] Bump org.apache.solr:solr-core from 8.11.3 to 9.8.0 in /pulsar-io/solr ([#23899](https://github.com/apache/pulsar/pull/23899))\r\n- [fix][build] Upgrade json-smart to 2.5.2 ([#23966](https://github.com/apache/pulsar/pull/23966))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Fix bug in RangeCache where different instance of the key wouldn't ever match ([#23903](https://github.com/apache/pulsar/pull/23903))\r\n- [fix][broker] Closed topics won't be removed from the cache ([#23884](https://github.com/apache/pulsar/pull/23884))\r\n- [fix][broker] Continue using the next provider for http authentication if one fails ([#23842](https://github.com/apache/pulsar/pull/23842))\r\n- [fix][broker] Fix acknowledgeCumulativeAsync block when ackReceipt is enabled ([#23841](https://github.com/apache/pulsar/pull/23841))\r\n- [fix][broker] Fix incorrect blockedConsumerOnUnackedMsgs value when maxUnackedMessagesPerConsumer is 1 ([#23796](https://github.com/apache/pulsar/pull/23796))\r\n- [fix][broker] Fix possible mark delete NPE when batch index ack is enabled ([#23833](https://github.com/apache/pulsar/pull/23833))\r\n- [fix][broker] Fix repeatedly acquired pending reads quota ([#23869](https://github.com/apache/pulsar/pull/23869))\r\n- [fix][broker] Fix the retry mechanism in `MetadataCache#readModifyUpdateOrCreate` ([#23686](https://github.com/apache/pulsar/pull/23686))\r\n- [fix][broker] Make InflightReadsLimiter asynchronous and apply it for replay queue reads ([#23901](https://github.com/apache/pulsar/pull/23901))\r\n- [fix][broker] PIP-399: Fix Metric Name for Delayed Queue ([#23712](https://github.com/apache/pulsar/pull/23712))\r\n- [fix][broker] Remove blocking calls from internalGetPartitionedStats ([#23832](https://github.com/apache/pulsar/pull/23832))\r\n- [fix][broker] Revert \"[fix][broker] Cancel possible pending replay read in cancelPendingRead ([#23384](https://github.com/apache/pulsar/pull/23384))\" ([#23855](https://github.com/apache/pulsar/pull/23855))\r\n- [fix][broker] Support large number of unack message store for cursor recovery ([#9292](https://github.com/apache/pulsar/pull/9292))\r\n- [fix][broker] fix broker may lost rack information ([#23331](https://github.com/apache/pulsar/pull/23331))\r\n- [cleanup][admin] Do not print full stacktrace when get partitioned metadata not found ([#20979](https://github.com/apache/pulsar/pull/20979))\r\n- [fix][meta] Fix ephemeral Zookeeper put which creates a persistent znode ([#23984](https://github.com/apache/pulsar/pull/23984))\r\n- [fix][meta] Fix ephemeral handling of ZK nodes and fix MockZooKeeper ephemeral and ZK stat handling ([#23988](https://github.com/apache/pulsar/pull/23988))\r\n- [fix][misc] Honor dynamic log levels in log4j2.yaml ([#23847](https://github.com/apache/pulsar/pull/23847))\r\n- [fix][ml] Fix cursor metadata compatability issue when switching the config unackedRangesOpenCacheSetEnabled ([#23759](https://github.com/apache/pulsar/pull/23759))\r\n- [fix][ml] Fix deadlock in PendingReadsManager ([#23958](https://github.com/apache/pulsar/pull/23958))\r\n- [fix][ml] Fix memory leak due to duplicated RangeCache value retain operations  ([#23955](https://github.com/apache/pulsar/pull/23955))\r\n- [fix][ml] Fix memory leaks in ManagedCursorInfo and ManagedLedgerInfo decompression and compression ([#23960](https://github.com/apache/pulsar/pull/23960))\r\n- [fix][ml] incorrect non-durable cursor's backlog due to concurrently trimming ledger and non-durable cursor creation ([#23951](https://github.com/apache/pulsar/pull/23951))\r\n- [improve][broker] Avoid PersistentReplicator.expireMessages logic compute backlog twice ([#23957](https://github.com/apache/pulsar/pull/23957))\r\n- [improve][broker] Avoid logging errors when there is a connection issue during subscription. ([#23939](https://github.com/apache/pulsar/pull/23939))\r\n- [improve][broker] Avoid printing log for IncompatibleSchemaException in ServerCnx ([#23938](https://github.com/apache/pulsar/pull/23938))\r\n- [improve][broker] Do not print error logs for NotFound or Conflict errors when using the Admin API ([#23928](https://github.com/apache/pulsar/pull/23928))\r\n- [improve][broker] Don't print error logs for ProducerBusyException ([#23929](https://github.com/apache/pulsar/pull/23929))\r\n- [improve][broker] Improve Consumer.equals performance ([#23864](https://github.com/apache/pulsar/pull/23864))\r\n- [improve][broker] Reduce unnecessary REPLICATED_SUBSCRIPTION_SNAPSHOT_REQUEST ([#23839](https://github.com/apache/pulsar/pull/23839))\r\n- [improve][broker] Remove spamming logs for customized managed ledger ([#23862](https://github.com/apache/pulsar/pull/23862))\r\n- [improve][broker] Support values up to 2^32 in ConcurrentBitmapSortedLongPairSet ([#23878](https://github.com/apache/pulsar/pull/23878))\r\n- [improve][meta] Simplify getting parent path in ZKMetadataStore without using java.io.File ([#23996](https://github.com/apache/pulsar/pull/23996))\r\n\r\n### Client\r\n\r\n- [feat][client] Support forward proxy for the ZTS server in pulsar-client-auth-athenz ([#23947](https://github.com/apache/pulsar/pull/23947))\r\n- [fix] Avoid NPE when closing an uninitialized SameAuthParamsLookupAutoClusterFailover ([#23911](https://github.com/apache/pulsar/pull/23911))\r\n- [fix] Initialize UrlServiceProvider before trying to use transaction coordinator ([#23914](https://github.com/apache/pulsar/pull/23914))\r\n- [fix][client] Fix LoadManagerReport not found ([#23886](https://github.com/apache/pulsar/pull/23886))\r\n- [fix][client] Fix memory leak in ClientCnx.newLookup when there's TooManyRequestsException ([#23971](https://github.com/apache/pulsar/pull/23971))\r\n- [fix][client] Fix memory leak when message size exceeds max message size and batching is enabled ([#23967](https://github.com/apache/pulsar/pull/23967))\r\n- [fix][client] Orphan producer when concurrently calling producer closing and reconnection ([#23853](https://github.com/apache/pulsar/pull/23853))\r\n- [fix][client] call redeliver 1 msg but did 2 msgs ([#23943](https://github.com/apache/pulsar/pull/23943))\r\n- [fix][client] fix retry topic with exclusive mode. ([#23859](https://github.com/apache/pulsar/pull/23859))\r\n- [improve][client] Avoid logging errors for retriable errors when creating producer [#23935](https://github.com/apache/pulsar/pull/23935)\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][io] Fix pulsar-io:pom not found ([#23979](https://github.com/apache/pulsar/pull/23979))\r\n- [improve] Validate user paths in Functions utils ([#22833](https://github.com/apache/pulsar/pull/22833))\r\n- [improve][io] Allow skipping connector deployment ([#23932](https://github.com/apache/pulsar/pull/23932))\r\n\r\n### Others\r\n\r\n- [improve][proxy] Make keep-alive interval configurable in Pulsar Proxy ([#23981](https://github.com/apache/pulsar/pull/23981))\r\n- [fix] fix for code scanning alert no. 48: Uncontrolled data used in path expression ([#23985](https://github.com/apache/pulsar/pull/23985))\r\n- [fix][build] Add develops for buildtools ([#23992](https://github.com/apache/pulsar/pull/23992))\r\n- [improve] Support overriding java.net.preferIPv4Stack with OPTS ([#23846](https://github.com/apache/pulsar/pull/23846))\r\n\r\n### Tests & CI\r\n\r\n- [improve][test] Add solution to PulsarMockBookKeeper for intercepting reads ([#23875](https://github.com/apache/pulsar/pull/23875))\r\n- [fix][test] Add reconsumeLater call in RetryTopicTest#testRetryTopicWithMultiTopic. ([#23857](https://github.com/apache/pulsar/pull/23857))\r\n- [fix][test] Fix flaky DelayedDeliveryTest.testEnableTopicDelayedDelivery ([#23893](https://github.com/apache/pulsar/pull/23893))\r\n- [fix][test] Fix quiet time implementation in BrokerTestUtil.receiveMessages ([#23876](https://github.com/apache/pulsar/pull/23876))\r\n- [fix][test] fix flaky testNegativeAcksWithBackoff when batch enabled. ([#23986](https://github.com/apache/pulsar/pull/23986))\r\n- [fix][test]Fix flaky test testTopicUnloadAfterSessionRebuild ([#23852](https://github.com/apache/pulsar/pull/23852))\r\n- [fix][ci] Configure Docker data-root to /mnt/docker to avoid running out of disk space ([#23909](https://github.com/apache/pulsar/pull/23909))\r\n- [improve][ci] Increase Maven max heap size to 2048M and tune GCLockerRetryAllocationCount ([#23883](https://github.com/apache/pulsar/pull/23883))\r\n- [improve][ci] Publish build scans to develocity.apache.org ([#23851](https://github.com/apache/pulsar/pull/23851))\r\n- [improve][ci] Skip \"OWASP dependency check\" when data wasn't found in cache ([#23970](https://github.com/apache/pulsar/pull/23970))\r\n- [improve][ci] Update GitHub Workflows to Ubuntu 22.04 ([#20729](https://github.com/apache/pulsar/pull/20729))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.9...v3.0.10).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/195666183","assets_url":"https://api.github.com/repos/apache/pulsar/releases/195666183/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/195666183/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.2","id":195666183,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4LqaEH","tag_name":"v4.0.2","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-01-20T14:54:06Z","updated_at":"2025-01-30T08:39:37Z","published_at":"2025-01-20T14:54:39Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.2","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.2","body":"#### 2025-01-20\r\n\r\n### Known Major Issues in this Release\r\n\r\nThis release contains a known issue impacting the `seek` method by timestamp. This issue was reported after the release was published.\r\n\r\n- [Bug] Seeking by timestamp causes the subscription to reset to the earliest position ([#23910](https://github.com/apache/pulsar/issues/23910))\r\n\r\nWorkaround for the issue:\r\n\r\nThe issue is caused by changes introduced in [#22792](https://github.com/apache/pulsar/pull/22792). To resolve this, disable the functionality by setting the following configuration:\r\n\r\n```properties\r\nmanagedLedgerCursorResetLedgerCloseTimestampMaxClockSkewMillis=-1\r\n```\r\n\r\nWorkaround Configuration Notes:\r\n\r\n- This configuration key needs to be manually added to your `broker.conf` file as it doesn't exist by default\r\n- For Apache Pulsar Helm Chart Kubernetes deployments, add the following to your values.yaml file under the `broker`/`configData` section:\r\n\r\n```yaml\r\nbroker:\r\n  configData:\r\n    PULSAR_PREFIX_managedLedgerCursorResetLedgerCloseTimestampMaxClockSkewMillis: \"-1\"\r\n```\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Bump commons-io version to 2.18.0 ([#23684](https://github.com/apache/pulsar/pull/23684))\r\n- [fix][sec] Mitigate CVE-2024-53990 by disabling AsyncHttpClient CookieStore ([#23725](https://github.com/apache/pulsar/pull/23725))\r\n- [fix][sec] Upgrade async-http-client to 2.12.4 to address CVE-2024-53990 ([#23732](https://github.com/apache/pulsar/pull/23732))\r\n- [fix][sec] Upgrade golang.org/x/crypto from 0.21.0 to 0.31.0 in pulsar-function-go ([#23743](https://github.com/apache/pulsar/pull/23743))\r\n- [improve] Upgrade lombok to 1.18.36 ([#23752](https://github.com/apache/pulsar/pull/23752))\r\n- [improve] Upgrade to Netty 4.1.116.Final and io_uring to 0.0.26.Final ([#23813](https://github.com/apache/pulsar/pull/23813))\r\n- [improve][monitor] Upgrade OTel to 1.45.0 ([#23756](https://github.com/apache/pulsar/pull/23756))\r\n\r\n### Broker\r\n\r\n- [fix][admin] Fix exception loss in getMessageId method ([#23766](https://github.com/apache/pulsar/pull/23766))\r\n- [fix][admin] Fix exception thrown in getMessageId method ([#23784](https://github.com/apache/pulsar/pull/23784))\r\n- [fix][admin] Listen partitioned topic creation event ([#23680](https://github.com/apache/pulsar/pull/23680))\r\n- [fix][admin] Verify is policies read only before revoke permissions on topic ([#23730](https://github.com/apache/pulsar/pull/23730))\r\n- [fix][broker] Add consumer name for subscription stats ([#23671](https://github.com/apache/pulsar/pull/23671))\r\n- [fix][broker] Avoid block markDeletePosition forward when skip lost entries ([#21210](https://github.com/apache/pulsar/pull/21210))\r\n- [fix][broker] Catch exception for entry payload interceptor processor ([#23683](https://github.com/apache/pulsar/pull/23683))\r\n- [fix][broker] Continue using the next provider for authentication if one fails ([#23797](https://github.com/apache/pulsar/pull/23797))\r\n- [fix][broker] Continue using the next provider for http authentication if one fails ([#23842](https://github.com/apache/pulsar/pull/23842))\r\n- [fix][broker] Fix acknowledgeCumulativeAsync block when ackReceipt is enabled ([#23841](https://github.com/apache/pulsar/pull/23841))\r\n- [fix][broker] Fix bug causing loss of migrated information when setting other localPolicies in namespace ([#23764](https://github.com/apache/pulsar/pull/23764))\r\n- [fix][broker] Fix config replicationStartAt does not work when set it to earliest ([#23719](https://github.com/apache/pulsar/pull/23719))\r\n- [fix][broker] Fix deadlock in Key_Shared PIP-379 implementation ([#23854](https://github.com/apache/pulsar/pull/23854))\r\n- [fix][broker] Fix enableReplicatedSubscriptions ([#23781](https://github.com/apache/pulsar/pull/23781))\r\n- [fix][broker] Fix items in dispatcher.recentlyJoinedConsumers are out-of-order, which may cause a delivery stuck ([#23802](https://github.com/apache/pulsar/pull/23802))\r\n- [fix][broker] Fix possible mark delete NPE when batch index ack is enabled ([#23833](https://github.com/apache/pulsar/pull/23833))\r\n- [fix][broker] Fix the retry mechanism in `MetadataCache#readModifyUpdateOrCreate` ([#23686](https://github.com/apache/pulsar/pull/23686))\r\n- [fix][broker] Invoke custom BrokerInterceptor's `onFilter` method if it's defined ([#23676](https://github.com/apache/pulsar/pull/23676))\r\n- [fix][broker] Msg delivery is stuck due to items in the collection recentlyJoinedConsumers are out-of-order ([#23795](https://github.com/apache/pulsar/pull/23795))\r\n- [fix][broker] PIP-399: Fix Metric Name for Delayed Queue ([#23712](https://github.com/apache/pulsar/pull/23712))\r\n- [fix][broker] Remove blocking calls from internalGetPartitionedStats ([#23832](https://github.com/apache/pulsar/pull/23832))\r\n- [fix][broker] Remove failed OpAddEntry from pendingAddEntries ([#23817](https://github.com/apache/pulsar/pull/23817))\r\n- [fix][broker] Revert \"[fix][broker] Cancel possible pending replay read in cancelPendingRead ([#23384](https://github.com/apache/pulsar/pull/23384))\" ([#23855](https://github.com/apache/pulsar/pull/23855))\r\n- [fix][broker] System topic should not be migrated during blue-green cluster migration ([#23767](https://github.com/apache/pulsar/pull/23767))\r\n- [fix][broker] fix NPE when calculating a topic's backlogQuota ([#23720](https://github.com/apache/pulsar/pull/23720))\r\n- [fix][broker] support missing cluster level fine-granted permissions ([#23675](https://github.com/apache/pulsar/pull/23675))\r\n- [fix][broker] topic policy deadlock block metadata thread. ([#23786](https://github.com/apache/pulsar/pull/23786))\r\n- [fix][ml] Topic load timeout due to ml data ledger future never finishes ([#23772](https://github.com/apache/pulsar/pull/23772))\r\n- [improve][admin] Opt-out of topic-existence check ([#23709](https://github.com/apache/pulsar/pull/23709))\r\n- [improve][broker] Improve SystemTopicBasedTopicPoliciesService reader to reduce GC pressure ([#23780](https://github.com/apache/pulsar/pull/23780))\r\n- [improve][broker] Optimize subscription seek (cursor reset) by timestamp ([#22792](https://github.com/apache/pulsar/pull/22792))\r\n- [improve][broker] Reduce unnecessary REPLICATED_SUBSCRIPTION_SNAPSHOT_REQUEST ([#23839](https://github.com/apache/pulsar/pull/23839))\r\n- [improve][log] Print ZK path if write to ZK fails due to data being too large to persist ([#23652](https://github.com/apache/pulsar/pull/23652))\r\n- [improve][ml] Optimize BlobStoreManagedLedgerOffloader.getOffloadPolicies ([#23776](https://github.com/apache/pulsar/pull/23776))\r\n- [improve][txn] Improve Reader in TransactionBuffer to reduce GC pressure ([#23779](https://github.com/apache/pulsar/pull/23779))\r\n\r\n### Client\r\n\r\n- [Fix][Client] Fix pending message not complete when closeAsync ([#23761](https://github.com/apache/pulsar/pull/23761))\r\n- [fix][client] Cannot access message data inside ProducerInterceptor#onSendAcknowledgement ([#23791](https://github.com/apache/pulsar/pull/23791))\r\n- [fix][client] Fix compatibility between kerberos and tls ([#23798](https://github.com/apache/pulsar/pull/23798))\r\n- [fix][client] Fix enableRetry for consumers using legacy topic naming where cluster name is included ([#23753](https://github.com/apache/pulsar/pull/23753))\r\n- [fix][client] Fix memory leak when publishing encountered a corner case error ([#23738](https://github.com/apache/pulsar/pull/23738))\r\n- [fix][client] Fix reader message filtering issue during blue-green cluster switch ([#23693](https://github.com/apache/pulsar/pull/23693))\r\n- [fix][client] Fix wrong start message id when it's a chunked message id ([#23713](https://github.com/apache/pulsar/pull/23713))\r\n- [fix][client] Make DeadLetterPolicy & KeySharedPolicy serializable ([#23718](https://github.com/apache/pulsar/pull/23718))\r\n- [fix][client] Orphan producer when concurrently calling producer closing and reconnection ([#23853](https://github.com/apache/pulsar/pull/23853))\r\n- [fix][client] Prevent retry topic and dead letter topic producer leaks when sending of message fails ([#23824](https://github.com/apache/pulsar/pull/23824))\r\n- [fix][doc] Refine ClientBuilder#memoryLimit and ConsumerBuilder#autoScaledReceiverQueueSizeEnabled javadoc ([#23687](https://github.com/apache/pulsar/pull/23687))\r\n- [improve][client] Make replicateSubscriptionState nullable ([#23757](https://github.com/apache/pulsar/pull/23757))\r\n- [improve][client] PIP-393: Improve performance of Negative Acknowledgement ([#23600](https://github.com/apache/pulsar/pull/23600))\r\n- [improve][client] PIP-393: Support configuring NegativeAckPrecisionBitCnt while building consumer. ([#23804](https://github.com/apache/pulsar/pull/23804))\r\n- [improve][client] Print consumer stats log if prefetched messages are not zero ([#23698](https://github.com/apache/pulsar/pull/23698))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [improve][fn] Improve closing of producers in Pulsar Functions ProducerCache invalidation ([#23734](https://github.com/apache/pulsar/pull/23734))\r\n- [improve][fn] Improve implementation for maxPendingAsyncRequests async concurrency limit when return type is CompletableFuture&lt;Void&gt; ([#23708](https://github.com/apache/pulsar/pull/23708))\r\n- [improve][io] Bump io.lettuce:lettuce-core from 5.0.2.RELEASE to 6.5.1.RELEASE in /pulsar-io/redis ([#23685](https://github.com/apache/pulsar/pull/23685))\r\n\r\n### Others\r\n\r\n- [fix][common] TopicName: Throw IllegalArgumentException if localName is whitespace only ([#23691](https://github.com/apache/pulsar/pull/23691))\r\n- [fix] Fix issues with Pulsar Alpine docker image stability: remove glibc-compat  ([#23762](https://github.com/apache/pulsar/pull/23762))\r\n- [fix][cli] Fix set topic retention policy failed ([#23688](https://github.com/apache/pulsar/pull/23688))\r\n- [fix][cli] Fix set-retention with >2GB size value for topic policy ([#23689](https://github.com/apache/pulsar/pull/23689))\r\n- [fix][misc] Honor dynamic log levels in log4j2.yaml ([#23847](https://github.com/apache/pulsar/pull/23847))\r\n- [improve] Support overriding java.net.preferIPv4Stack with OPTS ([#23846](https://github.com/apache/pulsar/pull/23846))\r\n- [improve] Install coreutils in docker image to improve compatibility ([#23667](https://github.com/apache/pulsar/pull/23667))\r\n\r\n### Tests & CI\r\n\r\n- [fix][test] Add reconsumeLater call in RetryTopicTest#testRetryTopicWithMultiTopic. ([#23857](https://github.com/apache/pulsar/pull/23857))\r\n- [fix][test] Fix flaky KeySharedSubscriptionTest.testNoKeySendAndReceiveWithHashRangeAutoSplitStickyKeyConsumerSelector ([#23747](https://github.com/apache/pulsar/pull/23747))\r\n- [fix][test] Remove useless test code ([#23823](https://github.com/apache/pulsar/pull/23823))\r\n- [fix][test] Flaky-test: GetPartitionMetadataMultiBrokerTest.testCompatibilityDifferentBrokersForNonPersistentTopic ([#23666](https://github.com/apache/pulsar/pull/23666))\r\n- [fix][test] Fix flaky test testTopicUnloadAfterSessionRebuild ([#23852](https://github.com/apache/pulsar/pull/23852))\r\n- [improve][ci] Move ZkSessionExpireTest to flaky group to unblock CI ([#23810](https://github.com/apache/pulsar/pull/23810))\r\n- [improve][ci] Publish build scans to develocity.apache.org ([#23851](https://github.com/apache/pulsar/pull/23851))\r\n- [improve][test] Add more test for the case that client receives a SendError, which relates to the PR [#23038](https://github.com/apache/pulsar/pull/23038) ([#23721](https://github.com/apache/pulsar/pull/23721))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.1...v4.0.2).\r\n"},{"url":"https://api.github.com/repos/apache/pulsar/releases/195607538","assets_url":"https://api.github.com/repos/apache/pulsar/releases/195607538/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/195607538/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.4","id":195607538,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4LqLvy","tag_name":"v3.3.4","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-01-20T09:55:51Z","updated_at":"2025-01-20T10:30:35Z","published_at":"2025-01-20T10:04:11Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.4","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.4","body":"#### 2025-01-20\r\n\r\n### Library updates\r\n\r\n- [improve] Upgrade lombok to 1.18.36 ([#23752](https://github.com/apache/pulsar/pull/23752))\r\n- [improve] Upgrade to Netty 4.1.116.Final and io_uring to 0.0.26.Final ([#23813](https://github.com/apache/pulsar/pull/23813))\r\n- [improve][monitor] Upgrade OTel to 1.45.0 ([#23756](https://github.com/apache/pulsar/pull/23756))\r\n- [fix][sec] Bump commons-io version to 2.18.0 ([#23684](https://github.com/apache/pulsar/pull/23684))\r\n- [fix][sec] Mitigate CVE-2024-53990 by disabling AsyncHttpClient CookieStore ([#23725](https://github.com/apache/pulsar/pull/23725))\r\n- [fix][sec] Upgrade async-http-client to 2.12.4 to address CVE-2024-53990 ([#23732](https://github.com/apache/pulsar/pull/23732))\r\n- [fix][sec] Upgrade golang.org/x/crypto from 0.21.0 to 0.31.0 in pulsar-function-go ([#23743](https://github.com/apache/pulsar/pull/23743))\r\n\r\n### Broker\r\n\r\n- [feat][broker] Implement allowBrokerOperationAsync in PulsarAuthorizationProvider to avoid exception thrown ([#23663](https://github.com/apache/pulsar/pull/23663))\r\n- [fix][admin] Fix exception loss in getMessageId method ([#23766](https://github.com/apache/pulsar/pull/23766))\r\n- [fix][admin] Fix exception thrown in getMessageId method ([#23784](https://github.com/apache/pulsar/pull/23784))\r\n- [fix][broker] Add consumer name for subscription stats ([#23671](https://github.com/apache/pulsar/pull/23671))\r\n- [fix][broker] Catch exception for entry payload interceptor processor ([#23683](https://github.com/apache/pulsar/pull/23683))\r\n- [fix][broker] Continue using the next provider for authentication if one fails ([#23797](https://github.com/apache/pulsar/pull/23797))\r\n- [fix][broker] Fix bug causing loss of migrated information when setting other localPolicies in namespace ([#23764](https://github.com/apache/pulsar/pull/23764))\r\n- [fix][broker] Fix config replicationStartAt does not work when set it to earliest ([#23719](https://github.com/apache/pulsar/pull/23719))\r\n- [fix][broker] Fix enableReplicatedSubscriptions ([#23781](https://github.com/apache/pulsar/pull/23781))\r\n- [fix][broker] Fix items in dispatcher.recentlyJoinedConsumers are out-of-order, which may cause a delivery stuck ([#23802](https://github.com/apache/pulsar/pull/23802))\r\n- [fix][broker] Invoke custom BrokerInterceptor's `onFilter` method if it's defined ([#23676](https://github.com/apache/pulsar/pull/23676))\r\n- [fix][broker] Remove failed OpAddEntry from pendingAddEntries ([#23817](https://github.com/apache/pulsar/pull/23817))\r\n- [fix][broker] Skip to persist cursor info if it failed by cursor closed ([#23615](https://github.com/apache/pulsar/pull/23615))\r\n- [fix][broker] System topic should not be migrated during blue-green cluster migration ([#23767](https://github.com/apache/pulsar/pull/23767))\r\n- [fix][broker] fix NPE when calculating a topic's backlogQuota ([#23720](https://github.com/apache/pulsar/pull/23720))\r\n- [fix][broker] support missing cluster level fine-granted permissions ([#23675](https://github.com/apache/pulsar/pull/23675))\r\n- [fix][broker] support missing tenant level fine-granted permissions ([#23660](https://github.com/apache/pulsar/pull/23660))\r\n- [fix][broker] support missing broker level fine-granted permissions ([#23637](https://github.com/apache/pulsar/pull/23637))\r\n- [fix][broker] Msg delivery is stuck due to items in the collection recentlyJoinedConsumers are out-of-order ([#23795](https://github.com/apache/pulsar/pull/23795))\r\n- [fix][common] TopicName: Throw IllegalArgumentException if localName is whitespace only ([#23691](https://github.com/apache/pulsar/pull/23691))\r\n- [fix][ml] Topic load timeout due to ml data ledger future never finishes ([#23772](https://github.com/apache/pulsar/pull/23772))\r\n- [improve][admin] Opt-out of topic-existence check ([#23709](https://github.com/apache/pulsar/pull/23709))\r\n- [improve][broker][branch-3.3] Optimize PersistentTopic.getLastDispatchablePosition ([#22707](https://github.com/apache/pulsar/pull/22707)) ([#23826](https://github.com/apache/pulsar/pull/23826))\r\n\r\n### Client\r\n\r\n- [Fix][Client] Fix pending message not complete when closeAsync ([#23761](https://github.com/apache/pulsar/pull/23761))\r\n- [fix][client] Cannot access message data inside ProducerInterceptor#onSendAcknowledgement ([#23791](https://github.com/apache/pulsar/pull/23791))\r\n- [fix][client] Fix enableRetry for consumers using legacy topic naming where cluster name is included ([#23753](https://github.com/apache/pulsar/pull/23753))\r\n- [fix][client] Fix memory leak when publishing encountered a corner case error ([#23738](https://github.com/apache/pulsar/pull/23738))\r\n- [fix][client] Fix reader message filtering issue during blue-green cluster switch ([#23693](https://github.com/apache/pulsar/pull/23693))\r\n- [fix][client] Make DeadLetterPolicy & KeySharedPolicy serializable ([#23718](https://github.com/apache/pulsar/pull/23718))\r\n- [fix][client] Prevent retry topic and dead letter topic producer leaks when sending of message fails ([#23824](https://github.com/apache/pulsar/pull/23824))\r\n- [improve][client] Make replicateSubscriptionState nullable ([#23757](https://github.com/apache/pulsar/pull/23757))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [improve][fn] Improve closing of producers in Pulsar Functions ProducerCache invalidation ([#23734](https://github.com/apache/pulsar/pull/23734))\r\n- [improve][fn] Improve implementation for maxPendingAsyncRequests async concurrency limit when return type is CompletableFuture<Void> ([#23708](https://github.com/apache/pulsar/pull/23708))\r\n\r\n### Others\r\n\r\n- [fix][cli] Fix set topic retention policy failed ([#23688](https://github.com/apache/pulsar/pull/23688))\r\n- [fix][cli] Fix set-retention with >2GB size value for topic policy ([#23689](https://github.com/apache/pulsar/pull/23689))\r\n- [fix] Fix issues with Pulsar Alpine docker image stability: remove glibc-compat  ([#23762](https://github.com/apache/pulsar/pull/23762))\r\n- [improve] Install coreutils in docker image to improve compatibility ([#23667](https://github.com/apache/pulsar/pull/23667))\r\n\r\n### Tests & CI\r\n\r\n- [fix][test] Remove useless test code ([#23823](https://github.com/apache/pulsar/pull/23823))\r\n- [fix][test]: Flaky-test: GetPartitionMetadataMultiBrokerTest.testCompatibilityDifferentBrokersForNonPersistentTopic ([#23666](https://github.com/apache/pulsar/pull/23666))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.3...v3.3.4)."},{"url":"https://api.github.com/repos/apache/pulsar/releases/195660928","assets_url":"https://api.github.com/repos/apache/pulsar/releases/195660928/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/195660928/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.9","id":195660928,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4LqYyA","tag_name":"v3.0.9","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2025-01-20T14:27:53Z","updated_at":"2025-01-20T14:38:10Z","published_at":"2025-01-20T14:28:50Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.9","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.9","body":"#### 2025-01-20\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Bump commons-io version to 2.18.0 ([#23684](https://github.com/apache/pulsar/pull/23684))\r\n- [fix][sec] Mitigate CVE-2024-53990 by disabling AsyncHttpClient CookieStore ([#23725](https://github.com/apache/pulsar/pull/23725))\r\n- [fix][sec] Upgrade async-http-client to 2.12.4 to address CVE-2024-53990 ([#23732](https://github.com/apache/pulsar/pull/23732))\r\n- [fix][sec] Upgrade golang.org/x/crypto from 0.21.0 to 0.31.0 in pulsar-function-go ([#23743](https://github.com/apache/pulsar/pull/23743))\r\n- [improve] Upgrade lombok to 1.18.36 ([#23752](https://github.com/apache/pulsar/pull/23752))\r\n- [improve] Upgrade to Netty 4.1.116.Final and io_uring to 0.0.26.Final ([#23813](https://github.com/apache/pulsar/pull/23813))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Msg delivery is stuck due to items in the collection recentlyJoinedConsumers are out-of-order ([#23795](https://github.com/apache/pulsar/pull/23795))\r\n- [fix][broker] Add consumer name for subscription stats ([#23671](https://github.com/apache/pulsar/pull/23671))\r\n- [fix][broker] Catch exception for entry payload interceptor processor ([#23683](https://github.com/apache/pulsar/pull/23683))\r\n- [fix][broker] Continue using the next provider for authentication if one fails ([#23797](https://github.com/apache/pulsar/pull/23797))\r\n- [fix][broker] Fix config replicationStartAt does not work when set it to earliest ([#23719](https://github.com/apache/pulsar/pull/23719))\r\n- [fix][broker] Fix enableReplicatedSubscriptions ([#23781](https://github.com/apache/pulsar/pull/23781))\r\n- [fix][broker] Fix items in dispatcher.recentlyJoinedConsumers are out-of-order, which may cause a delivery stuck ([#23802](https://github.com/apache/pulsar/pull/23802))\r\n- [fix][broker] Remove failed OpAddEntry from pendingAddEntries ([#23817](https://github.com/apache/pulsar/pull/23817))\r\n- [fix][broker] Skip to persist cursor info if it failed by cursor closed ([#23615](https://github.com/apache/pulsar/pull/23615))\r\n- [fix][broker] fix NPE when calculating a topic's backlogQuota ([#23720](https://github.com/apache/pulsar/pull/23720))\r\n- [fix][admin] Fix exception loss in getMessageId method ([#23766](https://github.com/apache/pulsar/pull/23766))\r\n- [fix][admin] Fix exception thrown in getMessageId method ([#23784](https://github.com/apache/pulsar/pull/23784))\r\n- [fix][admin] Listen partitioned topic creation event ([#23680](https://github.com/apache/pulsar/pull/23680))\r\n- [improve][admin] Opt-out of topic-existence check ([#23709](https://github.com/apache/pulsar/pull/23709))\r\n- [improve][log] Print ZK path if write to ZK fails due to data being too large to persist ([#23652](https://github.com/apache/pulsar/pull/23652))\r\n- [fix][ml] Topic load timeout due to ml data ledger future never finishes ([#23772](https://github.com/apache/pulsar/pull/23772))\r\n\r\n### Client\r\n\r\n- [Fix][Client] Fix pending message not complete when closeAsync ([#23761](https://github.com/apache/pulsar/pull/23761))\r\n- [fix][client] Cannot access message data inside ProducerInterceptor#onSendAcknowledgement ([#23791](https://github.com/apache/pulsar/pull/23791))\r\n- [fix][client] Fix enableRetry for consumers using legacy topic naming where cluster name is included ([#23753](https://github.com/apache/pulsar/pull/23753))\r\n- [fix][client] Fix memory leak when publishing encountered a corner case error ([#23738](https://github.com/apache/pulsar/pull/23738))\r\n- [fix][client] Fix wrong start message id when it's a chunked message id ([#23713](https://github.com/apache/pulsar/pull/23713))\r\n- [fix][client] Make DeadLetterPolicy & KeySharedPolicy serializable ([#23718](https://github.com/apache/pulsar/pull/23718))\r\n- [fix][client] Prevent retry topic and dead letter topic producer leaks when sending of message fails ([#23824](https://github.com/apache/pulsar/pull/23824))\r\n- [fix][client][branch-3.0] Fix compatibility between kerberos and tls ([#23801](https://github.com/apache/pulsar/pull/23801))\r\n- [improve][client] Make replicateSubscriptionState nullable ([#23757](https://github.com/apache/pulsar/pull/23757))\r\n- [fix][doc] Refine ClientBuilder#memoryLimit and ConsumerBuilder#autoScaledReceiverQueueSizeEnabled javadoc ([#23687](https://github.com/apache/pulsar/pull/23687))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [improve][fn] Improve closing of producers in Pulsar Functions ProducerCache invalidation ([#23734](https://github.com/apache/pulsar/pull/23734))\r\n- [improve][fn] Improve implementation for maxPendingAsyncRequests async concurrency limit when return type is CompletableFuture<Void> ([#23708](https://github.com/apache/pulsar/pull/23708))\r\n- [improve][io] Bump io.lettuce:lettuce-core from 5.0.2.RELEASE to 6.5.1.RELEASE in /pulsar-io/redis ([#23685](https://github.com/apache/pulsar/pull/23685))\r\n- [fix][fn][branch-3.0] Fix pulsar-function-go compilation\r\n\r\n### Others\r\n\r\n- [fix][common] TopicName: Throw IllegalArgumentException if localName is whitespace only ([#23691](https://github.com/apache/pulsar/pull/23691))\r\n\r\n### Tests & CI\r\n\r\n- [fix][test] Remove useless test code ([#23823](https://github.com/apache/pulsar/pull/23823))\r\n- [fix][test]: Flaky-test: GetPartitionMetadataMultiBrokerTest.testCompatibilityDifferentBrokersForNonPersistentTopic ([#23666](https://github.com/apache/pulsar/pull/23666))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.8...v3.0.9).\r\n","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/195660928/reactions","total_count":2,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/188726522","assets_url":"https://api.github.com/repos/apache/pulsar/releases/188726522/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/188726522/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.3.3","id":188726522,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4LP7z6","tag_name":"v3.3.3","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-12-03T14:42:42Z","updated_at":"2024-12-12T18:42:52Z","published_at":"2024-12-03T14:43:20Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.3.3","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.3.3","body":"#### 2024-12-03\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Drop hdfs2 support, Upgrade hadoop3 to 3.4.0 and dnsjava to 3.6.2 to address CVE-2024-25638 ([#23411](https://github.com/apache/pulsar/pull/23411))\r\n- [fix][sec] Replace bcprov-jdk15on dependency with bcprov-jdk18-on ([#23532](https://github.com/apache/pulsar/pull/23532))\r\n- [fix][sec] Upgrade Zookeeper to 3.9.3 to address CVE-2024-51504 ([#23581](https://github.com/apache/pulsar/pull/23581))\r\n- [fix][sec] Upgrade to Netty 4.1.115.Final to address CVE-2024-47535 ([#23596](https://github.com/apache/pulsar/pull/23596))\r\n- [improve] Upgrade OpenTelemetry library to 1.44.1 version ([#23656](https://github.com/apache/pulsar/pull/23656))\r\n- [improve] Upgrade oxia-java to 0.4.10 and fix closing of OxiaMetadataStore ([#23653](https://github.com/apache/pulsar/pull/23653))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Avoid orphan ledgers in BucketDelayedDeliveryTracker ([#22802](https://github.com/apache/pulsar/pull/22802))\r\n- [fix][broker] Broker is failing to create non-durable sub if topic is fenced ([#23579](https://github.com/apache/pulsar/pull/23579))\r\n- [fix][broker] Fix AvgShedder strategy check ([#23156](https://github.com/apache/pulsar/pull/23156))\r\n- [fix][broker] Fix Broker migration NPE while broker tls url not configured ([#23534](https://github.com/apache/pulsar/pull/23534))\r\n- [fix][broker] Fix currently client retries until operation timeout if the topic does not exist ([#23530](https://github.com/apache/pulsar/pull/23530))\r\n- [fix][broker] Fix failed TokenAuthenticatedProducerConsumerTest ([#23602](https://github.com/apache/pulsar/pull/23602))\r\n- [fix][broker] Fix namespace unload might be blocked too long with extensible load manager ([#23433](https://github.com/apache/pulsar/pull/23433)) ([#23517](https://github.com/apache/pulsar/pull/23517))\r\n- [fix][broker] Fix ownership loss ([#23515](https://github.com/apache/pulsar/pull/23515))\r\n- [fix][broker] Fix print cluster migration state response ([#23535](https://github.com/apache/pulsar/pull/23535))\r\n- [fix][broker] Fix race-condition causing repeated delete topic ([#23522](https://github.com/apache/pulsar/pull/23522))\r\n- [fix][broker] Fix the broker registering might be blocked for long time ([#23371](https://github.com/apache/pulsar/pull/23371)) ([#23507](https://github.com/apache/pulsar/pull/23507))\r\n- [fix][broker] Fix unloadNamespaceBundlesGracefully can be stuck with extensible load manager  ([#23349](https://github.com/apache/pulsar/pull/23349)) ([#23496](https://github.com/apache/pulsar/pull/23496))\r\n- [fix][broker] Increase readBuffer size for bookkeeper.DLOutputStream ([#23548](https://github.com/apache/pulsar/pull/23548))\r\n- [fix][broker] Topics failed to delete after remove cluster from replicated clusters set and caused OOM ([#23360](https://github.com/apache/pulsar/pull/23360))\r\n- [fix][broker] fix logging with correct error message while loading the topic ([#23544](https://github.com/apache/pulsar/pull/23544))\r\n- [fix][broker] fix null lookup result when brokers are starting ([#23642](https://github.com/apache/pulsar/pull/23642))\r\n- [fix][broker] normalize path ([#23438](https://github.com/apache/pulsar/pull/23438))\r\n- [fix][broker] timeout when broker registry hangs and monitor broker registry (ExtensibleLoadManagerImpl only) ([#23382](https://github.com/apache/pulsar/pull/23382)) ([#23510](https://github.com/apache/pulsar/pull/23510))\r\n- [improve][broker] Add log to track issue when `handleGetTopicsOfNamespace` ([#23434](https://github.com/apache/pulsar/pull/23434))\r\n- [improve][broker] Clear thread local BrokerEntryMetadata instance before reuse ([#22752](https://github.com/apache/pulsar/pull/22752))\r\n- [improve][broker] Decouple pulsar_storage_backlog_age_seconds metric with backlogQuota check ([#23619](https://github.com/apache/pulsar/pull/23619))\r\n- [improve][broker] Exclude system topics from namespace level publish and dispatch rate limiting ([#23589](https://github.com/apache/pulsar/pull/23589))\r\n- [improve][broker] Make cluster metadata init command support metadata config path ([#23269](https://github.com/apache/pulsar/pull/23269))\r\n- [improve][broker] Make cluster metadata teardown command support metadata config path ([#23520](https://github.com/apache/pulsar/pull/23520))\r\n- [improve][broker] PIP-383: Support granting/revoking permissions for multiple topics ([#23372](https://github.com/apache/pulsar/pull/23372))\r\n- [improve][broker] PIP-392: Add configuration to enable consistent hashing to select active consumer for partitioned topic ([#23584](https://github.com/apache/pulsar/pull/23584))\r\n- [improve][broker] Skip unloading when bundle throughput is zero (ExtensibleLoadManagerImpl only) ([#23626](https://github.com/apache/pulsar/pull/23626))\r\n- [improve][broker] Support cleanup `replication cluster` and `allowed cluster` when cluster metadata teardown ([#23561](https://github.com/apache/pulsar/pull/23561))\r\n- [improve][broker] re-elect the channel owner if no channel owner is found ([#23516](https://github.com/apache/pulsar/pull/23516)) ([#23580](https://github.com/apache/pulsar/pull/23580))\r\n- [improve][broker] replace HashMap with inner implementation ConcurrentLongLongPairHashMap in Negative Ack Tracker. ([#23582](https://github.com/apache/pulsar/pull/23582))\r\n\r\n### Client\r\n\r\n- [fix][admin] Fix lookup get a null result if uses proxy ([#23556](https://github.com/apache/pulsar/pull/23556))\r\n- [fix][client] Fix DLQ producer name conflicts when there are same name consumers ([#23577](https://github.com/apache/pulsar/pull/23577))\r\n- [fix][client] Fix Reader.hasMessageAvailable return wrong value after seeking by timestamp with startMessageIdInclusive ([#23502](https://github.com/apache/pulsar/pull/23502))\r\n- [fix][client] Fix ReaderBuilder doest not give illegalArgument on connection failure retry ([#22639](https://github.com/apache/pulsar/pull/22639))\r\n- [fix][client] Fix deadlock of NegativeAcksTracker ([#23651](https://github.com/apache/pulsar/pull/23651))\r\n- [fix][client] Fix producer/consumer stop to reconnect or Pub/Sub due to IO thread race-condition  ([#23499](https://github.com/apache/pulsar/pull/23499))\r\n- [fix][client] Fix race-condition causing doReconsumeLater to hang when creating retryLetterProducer has failed ([#23560](https://github.com/apache/pulsar/pull/23560))\r\n- [fix][client] Fix the javadoc for ConsumerBuilder.isAckReceiptEnabled ([#23452](https://github.com/apache/pulsar/pull/23452))\r\n- [fix][client] Fixed an issue where a cert chain could not be used in TLS authentication ([#23644](https://github.com/apache/pulsar/pull/23644))\r\n- [fix][client] Initializing client-authentication using configured auth params ([#23610](https://github.com/apache/pulsar/pull/23610))\r\n- [fix][client] Make protobuf-java dependency optional in java client libraries ([#23632](https://github.com/apache/pulsar/pull/23632))\r\n- [fix][client] Prevent embedding protobuf-java class files in pulsar-client-admin and pulsar-client-all ([#23468](https://github.com/apache/pulsar/pull/23468))\r\n- [fix][client] The partitionedProducer maxPendingMessages always is 0 ([#23593](https://github.com/apache/pulsar/pull/23593))\r\n- [fix][client] Use dedicated executor for requests in BinaryProtoLookupService ([#23378](https://github.com/apache/pulsar/pull/23378))\r\n- [fix][client] fix incomingMessageSize and client memory usage is negative ([#23624](https://github.com/apache/pulsar/pull/23624))\r\n- [fix][client] fix the beforeConsume() method earlier hit with message listener ([#23578](https://github.com/apache/pulsar/pull/23578))\r\n- [improve][admin] Print error log if handle http response fails ([#23563](https://github.com/apache/pulsar/pull/23563))\r\n- [improve][client] Enhance error handling for non-exist subscription in consumer creation ([#23254](https://github.com/apache/pulsar/pull/23254))\r\n- [improve][client] Increase default Java client connectionMaxIdleSeconds to 60 seconds ([#23430](https://github.com/apache/pulsar/pull/23430))\r\n- [improve][client] Reduce unshaded dependencies and shading warnings in shaded Java client modules ([#23647](https://github.com/apache/pulsar/pull/23647))\r\n- [improve][client] Replace NameUtil#generateRandomName with RandomStringUtils#randomAlphanumeric ([#23645](https://github.com/apache/pulsar/pull/23645))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] ack messages for window function when its result is null ([#23618](https://github.com/apache/pulsar/pull/23618))\r\n- [improve][io] Support update subscription position for sink connector ([#23538](https://github.com/apache/pulsar/pull/23538))\r\n- [improve][io] Upgrade Spring version to 6.1.13 in IO Connectors ([#23459](https://github.com/apache/pulsar/pull/23459))\r\n\r\n### Others\r\n\r\n- [fix][misc] Class conflict during jetcd-core-shaded shading process ([#23641](https://github.com/apache/pulsar/pull/23641))\r\n- [fix][misc] Unable to connect an etcd metastore with recent releases due to jetc-core sharding problem ([#23604](https://github.com/apache/pulsar/pull/23604))\r\n- [fix][ml] Managed ledger should recover after open ledger failed ([#23368](https://github.com/apache/pulsar/pull/23368))\r\n- [fix][proxy] Fix pattern consumer does not work when using Proxy ([#23489](https://github.com/apache/pulsar/pull/23489))\r\n- [fix][ws] Implement missing http header data functions in AuthenticationDataSubscription ([#23638](https://github.com/apache/pulsar/pull/23638))\r\n- [improve] Improve logic for enabling Netty leak detection ([#23613](https://github.com/apache/pulsar/pull/23613))\r\n- [improve] Use single buffer for metrics when noUnsafe use ([#23612](https://github.com/apache/pulsar/pull/23612))\r\n- [improve][misc] Disable OTel by default when running the pulsar-perf tool ([#23585](https://github.com/apache/pulsar/pull/23585))\r\n- [improve][misc] Upgrade Jetty to 9.4.56.v20240826 ([#23405](https://github.com/apache/pulsar/pull/23405))\r\n- [improve][ml] Avoid repetitive nested lock for isMessageDeleted in ManagedCursorImpl ([#23609](https://github.com/apache/pulsar/pull/23609))\r\n- [improve][offload] Use filesystemURI as the storage path ([#23591](https://github.com/apache/pulsar/pull/23591))\r\n- Enabling DNS retryOnTimeout with TCP in DnsNameResolver ([#23590](https://github.com/apache/pulsar/pull/23590))\r\n\r\n### Tests & CI\r\n\r\n- [cleanup][build] skip generating pom.xml.versionsBackup ([#23639](https://github.com/apache/pulsar/pull/23639))\r\n- [fix][build] Add basic support for vscode-java and Eclipse IDE ([#23448](https://github.com/apache/pulsar/pull/23448))\r\n- [fix][build] Fix error \"Element encoding is not allowed here\" in pom.xml ([#23655](https://github.com/apache/pulsar/pull/23655))\r\n- [fix][build] Remove duplicate dependencies in pom.xml ([#23440](https://github.com/apache/pulsar/pull/23440))\r\n- [fix][ci] Pin aquasecurity/trivy-action@0.26.0 since master is broken ([#23431](https://github.com/apache/pulsar/pull/23431))\r\n- [fix][test] Address flaky GetPartitionMetadataMultiBrokerTest ([#23456](https://github.com/apache/pulsar/pull/23456))\r\n- [fix][test] Fix DeadLetterTopicTest.testDeadLetterTopicWithInitialSubscriptionAndMultiConsumers ([#23552](https://github.com/apache/pulsar/pull/23552))\r\n- [fix][test] Fix SimpleProducerConsumerTest.testMultiTopicsConsumerImplPauseForManualSubscription ([#23546](https://github.com/apache/pulsar/pull/23546))\r\n- [fix][test] Fix flaky GetPartitionMetadataMultiBrokerTest.testCompatibilityDifferentBrokersForNonPersistentTopic ([#23259](https://github.com/apache/pulsar/pull/23259))\r\n- [fix][test] Fix flaky test ManagedLedgerTest.testDeleteCurrentLedgerWhenItIsClosed ([#23437](https://github.com/apache/pulsar/pull/23437))\r\n- [fix][test] Fix memory leak via OTel shutdown hooks in tests ([#23483](https://github.com/apache/pulsar/pull/23483))\r\n- [fix][test] Fix running ClusterMetadataSetupTest in IDE ([#23492](https://github.com/apache/pulsar/pull/23492))\r\n- [fix][test][branch-3.3] Fix OneWayReplicatorUsingGlobalZKTest#testRemoveCluster\r\n- [improve][build] Require Java 17 or Java 21 for building Pulsar ([#22875](https://github.com/apache/pulsar/pull/22875))\r\n- [improve][build] Update maven-wrapper (mvnw) to recent stable version 3.3.2 ([#23410](https://github.com/apache/pulsar/pull/23410))\r\n- [improve][ci] Continue Pulsar CI build even when Trivy scanner fails ([#23397](https://github.com/apache/pulsar/pull/23397))\r\n- [improve][test] Added message properties tests for batch and non-batch messages ([#23473](https://github.com/apache/pulsar/pull/23473))\r\n- [improve][test] Disable OTel autoconfigured exporters in tests ([#23540](https://github.com/apache/pulsar/pull/23540))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.3.2...v3.3.3).","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/188726522/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":1,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/188551989","assets_url":"https://api.github.com/repos/apache/pulsar/releases/188551989/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/188551989/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v4.0.1","id":188551989,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4LPRM1","tag_name":"v4.0.1","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-12-02T18:53:13Z","updated_at":"2024-12-02T19:09:17Z","published_at":"2024-12-02T18:53:51Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v4.0.1","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v4.0.1","body":"#### 2024-12-02\r\n\r\n### Library updates\r\n\r\n- [feat][meta] Bump oxia java version from 0.4.5 to 0.4.7 ([#23471](https://github.com/apache/pulsar/pull/23471))\r\n- [feat][misc] Upgrade oxia version to 0.4.9 ([#23607](https://github.com/apache/pulsar/pull/23607))\r\n- [fix][sec] Replace bcprov-jdk15on dependency with bcprov-jdk18-on ([#23532](https://github.com/apache/pulsar/pull/23532))\r\n- [fix][sec] Upgrade Zookeeper to 3.9.3 to address CVE-2024-51504 ([#23581](https://github.com/apache/pulsar/pull/23581))\r\n- [fix][sec] Upgrade to Netty 4.1.115.Final to address CVE-2024-47535 ([#23596](https://github.com/apache/pulsar/pull/23596))\r\n- [improve][monitor] Upgrade OTel to 1.41.0 ([#23484](https://github.com/apache/pulsar/pull/23484))\r\n- [improve] Upgrade OpenTelemetry library to 1.44.1 version ([#23656](https://github.com/apache/pulsar/pull/23656))\r\n- [improve] Upgrade oxia-java to 0.4.10 and fix closing of OxiaMetadataStore ([#23653](https://github.com/apache/pulsar/pull/23653))\r\n\r\n### Broker\r\n\r\n- [feat][broker] Implement allowBrokerOperationAsync in PulsarAuthorizationProvider to avoid exception thrown ([#23663](https://github.com/apache/pulsar/pull/23663))\r\n- [fix][broker] Broker is failing to create non-durable sub if topic is fenced ([#23579](https://github.com/apache/pulsar/pull/23579))\r\n- [fix][broker] Fix Broker migration NPE while broker tls url not configured ([#23534](https://github.com/apache/pulsar/pull/23534))\r\n- [fix][broker] Fix currently client retries until operation timeout if the topic does not exist ([#23530](https://github.com/apache/pulsar/pull/23530))\r\n- [fix][broker] Fix failed TokenAuthenticatedProducerConsumerTest ([#23602](https://github.com/apache/pulsar/pull/23602))\r\n- [fix][broker] Fix ownership loss ([#23515](https://github.com/apache/pulsar/pull/23515))\r\n- [fix][broker] Fix print cluster migration state response ([#23535](https://github.com/apache/pulsar/pull/23535))\r\n- [fix][broker] Fix race-condition causing repeated delete topic ([#23522](https://github.com/apache/pulsar/pull/23522))\r\n- [fix][broker] Increase readBuffer size for bookkeeper.DLOutputStream ([#23548](https://github.com/apache/pulsar/pull/23548))\r\n- [fix][broker] Key_Shared subscription: Reject consumers with incompatible policy ([#23449](https://github.com/apache/pulsar/pull/23449))\r\n- [fix][broker] Revert \"[improve][client] Add log when can't add message to the container ([#23657](https://github.com/apache/pulsar/pull/23657))\r\n- [fix][broker] fix logging with correct error message while loading the topic ([#23544](https://github.com/apache/pulsar/pull/23544))\r\n- [fix][broker] fix null lookup result when brokers are starting ([#23642](https://github.com/apache/pulsar/pull/23642))\r\n- [fix][broker] support missing tenant level fine-granted permissions ([#23660](https://github.com/apache/pulsar/pull/23660))\r\n- [fix][broker]: support missing broker level fine-granted permissions ([#23637](https://github.com/apache/pulsar/pull/23637))\r\n- [improve][broker] Decouple pulsar_storage_backlog_age_seconds metric with backlogQuota check ([#23619](https://github.com/apache/pulsar/pull/23619))\r\n- [improve][broker] Exclude system topics from namespace level publish and dispatch rate limiting ([#23589](https://github.com/apache/pulsar/pull/23589))\r\n- [improve][broker] Make cluster metadata teardown command support metadata config path ([#23520](https://github.com/apache/pulsar/pull/23520))\r\n- [improve][broker] PIP-392: Add configuration to enable consistent hashing to select active consumer for partitioned topic ([#23584](https://github.com/apache/pulsar/pull/23584))\r\n- [improve][broker] Reduce memory occupation of InMemoryRedeliveryTracker. ([#23640](https://github.com/apache/pulsar/pull/23640))\r\n- [improve][broker] Reduce memory occupation of the delayed message queue ([#23611](https://github.com/apache/pulsar/pull/23611))\r\n- [improve][broker] Skip unloading when bundle throughput is zero (ExtensibleLoadManagerImpl only) ([#23626](https://github.com/apache/pulsar/pull/23626))\r\n- [improve][broker] Support cleanup `replication cluster` and `allowed cluster` when cluster metadata teardown ([#23561](https://github.com/apache/pulsar/pull/23561))\r\n- [improve][broker] re-elect the channel owner if no channel owner is found ([#23516](https://github.com/apache/pulsar/pull/23516))\r\n- [improve][broker] replace HashMap with inner implementation ConcurrentLongLongPairHashMap in Negative Ack Tracker. ([#23582](https://github.com/apache/pulsar/pull/23582))\r\n\r\n### Client\r\n\r\n- [fix][admin] Fix lookup get a null result if uses proxy ([#23556](https://github.com/apache/pulsar/pull/23556))\r\n- [fix][client] Fix ConsumerStats.getRateMsgsReceived javadoc ([#21618](https://github.com/apache/pulsar/pull/21618))\r\n- [fix][client] Fix DLQ producer name conflicts when there are same name consumers ([#23577](https://github.com/apache/pulsar/pull/23577))\r\n- [fix][client] Fix Reader.hasMessageAvailable return wrong value after seeking by timestamp with startMessageIdInclusive ([#23502](https://github.com/apache/pulsar/pull/23502))\r\n- [fix][client] Fix deadlock of NegativeAcksTracker ([#23651](https://github.com/apache/pulsar/pull/23651))\r\n- [fix][client] Fix producer/consumer stop to reconnect or Pub/Sub due to IO thread race-condition  ([#23499](https://github.com/apache/pulsar/pull/23499))\r\n- [fix][client] Fix race-condition causing doReconsumeLater to hang when creating retryLetterProducer has failed ([#23560](https://github.com/apache/pulsar/pull/23560))\r\n- [fix][client] Fix the javadoc for startMessageIdInclusive ([#23508](https://github.com/apache/pulsar/pull/23508))\r\n- [fix][client] Fixed an issue where a cert chain could not be used in TLS authentication ([#23644](https://github.com/apache/pulsar/pull/23644))\r\n- [fix][client] Initializing client-authentication using configured auth params ([#23610](https://github.com/apache/pulsar/pull/23610))\r\n- [fix][client] Make protobuf-java dependency optional in java client libraries ([#23632](https://github.com/apache/pulsar/pull/23632))\r\n- [fix][client] Prevent embedding protobuf-java class files in pulsar-client-admin and pulsar-client-all ([#23468](https://github.com/apache/pulsar/pull/23468))\r\n- [fix][client] The partitionedProducer maxPendingMessages always is 0 ([#23593](https://github.com/apache/pulsar/pull/23593))\r\n- [fix][client] Use dedicated executor for requests in BinaryProtoLookupService ([#23378](https://github.com/apache/pulsar/pull/23378))\r\n- [fix][client] fix incomingMessageSize and client memory usage is negative ([#23624](https://github.com/apache/pulsar/pull/23624))\r\n- [fix][client] fix the beforeConsume() method earlier hit with message listener ([#23578](https://github.com/apache/pulsar/pull/23578))\r\n- [improve][admin] Print error log if handle http response fails ([#23563](https://github.com/apache/pulsar/pull/23563))\r\n- [improve][client] Enhance error handling for non-exist subscription in consumer creation ([#23254](https://github.com/apache/pulsar/pull/23254))\r\n- [improve][client] Reduce unshaded dependencies and shading warnings in shaded Java client modules ([#23647](https://github.com/apache/pulsar/pull/23647))\r\n- [improve][client] Replace NameUtil#generateRandomName with RandomStringUtils#randomAlphanumeric ([#23645](https://github.com/apache/pulsar/pull/23645))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] ack messages for window function when its result is null ([#23618](https://github.com/apache/pulsar/pull/23618))\r\n- [improve][io] Support update subscription position for sink connector ([#23538](https://github.com/apache/pulsar/pull/23538))\r\n- [improve][io] Upgrade Spring version to 6.1.13 in IO Connectors ([#23459](https://github.com/apache/pulsar/pull/23459))\r\n- [improve][io] Upgrade Spring version to 6.1.14 in IO Connectors ([#23481](https://github.com/apache/pulsar/pull/23481))\r\n\r\n### Others\r\n\r\n- [feat][monitor] Add offloader stats grafana dashboard ([#23479](https://github.com/apache/pulsar/pull/23479))\r\n- [fix][misc] Class conflict during jetcd-core-shaded shading process ([#23641](https://github.com/apache/pulsar/pull/23641))\r\n- [fix][misc] Unable to connect an etcd metastore with recent releases due to jetc-core sharding problem ([#23604](https://github.com/apache/pulsar/pull/23604))\r\n- [fix][proxy] Fix pattern consumer does not work when using Proxy ([#23489](https://github.com/apache/pulsar/pull/23489))\r\n- [fix][standalone] correctly delete bookie registration znode ([#23497](https://github.com/apache/pulsar/pull/23497))\r\n- [fix][ws] Implement missing http header data functions in AuthenticationDataSubscription ([#23638](https://github.com/apache/pulsar/pull/23638))\r\n- [improve] Improve logic for enabling Netty leak detection ([#23613](https://github.com/apache/pulsar/pull/23613))\r\n- [improve] Use single buffer for metrics when noUnsafe use ([#23612](https://github.com/apache/pulsar/pull/23612))\r\n- [improve][misc] Disable OTel by default when running the pulsar-perf tool ([#23585](https://github.com/apache/pulsar/pull/23585))\r\n- [improve][ml] Avoid repetitive nested lock for isMessageDeleted in ManagedCursorImpl ([#23609](https://github.com/apache/pulsar/pull/23609))\r\n- [improve][offload] Use filesystemURI as the storage path ([#23591](https://github.com/apache/pulsar/pull/23591))\r\n- Enabling DNS retryOnTimeout with TCP in DnsNameResolver ([#23590](https://github.com/apache/pulsar/pull/23590))\r\n\r\n### Tests & CI\r\n\r\n- [cleanup][build] skip generating pom.xml.versionsBackup ([#23639](https://github.com/apache/pulsar/pull/23639))\r\n- [fix][build] Fix error \"Element encoding is not allowed here\" in pom.xml ([#23655](https://github.com/apache/pulsar/pull/23655))\r\n- [fix][test] Fix DeadLetterTopicTest.testDeadLetterTopicWithInitialSubscriptionAndMultiConsumers ([#23552](https://github.com/apache/pulsar/pull/23552))\r\n- [fix][test] Fix ManagedCursorTest.testForceCursorRecovery ([#23518](https://github.com/apache/pulsar/pull/23518))\r\n- [fix][test] Fix SimpleProducerConsumerTest.testMultiTopicsConsumerImplPauseForManualSubscription ([#23546](https://github.com/apache/pulsar/pull/23546))\r\n- [fix][test] Fix memory leak via OTel shutdown hooks in tests ([#23483](https://github.com/apache/pulsar/pull/23483))\r\n- [fix][test] Fix running ClusterMetadataSetupTest in IDE ([#23492](https://github.com/apache/pulsar/pull/23492))\r\n- [fix][test] Prevent OOM in test by not spying invocations in SimpleProducerConsumerTest ([#23486](https://github.com/apache/pulsar/pull/23486))\r\n- [fix][test]Flaky-test: SchemaServiceTest.testSchemaRegistryMetrics ([#23566](https://github.com/apache/pulsar/pull/23566))\r\n- [improve][test] Clarify method signatures in Bookkeeper mock client ([#23598](https://github.com/apache/pulsar/pull/23598))\r\n- [improve][test] Disable OTel autoconfigured exporters in tests ([#23540](https://github.com/apache/pulsar/pull/23540))\r\n- [improve][test] Reduce OneWayReplicatorUsingGlobalZKTest.testRemoveCluster execution time ([#23633](https://github.com/apache/pulsar/pull/23633))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v4.0.0...v4.0.1).","reactions":{"url":"https://api.github.com/repos/apache/pulsar/releases/188551989/reactions","total_count":3,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":3,"eyes":0}},{"url":"https://api.github.com/repos/apache/pulsar/releases/188546303","assets_url":"https://api.github.com/repos/apache/pulsar/releases/188546303/assets","upload_url":"https://uploads.github.com/repos/apache/pulsar/releases/188546303/assets{?name,label}","html_url":"https://github.com/apache/pulsar/releases/tag/v3.0.8","id":188546303,"author":{"login":"lhotari","id":66864,"node_id":"MDQ6VXNlcjY2ODY0","avatar_url":"https://avatars.githubusercontent.com/u/66864?v=4","gravatar_id":"","url":"https://api.github.com/users/lhotari","html_url":"https://github.com/lhotari","followers_url":"https://api.github.com/users/lhotari/followers","following_url":"https://api.github.com/users/lhotari/following{/other_user}","gists_url":"https://api.github.com/users/lhotari/gists{/gist_id}","starred_url":"https://api.github.com/users/lhotari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhotari/subscriptions","organizations_url":"https://api.github.com/users/lhotari/orgs","repos_url":"https://api.github.com/users/lhotari/repos","events_url":"https://api.github.com/users/lhotari/events{/privacy}","received_events_url":"https://api.github.com/users/lhotari/received_events","type":"User","user_view_type":"public","site_admin":false},"node_id":"RE_kwDOA7PXtM4LPPz_","tag_name":"v3.0.8","target_commitish":"master","name":"","draft":false,"immutable":false,"prerelease":false,"created_at":"2024-12-02T18:16:18Z","updated_at":"2024-12-02T18:40:35Z","published_at":"2024-12-02T18:17:25Z","assets":[],"tarball_url":"https://api.github.com/repos/apache/pulsar/tarball/v3.0.8","zipball_url":"https://api.github.com/repos/apache/pulsar/zipball/v3.0.8","body":"#### 2024-12-02\r\n\r\n### Library updates\r\n\r\n- [fix][sec] Upgrade Zookeeper to 3.9.3 to address CVE-2024-51504 ([#23581](https://github.com/apache/pulsar/pull/23581))\r\n- [fix][sec] Upgrade to Netty 4.1.115.Final to address CVE-2024-47535 ([#23596](https://github.com/apache/pulsar/pull/23596))\r\n- [improve][misc] Upgrade Jetty to 9.4.56.v20240826 ([#23405](https://github.com/apache/pulsar/pull/23405))\r\n\r\n### Broker\r\n\r\n- [fix][broker] Avoid orphan ledgers in BucketDelayedDeliveryTracker ([#22802](https://github.com/apache/pulsar/pull/22802))\r\n- [fix][broker] Broker is failing to create non-durable sub if topic is fenced ([#23579](https://github.com/apache/pulsar/pull/23579))\r\n- [fix][broker] Continue closing even when executor is shut down ([#22599](https://github.com/apache/pulsar/pull/22599))\r\n- [fix][broker] Fix AvgShedder strategy check ([#23156](https://github.com/apache/pulsar/pull/23156))\r\n- [fix][broker] Fix currently client retries until operation timeout if the topic does not exist ([#23530](https://github.com/apache/pulsar/pull/23530))\r\n- [fix][broker] Fix failed TokenAuthenticatedProducerConsumerTest ([#23602](https://github.com/apache/pulsar/pull/23602))\r\n- [fix][broker] Fix ownership loss ([#23515](https://github.com/apache/pulsar/pull/23515))\r\n- [fix][broker] Fix race-condition causing repeated delete topic ([#23522](https://github.com/apache/pulsar/pull/23522))\r\n- [fix][broker] Increase readBuffer size for bookkeeper.DLOutputStream ([#23548](https://github.com/apache/pulsar/pull/23548))\r\n- [fix][broker] Topics failed to delete after remove cluster from replicated clusters set and caused OOM ([#23360](https://github.com/apache/pulsar/pull/23360))\r\n- [fix][broker] fix null lookup result when brokers are starting ([#23642](https://github.com/apache/pulsar/pull/23642))\r\n- [fix][broker] normalize path ([#23438](https://github.com/apache/pulsar/pull/23438))\r\n- [improve][broker] Add log to track issue when `handleGetTopicsOfNamespace` ([#23434](https://github.com/apache/pulsar/pull/23434))\r\n- [improve][broker] Close TopicPoliciesService to allow Pulsar broker graceful shutdown ([#22589](https://github.com/apache/pulsar/pull/22589))\r\n- [improve][broker] Decouple pulsar_storage_backlog_age_seconds metric with backlogQuota check ([#23619](https://github.com/apache/pulsar/pull/23619))\r\n- [improve][broker] Don't use forkjoin pool by default for deleting partitioned topics ([#22598](https://github.com/apache/pulsar/pull/22598))\r\n- [improve][broker] Exclude system topics from namespace level publish and dispatch rate limiting ([#23589](https://github.com/apache/pulsar/pull/23589))\r\n- [improve][broker] Make cluster metadata init command support metadata config path ([#23269](https://github.com/apache/pulsar/pull/23269))\r\n- [improve][broker] Make cluster metadata teardown command support metadata config path ([#23520](https://github.com/apache/pulsar/pull/23520))\r\n- [improve][broker] PIP-392: Add configuration to enable consistent hashing to select active consumer for partitioned topic ([#23584](https://github.com/apache/pulsar/pull/23584))\r\n- [improve][broker] Support cleanup `replication cluster` and `allowed cluster` when cluster metadata teardown ([#23561](https://github.com/apache/pulsar/pull/23561))\r\n- [improve][broker] replace HashMap with inner implementation ConcurrentLongLongPairHashMap in Negative Ack Tracker. ([#23582](https://github.com/apache/pulsar/pull/23582))\r\n\r\n### Client\r\n\r\n- [fix][admin] Fix lookup get a null result if uses proxy ([#23556](https://github.com/apache/pulsar/pull/23556))\r\n- [fix][client] Fix Reader.hasMessageAvailable return wrong value after seeking by timestamp with startMessageIdInclusive ([#23502](https://github.com/apache/pulsar/pull/23502))\r\n- [fix][client] Fix deadlock of NegativeAcksTracker ([#23651](https://github.com/apache/pulsar/pull/23651))\r\n- [fix][client] Fix producer/consumer stop to reconnect or Pub/Sub due to IO thread race-condition  ([#23499](https://github.com/apache/pulsar/pull/23499))\r\n- [fix][client] Fix race-condition causing doReconsumeLater to hang when creating retryLetterProducer has failed ([#23560](https://github.com/apache/pulsar/pull/23560))\r\n- [fix][client] Fix the javadoc for ConsumerBuilder.isAckReceiptEnabled ([#23452](https://github.com/apache/pulsar/pull/23452))\r\n- [fix][client] Fixed an issue where a cert chain could not be used in TLS authentication ([#23644](https://github.com/apache/pulsar/pull/23644))\r\n- [fix][client] Initializing client-authentication using configured auth params ([#23610](https://github.com/apache/pulsar/pull/23610))\r\n- [fix][client] Make protobuf-java dependency optional in java client libraries ([#23632](https://github.com/apache/pulsar/pull/23632))\r\n- [fix][client] Prevent embedding protobuf-java class files in pulsar-client-admin and pulsar-client-all ([#23468](https://github.com/apache/pulsar/pull/23468))\r\n- [fix][client] The partitionedProducer maxPendingMessages always is 0 ([#23593](https://github.com/apache/pulsar/pull/23593))\r\n- [fix][client] Use dedicated executor for requests in BinaryProtoLookupService ([#23378](https://github.com/apache/pulsar/pull/23378)) ([#23461](https://github.com/apache/pulsar/pull/23461))\r\n- [fix][client] fix incomingMessageSize and client memory usage is negative ([#23624](https://github.com/apache/pulsar/pull/23624))\r\n- [fix][client] fix the beforeConsume() method earlier hit with message listener ([#23578](https://github.com/apache/pulsar/pull/23578))\r\n- [improve][admin] Print error log if handle http response fails ([#23563](https://github.com/apache/pulsar/pull/23563))\r\n- [improve][client] Enhance error handling for non-exist subscription in consumer creation ([#23254](https://github.com/apache/pulsar/pull/23254))\r\n- [improve][client] Increase default Java client connectionMaxIdleSeconds to 60 seconds ([#23430](https://github.com/apache/pulsar/pull/23430))\r\n- [improve][client] Reduce unshaded dependencies and shading warnings in shaded Java client modules ([#23647](https://github.com/apache/pulsar/pull/23647))\r\n\r\n### Pulsar IO and Pulsar Functions\r\n\r\n- [fix][fn] ack messages for window function when its result is null ([#23618](https://github.com/apache/pulsar/pull/23618))\r\n- [fix][sql][branch-3.0] Fix long decimal compatibility in Trino 368. ([#23419](https://github.com/apache/pulsar/pull/23419))\r\n- [fix][sql][branch-3.0] Fix shading configuration for presto-pulsar\r\n- [improve][io] Support update subscription position for sink connector ([#23538](https://github.com/apache/pulsar/pull/23538))\r\n- [improve][io] Upgrade Spring version to 6.1.13 in IO Connectors ([#23459](https://github.com/apache/pulsar/pull/23459))\r\n\r\n### Others\r\n\r\n- [fix] Restored method as deprecated in AbstractMetadataStore ([#21950](https://github.com/apache/pulsar/pull/21950))\r\n- [fix][misc] Class conflict during jetcd-core-shaded shading process ([#23641](https://github.com/apache/pulsar/pull/23641))\r\n- [fix][misc] Unable to connect an etcd metastore with recent releases due to jetc-core sharding problem ([#23604](https://github.com/apache/pulsar/pull/23604))\r\n- [fix][ml] Managed ledger should recover after open ledger failed ([#23368](https://github.com/apache/pulsar/pull/23368))\r\n- [fix][proxy] Fix pattern consumer does not work when using Proxy ([#23489](https://github.com/apache/pulsar/pull/23489))\r\n- [fix][standalone] correctly delete bookie registration znode ([#23497](https://github.com/apache/pulsar/pull/23497))\r\n- [improve] Improve logic for enabling Netty leak detection ([#23613](https://github.com/apache/pulsar/pull/23613))\r\n- [improve] Use single buffer for metrics when noUnsafe use ([#23612](https://github.com/apache/pulsar/pull/23612))\r\n- [fix][ws] Implement missing http header data functions in AuthenticationDataSubscription ([#23638](https://github.com/apache/pulsar/pull/23638))\r\n- [improve][ml] Avoid repetitive nested lock for isMessageDeleted in ManagedCursorImpl ([#23609](https://github.com/apache/pulsar/pull/23609))\r\n- [improve][offload] Use filesystemURI as the storage path ([#23591](https://github.com/apache/pulsar/pull/23591))\r\n- Enabling DNS retryOnTimeout with TCP in DnsNameResolver ([#23590](https://github.com/apache/pulsar/pull/23590))\r\n\r\n### Tests & CI\r\n\r\n- [cleanup][build] skip generating pom.xml.versionsBackup ([#23639](https://github.com/apache/pulsar/pull/23639))\r\n- [fix][build] Add basic support for vscode-java and Eclipse IDE ([#23448](https://github.com/apache/pulsar/pull/23448))\r\n- [fix][build] Fix error \"Element encoding is not allowed here\" in pom.xml ([#23655](https://github.com/apache/pulsar/pull/23655))\r\n- [fix][test] Address flaky GetPartitionMetadataMultiBrokerTest ([#23456](https://github.com/apache/pulsar/pull/23456))\r\n- [fix][test] Fix DeadLetterTopicTest.testDeadLetterTopicWithInitialSubscriptionAndMultiConsumers ([#23552](https://github.com/apache/pulsar/pull/23552))\r\n- [fix][test] Fix SimpleProducerConsumerTest.testMultiTopicsConsumerImplPauseForManualSubscription ([#23546](https://github.com/apache/pulsar/pull/23546))\r\n- [fix][test] Fix flaky GetPartitionMetadataMultiBrokerTest.testCompatibilityDifferentBrokersForNonPersistentTopic ([#23259](https://github.com/apache/pulsar/pull/23259))\r\n- [fix][test] Fix flaky test ManagedLedgerTest.testDeleteCurrentLedgerWhenItIsClosed ([#23437](https://github.com/apache/pulsar/pull/23437))\r\n- [fix][test][branch-3.0] Fix PrecisTopicPublishRateThrottleTest that broke after [#23589](https://github.com/apache/pulsar/pull/23589) changes\r\n- [fix][test][branch-3.0] Fix cherry-picking issue in 2f6c1a3 where Cleanup import was missing\r\n- [improve][build] Require Java 17 for building Pulsar branch-3.0 ([#22875](https://github.com/apache/pulsar/pull/22875))\r\n- [improve][build] Update maven-wrapper (mvnw) to recent stable version 3.3.2 ([#23410](https://github.com/apache/pulsar/pull/23410))\r\n- [improve][build][branch-3.0] Upgrade docker-maven-plugin to 0.45.1\r\n- [improve][test] Added message properties tests for batch and non-batch messages ([#23473](https://github.com/apache/pulsar/pull/23473))\r\n- [improve][test] Reduce OneWayReplicatorUsingGlobalZKTest.testRemoveCluster execution time ([#23633](https://github.com/apache/pulsar/pull/23633))\r\n\r\nFor the complete list, check the [full changelog](https://github.com/apache/pulsar/compare/v3.0.7...v3.0.8).\r\n"}]