This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit fed478d789ee2df555febb8c45de1315d70d6391
Author: Lari Hotari <[email protected]>
AuthorDate: Wed Apr 1 00:50:33 2026 +0300

    Add release notes
---
 data/release-java.js                         |   7 +
 data/release-pulsar.js                       |   9 +
 release-notes/versioned/client-java-4.2.0.md |  54 ++++
 release-notes/versioned/pulsar-4.2.0.md      | 439 +++++++++++++++++++++++++++
 releases.json                                |   1 +
 5 files changed, 510 insertions(+)

diff --git a/data/release-java.js b/data/release-java.js
index ffe1d4d325e..cf3fb98d6ea 100644
--- a/data/release-java.js
+++ b/data/release-java.js
@@ -1,4 +1,11 @@
 module.exports = [
+  {
+    "tagName": "v4.2.0",
+    "vtag": "4.2.x",
+    "releaseNotes": "/release-notes/versioned/client-java-4.2.0/",
+    "doc": "/docs/4.2.x/client-libraries-java",
+    "version": "v4.2.x"
+  },
   {
     "tagName": "v4.1.3",
     "vtag": "4.1.x",
diff --git a/data/release-pulsar.js b/data/release-pulsar.js
index 0bb4da779c2..6c265c143e5 100644
--- a/data/release-pulsar.js
+++ b/data/release-pulsar.js
@@ -1,4 +1,13 @@
 module.exports = [
+  {
+    "author": "lhotari",
+    "tagName": "v4.2.0",
+    "publishedAt": "2026-03-24T19:03:05+02:00",
+    "vtag": "4.2.x",
+    "releaseNotes": "/release-notes/versioned/pulsar-4.2.0/",
+    "doc": "/docs/4.2.x",
+    "version": "v4.2.x"
+  },
   {
     "author": "lhotari",
     "tagName": "v4.1.3",
diff --git a/release-notes/versioned/client-java-4.2.0.md 
b/release-notes/versioned/client-java-4.2.0.md
new file mode 100644
index 00000000000..117b9a5ff97
--- /dev/null
+++ b/release-notes/versioned/client-java-4.2.0.md
@@ -0,0 +1,54 @@
+---
+id: client-java-4.2.0
+title: Client Java 4.2.0
+sidebar_label: Client Java 4.2.0
+---
+
+- [fix][client] Add description method to ClientBuilder 
([#24728](https://github.com/apache/pulsar/pull/24728))
+- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among 
different threads ([#24725](https://github.com/apache/pulsar/pull/24725))
+- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. 
([#25178](https://github.com/apache/pulsar/pull/25178))
+- [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side 
dependencies ([#24761](https://github.com/apache/pulsar/pull/24761))
+- [fix][client] Fail messages immediately in ProducerImpl when in terminal 
state ([#25317](https://github.com/apache/pulsar/pull/25317))
+- [fix][client] Fix async APIs to return failed futures on validation errors 
([#25287](https://github.com/apache/pulsar/pull/25287))
+- [fix][client] Fix AutoProduceBytesSchema.clone() method 
([#25015](https://github.com/apache/pulsar/pull/25015))
+- [fix][client] Fix deduplication for getPartitionedTopicMetadata to include 
method parameters ([#24965](https://github.com/apache/pulsar/pull/24965))
+- [fix][client] Fix double recycling of the message in isValidConsumerEpoch 
method ([#25008](https://github.com/apache/pulsar/pull/25008))
+- [fix][client] Fix getPendingQueueSize for 
PartitionedTopicProducerStatsRecorderImpl: avoid NPE and implement aggregation 
([#24830](https://github.com/apache/pulsar/pull/24830))
+- [fix][client] Fix invalid parameter type passed to Map.get in 
TopicsImpl.getListAsync method 
([#25069](https://github.com/apache/pulsar/pull/25069))
+- [fix][client] Fix lookup request semaphore not release problem 
([#25038](https://github.com/apache/pulsar/pull/25038))
+- [fix][client] Fix potential NPE in TypedMessageBuilderImpl 
([#24691](https://github.com/apache/pulsar/pull/24691))
+- [fix][client] Fix producer synchronous retry handling in failPendingMessages 
method ([#25207](https://github.com/apache/pulsar/pull/25207))
+- [fix][client] Fix PulsarAdmin description check and add test 
([#24734](https://github.com/apache/pulsar/pull/24734))
+- [fix][client] Fix race condition between isDuplicate() and flushAsync() 
method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty 
Recycler ([#25208](https://github.com/apache/pulsar/pull/25208))
+- [fix][client] Fix receiver queue auto-scale without memory limit 
([#24743](https://github.com/apache/pulsar/pull/24743))
+- [fix][client] Fix stale Healthy state in 
SameAuthParamsLookupAutoClusterFailover causing flaky test 
([#25388](https://github.com/apache/pulsar/pull/25388))
+- [fix][client] Fix thread leak in reloadLookUp method which is used by 
ServiceUrlProvider ([#24794](https://github.com/apache/pulsar/pull/24794))
+- [fix][client] Fix thread-safety of AutoProduceBytesSchema 
([#25014](https://github.com/apache/pulsar/pull/25014))
+- [fix][client] Make auto partitions update work for old brokers without 
PIP-344 ([#24822](https://github.com/apache/pulsar/pull/24822))
+- [fix][client] PIP-84: Skip processing a message in the message listener if 
the consumer epoch is no longer valid 
([#25007](https://github.com/apache/pulsar/pull/25007))
+- [fix][client] Reduce logging in OAuth auth to fix parsing of Pulsar cli 
command output ([#25254](https://github.com/apache/pulsar/pull/25254))
+- [fix][client] rollback TopicListWatcher retry behavior 
([#24752](https://github.com/apache/pulsar/pull/24752))
+- [fix][client] Send all chunkMessageIds to broker for redelivery 
([#25229](https://github.com/apache/pulsar/pull/25229))
+- [fix][client] Skip processing messages in the listener when the consumer has 
been closed ([#25006](https://github.com/apache/pulsar/pull/25006))
+- [fix][client]Producer stuck or geo-replication stuck due to wrong value of 
message.numMessagesInBatch 
([#25106](https://github.com/apache/pulsar/pull/25106))
+- [fix][client]TopicListWatcher not closed when calling 
PatternMultiTopicsConsumerImpl.closeAsync() method 
([#24698](https://github.com/apache/pulsar/pull/24698))
+- [improve][client]  PIP-407 Add newMessage with schema and transactions 
([#23942](https://github.com/apache/pulsar/pull/23942))
+- [improve][client] Add null checks for MessageAcknowledger methods to prevent 
NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))
+- [improve][client] Allow adding custom description to User-Agent header 
([#24729](https://github.com/apache/pulsar/pull/24729))
+- [improve][client] allow override of default global jsr310 conversion 
([#24311](https://github.com/apache/pulsar/pull/24311))
+- [improve][client] Deduplicate getTopicsUnderNamespace in 
BinaryProtoLookupService ([#24962](https://github.com/apache/pulsar/pull/24962))
+- [improve][client] Deduplicate in-progress lookup requests also for 
HttpLookupService ([#25017](https://github.com/apache/pulsar/pull/25017))
+- [improve][client] Enable configurable preemptive OAuth2 token refresh 
([#25363](https://github.com/apache/pulsar/pull/25363))
+- [improve][client] Make authorization server metadata path configurable in 
AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))
+- [improve][client] PIP-420: Update the schema ID format 
([#24798](https://github.com/apache/pulsar/pull/24798))
+- [improve][client] Support protobuf v4 schema compatibility 
([#25261](https://github.com/apache/pulsar/pull/25261))
+- [improve][client] Test no exception could be thrown for invalid epoch in 
message ([#25013](https://github.com/apache/pulsar/pull/25013))
+- [improve][client]Add null check for Pulsar client clock configuration 
([#24848](https://github.com/apache/pulsar/pull/24848))
+- [improve][client]PIP-436:Add decryptFailListener to Consumer 
([#24702](https://github.com/apache/pulsar/pull/24702))
+- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests 
when using retry and DLQ topics. 
([#25172](https://github.com/apache/pulsar/pull/25172))
+- [cleanup][client] Remove unnecessary pause/resume logic from 
MultiTopicsConsumerImpl and cleanup putIfAbsent logic 
([#25009](https://github.com/apache/pulsar/pull/25009))
+- [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))
+- [feat][client] oauth2 trustcerts file and timeouts 
([#24944](https://github.com/apache/pulsar/pull/24944))
+- [feat][client] PIP-234: Support shared resources in PulsarAdmin to reduce 
thread usage ([#24893](https://github.com/apache/pulsar/pull/24893))
+- [feat][client] PIP-446: Support Native OpenTelemetry Tracing in Pulsar Java 
Client ([#24873](https://github.com/apache/pulsar/pull/24873))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
\ No newline at end of file
diff --git a/release-notes/versioned/pulsar-4.2.0.md 
b/release-notes/versioned/pulsar-4.2.0.md
new file mode 100644
index 00000000000..ab53bf36330
--- /dev/null
+++ b/release-notes/versioned/pulsar-4.2.0.md
@@ -0,0 +1,439 @@
+---
+id: pulsar-4.2.0
+title: Apache Pulsar 4.2.0
+sidebar_label: Apache Pulsar 4.2.0
+---
+
+#### 2026-04-01
+
+### Approved PIPs
+
+- [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)
+- [PIP-437: Granular and Fixed-Delay Policies for Message 
Delivery](https://github.com/apache/pulsar/tree/master/pip/pip-437.md)
+- [PIP-439: Adding Transaction Support to Pulsar Functions Through Managed 
Transaction 
Wrapping](https://github.com/apache/pulsar/tree/master/pip/pip-439.md)
+- [PIP-442: Add memory limits for CommandGetTopicsOfNamespace and 
CommandWatchTopicList on Broker and 
Proxy](https://github.com/apache/pulsar/tree/master/pip/pip-442.md)
+- [PIP-443: Stop using Netty Recycler in new 
code](https://github.com/apache/pulsar/tree/master/pip/pip-443.md)
+- [PIP-444: Rate limit for deleting ledger to alleviate the zk 
pressure.](https://github.com/apache/pulsar/tree/master/pip/pip-444.md)
+- [PIP-446: Support Native OpenTelemetry Tracing in Pulsar Java 
Client](https://github.com/apache/pulsar/tree/master/pip/pip-446.md)
+- [PIP-447: Customizable Prometheus Labels for Topic 
Metrics](https://github.com/apache/pulsar/tree/master/pip/pip-447.md)
+- [PIP-452: Customizable topic listing of namespace with 
properties](https://github.com/apache/pulsar/tree/master/pip/pip-452.md)
+- [PIP-453: Improve the metadata store threading 
model](https://github.com/apache/pulsar/tree/master/pip/pip-453.md)
+- [PIP-454: Metadata Store Migration 
Framework](https://github.com/apache/pulsar/tree/master/pip/pip-454.md)
+- [PIP-464: Deprecate legacy Jackson JsonSchema format for 
SchemaType.JSON](https://github.com/apache/pulsar/tree/master/pip/pip-464.md)
+
+### Library updates
+
+- [improve][broker] Upgrade bookkeeper to 4.17.3 
([#25166](https://github.com/apache/pulsar/pull/25166))
+- [improve][ml] Upgrade Oxia client to 0.7.0 
([#24824](https://github.com/apache/pulsar/pull/24824))
+- [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))
+- [fix][sec] Bump at.yawk.lz4:lz4-java from 1.9.0 to 1.10.1 in /pulsar-common 
([#25045](https://github.com/apache/pulsar/pull/25045))
+- [fix][sec] Bump github.com/dvsekhvalnov/jose2go from 1.6.0 to 1.7.0 in 
/pulsar-function-go ([#24987](https://github.com/apache/pulsar/pull/24987))
+- [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))
+- [fix][sec] Bump io.vertx:vertx-web from 4.5.10 to 4.5.22 
([#24889](https://github.com/apache/pulsar/pull/24889))
+- [fix][sec] Bump org.apache.solr:solr-core from 9.8.0 to 9.10.1 in 
/pulsar-io/solr ([#25175](https://github.com/apache/pulsar/pull/25175))
+- [fix][sec] Bump org.apache.zookeeper:zookeeper from 3.9.4 to 3.9.5 
([#25303](https://github.com/apache/pulsar/pull/25303))
+- [fix][sec] Eliminate commons-collections dependency 
([#25024](https://github.com/apache/pulsar/pull/25024))
+- [fix][sec] Exclude org.lz4:lz4-java and standardize on at.yawk.lz4-java to 
remediate CVE-2025-12183 and CVE-2025-66566 
([#25198](https://github.com/apache/pulsar/pull/25198))
+- [fix][sec] Override commons-beanutils and commons-configuration2 to 
remediate CVEs ([#24936](https://github.com/apache/pulsar/pull/24936))
+- [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))
+- [fix][sec] Override msgpack-core to 0.9.11 to address CVE-2026-21452 
([#25233](https://github.com/apache/pulsar/pull/25233))
+- [fix][sec] Override nimbus-jose-jwt to remediate CVE-2023-52428 and 
CVE-2025-53864 ([#24937](https://github.com/apache/pulsar/pull/24937))
+- [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))
+- [fix][sec] Upgrade aircompressor to 2.0.3 to resolve CVE-2025-67721 
([#25256](https://github.com/apache/pulsar/pull/25256))
+- [fix][sec] Upgrade BouncyCastle FIPS to 2.0.10 to remediate CVE-2025-8916 
([#24923](https://github.com/apache/pulsar/pull/24923))
+- [fix][sec] Upgrade hadoop3 version from 3.4.0 to 3.4.1 
([#24950](https://github.com/apache/pulsar/pull/24950))
+- [fix][sec] Upgrade Jackson version to 2.18.6 
([#25264](https://github.com/apache/pulsar/pull/25264))
+- [fix][sec] Upgrade Jetty to 9.4.58.v20250814 to address CVE-2025-5115 
([#24897](https://github.com/apache/pulsar/pull/24897))
+- [fix][sec] Upgrade jose4j to 0.9.6 to address CVE-2024-29371 
([#25095](https://github.com/apache/pulsar/pull/25095))
+- [fix][sec] Upgrade log4j to 2.25.3 to address CVE-2025-68161 
([#25102](https://github.com/apache/pulsar/pull/25102))
+- [fix][sec] Upgrade Netty to 4.1.127.Final to address CVEs 
([#24717](https://github.com/apache/pulsar/pull/24717))
+- [fix][sec] Upgrade Netty to 4.1.130.Final 
([#25078](https://github.com/apache/pulsar/pull/25078))
+- [fix][sec] Upgrade OpenSearch to 2.19.4 to remediate CVE-2025-9624 
([#25206](https://github.com/apache/pulsar/pull/25206))
+- [fix][sec] Upgrade Python protobuf version to 6.33.5 to address 
CVE-2026-0994 ([#25250](https://github.com/apache/pulsar/pull/25250))
+- [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))
+- [fix][sec] Upgrade vertx to address CVE-2026-1002 
([#25152](https://github.com/apache/pulsar/pull/25152))
+- [fix][build] Fix Eclipse/VSCode support after Jetty 12 upgrade 
([#25169](https://github.com/apache/pulsar/pull/25169))
+- [fix][build] Fix IntelliJ build after Jetty 12 upgrade 
([#25155](https://github.com/apache/pulsar/pull/25155))
+- [fix][ci] Fix CI for Java 25 including upgrade of Gradle Develocity Maven 
extension ([#24767](https://github.com/apache/pulsar/pull/24767))
+- [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))
+- [improve][fn] Upgrade Pulsar Python client version to 3.10.0 
([#25251](https://github.com/apache/pulsar/pull/25251))
+- [fix][test] Upgrade docker-java to 3.7.0 
([#25209](https://github.com/apache/pulsar/pull/25209))
+- [improve][io] Replace Qpid in tests with RabbitMQ in Testcontainers and 
upgrade RabbitMQ client version 
([#25085](https://github.com/apache/pulsar/pull/25085))
+- [improve][io] Upgrade Debezium to 3.4.2 and Kafka Client/Connect to 4.1.1 
([#25335](https://github.com/apache/pulsar/pull/25335))
+- [improve][io] Upgrade Debezium version to 3.2.4.Final 
([#24896](https://github.com/apache/pulsar/pull/24896))
+- [improve][io] Upgrade Debezium version to 3.2.5.Final 
([#25029](https://github.com/apache/pulsar/pull/25029))
+- [improve][io] Upgrade to Debezium 3.2.2 
([#24712](https://github.com/apache/pulsar/pull/24712))
+- [improve][monitor] Upgrade OpenTelemetry to 1.56.0, Otel instrumentation to 
2.21.0 and Otel semconv to 1.37.0 
([#24994](https://github.com/apache/pulsar/pull/24994))
+- [improve][build] Upgrade Apache Parent POM to version 35 
([#24742](https://github.com/apache/pulsar/pull/24742))
+- [improve][build] Upgrade errorprone to 2.45.0 version 
([#25054](https://github.com/apache/pulsar/pull/25054))
+- [improve][build] Upgrade LightProto to 0.6.1 
([#25332](https://github.com/apache/pulsar/pull/25332))
+- [improve][build] Upgrade Lombok to 1.18.42 to fully support JDK25 
([#24763](https://github.com/apache/pulsar/pull/24763))
+- [improve][build] Upgrade Mockito, AssertJ and ByteBuddy to fully support 
JDK25 ([#24764](https://github.com/apache/pulsar/pull/24764))
+- [improve][build] Upgrade SpotBugs to a version that supports JDK25 
([#24768](https://github.com/apache/pulsar/pull/24768))
+- [improve][build] Upgrade Testcontainers to 1.21.3 
([#24982](https://github.com/apache/pulsar/pull/24982))
+- [improve][ci] Upgrade GitHub Actions workflows to use ubuntu-24.04 
([#24841](https://github.com/apache/pulsar/pull/24841))
+- [improve][misc] Upgrade jjwt library version to 0.13.0 
([#25043](https://github.com/apache/pulsar/pull/25043))
+- [improve][misc] Upgrade Netty to 4.1.128.Final 
([#24911](https://github.com/apache/pulsar/pull/24911))
+- [improve][misc] Upgrade snappy version to 1.1.10.8 
([#25182](https://github.com/apache/pulsar/pull/25182))
+- [improve][misc] Upgrade to Alpine 3.23 
([#25180](https://github.com/apache/pulsar/pull/25180))
+- [improve][misc] Upgrade to Jetty 12.1.x 
([#25100](https://github.com/apache/pulsar/pull/25100))
+- [feat][meta] upgrade oxia version to 0.7.2 
([#24976](https://github.com/apache/pulsar/pull/24976))
+- [feat][misc] upgrade oxia version to 0.6.2 
([#24689](https://github.com/apache/pulsar/pull/24689))
+- [fix] Upgrade gson to 2.13.2 
([#25022](https://github.com/apache/pulsar/pull/25022))
+- [improve] Upgrade Alpine base image to 3.22 version 
([#24840](https://github.com/apache/pulsar/pull/24840))
+- [improve] Upgrade Apache Commons library versions 
([#24983](https://github.com/apache/pulsar/pull/24983))
+- [improve] Upgrade Caffeine to 3.2.3 
([#24984](https://github.com/apache/pulsar/pull/24984))
+- [improve] Upgrade Log4j2 to 2.25.2 and slf4j to 2.0.17 
([#24985](https://github.com/apache/pulsar/pull/24985))
+- [improve] Upgrade Netty to 4.1.131.Final 
([#25232](https://github.com/apache/pulsar/pull/25232))
+- [improve] Upgrade RoaringBitmap to 1.6.9 version 
([#25253](https://github.com/apache/pulsar/pull/25253))
+- [fix] Update gRPC to 1.75.0 
([#24813](https://github.com/apache/pulsar/pull/24813))
+- [fix] Exclude commons-lang dep from bookkeeper 
([#24749](https://github.com/apache/pulsar/pull/24749))
+- [improve] replace jcip annotations to jsr305 annotations 
([#25252](https://github.com/apache/pulsar/pull/25252))
+
+### Broker
+
+- [fix][broker] Add schema version in rest produce api 
([#25004](https://github.com/apache/pulsar/pull/25004))
+- [fix][broker] Allow intermittent error from topic policies service when 
loading topics ([#24829](https://github.com/apache/pulsar/pull/24829))
+- [fix][broker] AvgShedder comparison error 
([#24954](https://github.com/apache/pulsar/pull/24954))
+- [fix][broker] Avoid recursive update in ConcurrentHashMap during policy 
cache cleanup ([#24939](https://github.com/apache/pulsar/pull/24939))
+- [fix][broker] Avoid split non-existent bundle 
([#25031](https://github.com/apache/pulsar/pull/25031))
+- [fix][broker] BacklogMessageAge is not reset when cursor mdPosition is on an 
open ledger ([#24915](https://github.com/apache/pulsar/pull/24915))
+- [fix][broker] Ensure KeyShared sticky mode consumer respects assigned ranges 
([#24730](https://github.com/apache/pulsar/pull/24730))
+- [fix][broker] Ensure LoadSheddingTask is scheduled after metadata service is 
available again ([#24838](https://github.com/apache/pulsar/pull/24838))
+- [fix][broker] ExtensibleLoadManager: handle SessionReestablished and 
Reconnected events to re-register broker metadata 
([#24932](https://github.com/apache/pulsar/pull/24932))
+- [fix][broker] Fence reset cursor by timestamp to avoid concurrent 
timestamp-based position lookups 
([#25151](https://github.com/apache/pulsar/pull/25151))
+- [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))
+- [fix][broker] Fix bug in PersistentMessageExpiryMonitor which blocked 
further expirations ([#24941](https://github.com/apache/pulsar/pull/24941))
+- [fix][broker] Fix cannot shutdown broker gracefully by admin api 
([#24731](https://github.com/apache/pulsar/pull/24731))
+- [fix][broker] Fix chunked message loss when no consumers are available 
([#25077](https://github.com/apache/pulsar/pull/25077))
+- [fix][broker] Fix compaction horizon might be reset to an old position when 
phase two is interrupted ([#25119](https://github.com/apache/pulsar/pull/25119))
+- [fix][broker] Fix concurrency bug in BucketDelayedDeliveryTracker 
([#25346](https://github.com/apache/pulsar/pull/25346))
+- [fix][broker] Fix creation of replicated subscriptions for partitioned 
topics ([#24997](https://github.com/apache/pulsar/pull/24997))
+- [fix][broker] Fix cursor position persistence in ledger trimming 
([#25087](https://github.com/apache/pulsar/pull/25087))
+- [fix][broker] Fix ExtensibleLoadManagerImpl stuck Assigning bundle state 
after broker restart ([#25379](https://github.com/apache/pulsar/pull/25379))
+- [fix][broker] fix flaky test in SystemTopicBasedTopicPoliciesServiceTest 
([#25098](https://github.com/apache/pulsar/pull/25098))
+- [fix][broker] fix getMaxReadPosition in TransactionBufferDisable should 
return latest ([#24898](https://github.com/apache/pulsar/pull/24898))
+- [fix][broker] Fix httpProxyTimeout config 
([#25223](https://github.com/apache/pulsar/pull/25223))
+- [fix][broker] Fix IllegalArgumentException in 
BucketDelayedDeliveryTracker.addMessage 
([#25371](https://github.com/apache/pulsar/pull/25371))
+- [fix][broker] Fix incomplete futures in topic property update/delete methods 
([#25228](https://github.com/apache/pulsar/pull/25228))
+- [fix][broker] Fix incorrect topic loading latency metric and timeout might 
not be respected ([#24785](https://github.com/apache/pulsar/pull/24785))
+- [fix][broker] Fix issue with schemaValidationEnforced in geo-replication 
([#25012](https://github.com/apache/pulsar/pull/25012))
+- [fix][broker] Fix ManagedCursorImpl.asyncDelete() method may lose previous 
async mark delete properties in race condition 
([#25165](https://github.com/apache/pulsar/pull/25165))
+- [fix][broker] Fix markDeletedPosition race condition in 
ManagedLedgerImpl.maybeUpdateCursorBeforeTrimmingConsumedLedger() method 
([#25110](https://github.com/apache/pulsar/pull/25110))
+- [fix][broker] Fix memory leak when metrics are updated in a thread other 
than FastThreadLocalThread 
([#24719](https://github.com/apache/pulsar/pull/24719))
+- [fix][broker] Fix MultiRolesTokenAuthorizationProvider error when 
subscription prefix doesn't match. 
([#25121](https://github.com/apache/pulsar/pull/25121))
+- [fix][broker] Fix NPE and annotate nullable return values for 
ManagedCursorContainer ([#24706](https://github.com/apache/pulsar/pull/24706))
+- [fix][broker] Fix potential NPE in InMemTransactionBuffer.appendBufferToTxn 
by returning a valid Position 
([#25039](https://github.com/apache/pulsar/pull/25039))
+- [fix][broker] fix prepareInitPoliciesCacheAsync in 
SystemTopicBasedTopicPoliciesService 
([#24980](https://github.com/apache/pulsar/pull/24980))
+- [fix][broker] Fix race condition in ServerCnx producer/consumer async 
callbacks ([#25352](https://github.com/apache/pulsar/pull/25352))
+- [fix][broker] Fix regex matching of namespace name which might contain a 
regex char ([#25136](https://github.com/apache/pulsar/pull/25136))
+- [fix][broker] Fix stack overflow caused by race condition when closing a 
connection ([#24934](https://github.com/apache/pulsar/pull/24934))
+- [fix][broker] Fix testServiceConfigurationRetentionPolicy unit test 
([#24756](https://github.com/apache/pulsar/pull/24756))
+- [fix][broker] Fix totalAvailablePermits not reduced when removing consumer 
from non-persistent dispatcher 
([#24885](https://github.com/apache/pulsar/pull/24885))
+- [fix][broker] Fix transactionMetadataFuture completeExceptionally with null 
value ([#25231](https://github.com/apache/pulsar/pull/25231))
+- [fix][broker] Fix typos in PulsarClusterMetadataSetup 
([#24750](https://github.com/apache/pulsar/pull/24750))
+- [fix][broker] Fix various error-prone detected errors mainly in logging and 
String.format parameters ([#25059](https://github.com/apache/pulsar/pull/25059))
+- [fix][broker] Fix wrong behaviour when using namespace.allowed_clusters, 
such as namespace deletion and namespace policies updating 
([#24860](https://github.com/apache/pulsar/pull/24860))
+- [fix][broker] Flaky-test: ExtensibleLoadManagerImplTest.testDisableBroker 
([#24770](https://github.com/apache/pulsar/pull/24770))
+- [fix][broker] Flaky-test: 
TopicTransactionBufferTest.testMessagePublishInOrder 
([#24826](https://github.com/apache/pulsar/pull/24826))
+- [fix][broker] Force EnsemblePolicies to resolve network location after 
rackInfoMap is updated due to changes in /ledgers/available znode 
([#25067](https://github.com/apache/pulsar/pull/25067))
+- [fix][broker] Guard AsyncTokenBucket against long overflow 
([#25262](https://github.com/apache/pulsar/pull/25262))
+- [fix][broker] Handle missing replicator during snapshot request processing 
([#25266](https://github.com/apache/pulsar/pull/25266))
+- [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))
+- [fix][broker] Pass metadataStoreSessionTimeoutMillis to bookkeeper client 
configuration to properly configure ZK timeout 
([#24624](https://github.com/apache/pulsar/pull/24624))
+- [fix][broker] PIP-442: Fix race condition in async semaphore permit updates 
that causes memory limits to become ineffective 
([#25066](https://github.com/apache/pulsar/pull/25066))
+- [fix][broker] Prevent missed topic changes in topic watchers and schedule 
periodic refresh with patternAutoDiscoveryPeriod interval 
([#25188](https://github.com/apache/pulsar/pull/25188))
+- [fix][broker] Prevent unexpected recycle failure in dispatcher's read 
callback ([#24741](https://github.com/apache/pulsar/pull/24741))
+- [fix][broker] Return failed future instead of throwing exception in async 
methods ([#25289](https://github.com/apache/pulsar/pull/25289))
+- [fix][broker] Run ResourceGroup tasks only when tenants/namespaces 
registered ([#24859](https://github.com/apache/pulsar/pull/24859))
+- [fix][broker] Stop to retry to read entries if the replicator has terminated 
([#24880](https://github.com/apache/pulsar/pull/24880))
+- [fix][broker] Support namespace unsubscribe when bundles are unloaded 
([#25276](https://github.com/apache/pulsar/pull/25276))
+- [fix][broker] Trigger topic creation event only once for non-existent topic 
([#24802](https://github.com/apache/pulsar/pull/24802))
+- [fix][broker] Use `poll` instead `remove` to avoid `NoSuchElementException` 
([#24933](https://github.com/apache/pulsar/pull/24933))
+- [fix][broker] Use compatible Avro name validator in 
JsonSchemaCompatibilityCheck 
([#25255](https://github.com/apache/pulsar/pull/25255))
+- [fix][broker] Use compatible Avro name validator to allow '$' in schema 
record names ([#25193](https://github.com/apache/pulsar/pull/25193))
+- [fix][broker]Dispatcher did unnecessary sort for recentlyJoinedConsumers and 
printed noisy error logs ([#24634](https://github.com/apache/pulsar/pull/24634))
+- [fix][broker]Fix dirty reading of namespace level offload thresholds 
([#24696](https://github.com/apache/pulsar/pull/24696))
+- [fix][broker]Fix incorrect backlog if use multiple acknowledge types on the 
same subscription ([#25047](https://github.com/apache/pulsar/pull/25047))
+- [fix][broker]Fix ledgerHandle failed to read by using new BK API 
([#25199](https://github.com/apache/pulsar/pull/25199))
+- [fix][broker]Fix memory leak when using a customized ManagedLedger 
implementation ([#25016](https://github.com/apache/pulsar/pull/25016))
+- [fix][broker]Fix never recovered metadata store bad version issue if 
received a large response from ZK 
([#24580](https://github.com/apache/pulsar/pull/24580))
+- [fix][broker]Fix the wrong logic of the test 
PartitionCreationTest.testCreateMissedPartitions 
([#24683](https://github.com/apache/pulsar/pull/24683))
+- [fix][broker]Incorrect backlog that is larger than expected 
([#25037](https://github.com/apache/pulsar/pull/25037))
+- [fix][broker]Infinitely failed to delete topic if the first time failed and 
enabled transaction ([#25073](https://github.com/apache/pulsar/pull/25073))
+- [fix][broker]Leaving orphan schemas and topic-level policies after 
partitioned topic is deleted by GC 
([#24971](https://github.com/apache/pulsar/pull/24971))
+- [fix][broker]pulsar_ml_reads_inflight_bytes and 
pulsar_ml_reads_available_inflight_bytes are 0 at the same time 
([#25105](https://github.com/apache/pulsar/pull/25105))
+- [fix][broker]system topic was created with different partitions acrossing 
clusters after enabled namespace-level replication 
([#25312](https://github.com/apache/pulsar/pull/25312))
+- [fix][broker]Topic deleting failed after removed local cluster from 
namespace policies ([#25114](https://github.com/apache/pulsar/pull/25114))
+- [fix][broker]Transactional messages can never be sent successfully if 
concurrently taking transaction buffer snapshot 
([#24945](https://github.com/apache/pulsar/pull/24945))
+- [fix][broker]Wrong backlog: expected 0 but got 1 
([#24938](https://github.com/apache/pulsar/pull/24938))
+- [fix][admin] Fix asyncGetRequest to handle 204 
([#25124](https://github.com/apache/pulsar/pull/25124))
+- [fix][admin] Fix offload policy incompatible issue. 
([#25149](https://github.com/apache/pulsar/pull/25149))
+- [fix][admin] Refactor bookie affinity group sync operations to async in rest 
api ([#25050](https://github.com/apache/pulsar/pull/25050))
+- [fix][admin] Refactor namespace anti affinity group sync operations to async 
in rest api ([#25086](https://github.com/apache/pulsar/pull/25086))
+- [fix][admin] Set local policies overwrites "number of bundles" passed during 
namespace creation ([#24762](https://github.com/apache/pulsar/pull/24762))
+- [fix][ml] Fix `getNumberOfEntries` may point to deleted ledger 
([#24852](https://github.com/apache/pulsar/pull/24852))
+- [fix][ml] Fix cursor backlog size to account for individual acks 
([#25089](https://github.com/apache/pulsar/pull/25089))
+- [fix][ml] Fix ledger trimming race causing cursor to point to deleted 
ledgers ([#24855](https://github.com/apache/pulsar/pull/24855))
+- [fix][ml] Fix NoSuchElementException in EntryCountEstimator caused by a race 
condition ([#25177](https://github.com/apache/pulsar/pull/25177))
+- [fix][ml] Negative backlog & acked positions does not exist & message lost 
when concurrently occupying topic owner 
([#24722](https://github.com/apache/pulsar/pull/24722))
+- [fix][ml] PIP-430: Fix concurrency issue in MessageMetadata caching and 
improve caching ([#24836](https://github.com/apache/pulsar/pull/24836))
+- [fix][ml] Retry offload reads when OffloadReadHandleClosedException is 
encountered ([#25148](https://github.com/apache/pulsar/pull/25148))
+- [fix][ml]Fix EOFException after enabled topics offloading 
([#24753](https://github.com/apache/pulsar/pull/24753))
+- [fix][offload] Close all resources in 
BlobStoreBackedReadHandleImplV2.closeAsync 
([#25296](https://github.com/apache/pulsar/pull/25296))
+- [fix][meta] Metadata cache refresh might not take effect 
([#25246](https://github.com/apache/pulsar/pull/25246))
+- [improve][broker] Add idle timeout support for http 
([#25224](https://github.com/apache/pulsar/pull/25224))
+- [improve][broker] Add overrideBrokerNics for adaptation of heterogeneous 
network environments ([#24883](https://github.com/apache/pulsar/pull/24883))
+- [improve][broker] Add strictAuthMethod to require explicit authentication 
method ([#25185](https://github.com/apache/pulsar/pull/25185))
+- [improve][broker] Add tests for using absolute FQDN for advertisedAddress 
and remove extra dot from brokerId 
([#24787](https://github.com/apache/pulsar/pull/24787))
+- [improve][broker] Allow deletion of empty persistent topics regardless of 
retention policy ([#24733](https://github.com/apache/pulsar/pull/24733))
+- [improve][broker] Cache last publish timestamp for idle topics to reduce 
storage reads ([#24825](https://github.com/apache/pulsar/pull/24825))
+- [improve][broker] Change log level from warn to debug when cursor 
mark-deleted position ledger doesn't exist 
([#25200](https://github.com/apache/pulsar/pull/25200))
+- [improve][broker] Change the log level from error to info when throwing 
NotAllowedException ([#25130](https://github.com/apache/pulsar/pull/25130))
+- [improve][broker] Don't log an error when updatePartitionedTopic is called 
on a non-partitioned topic 
([#24943](https://github.com/apache/pulsar/pull/24943))
+- [improve][broker] Enhance advertised address resolution with fallback to 
localhost ([#25238](https://github.com/apache/pulsar/pull/25238))
+- [improve][broker] Enhance logging for adding schema failures in ServerCnx 
([#25048](https://github.com/apache/pulsar/pull/25048))
+- [improve][broker] Ensure metadata session state visibility and improve 
Unstable observability for ServiceUnitStateChannelImpl 
([#25132](https://github.com/apache/pulsar/pull/25132))
+- [improve][broker] Fix replicated subscriptions race condition with mark 
delete update and snapshot completion 
([#16651](https://github.com/apache/pulsar/pull/16651))
+- [improve][broker] Fix thread safety issue in 
ManagedCursorImpl.removeProperty  
([#25104](https://github.com/apache/pulsar/pull/25104))
+- [improve][broker] Give the detail error msg when authenticate failed with 
AuthenticationException ([#25221](https://github.com/apache/pulsar/pull/25221))
+- [improve][broker] 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))
+- [improve][broker] Improve replicated subscription snapshot cache so that 
subscriptions can be replicated when mark delete position update is not 
frequent ([#25044](https://github.com/apache/pulsar/pull/25044))
+- [improve][broker] Migrate remaining broker proto files from protobuf to 
LightProto ([#25337](https://github.com/apache/pulsar/pull/25337))
+- [improve][broker] Optimize AsyncTokenBucket overflow solution further to 
reduce fallback to BigInteger 
([#25269](https://github.com/apache/pulsar/pull/25269))
+- [improve][broker] Optimize lookup result warn log 
([#24942](https://github.com/apache/pulsar/pull/24942))
+- [improve][broker] Optimize Reader creation in TopicPoliciesService 
([#24658](https://github.com/apache/pulsar/pull/24658))
+- [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))
+- [improve][broker] Part-2 of PIP-434: Use ServerCnxThrottleTracker, instead 
of modifying channel.readable directly 
([#24799](https://github.com/apache/pulsar/pull/24799))
+- [improve][broker] PIP-402: Optionally prevent role/originalPrincipal logging 
([#23386](https://github.com/apache/pulsar/pull/23386))
+- [improve][broker] PIP-433: Ensure topic creation before starting GEO 
([#24652](https://github.com/apache/pulsar/pull/24652))
+- [improve][broker] PIP-434: add configurations to broker.conf 
([#24800](https://github.com/apache/pulsar/pull/24800))
+- [improve][broker] PIP-442: Add memory limits for topic list watcher (part 2) 
([#25070](https://github.com/apache/pulsar/pull/25070))
+- [improve][broker] PIP-444: Rate limit for deleting ledger to alleviate the 
zk pressure. ([#24760](https://github.com/apache/pulsar/pull/24760))
+- [improve][broker] PIP-464: Strict Avro schema validation for SchemaType.JSON 
([#25362](https://github.com/apache/pulsar/pull/25362))
+- [improve][broker] Reduce the broker close time to avoid useless wait for 
event loop shutdown ([#24895](https://github.com/apache/pulsar/pull/24895))
+- [improve][broker] Reduce unnecessary MessageMetadata parsing by caching the 
parsed instance in the broker cache 
([#24682](https://github.com/apache/pulsar/pull/24682))
+- [improve][broker] Replace isServiceUnitActiveAsync with 
checkTopicNsOwnership ([#24780](https://github.com/apache/pulsar/pull/24780))
+- [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))
+- [improve][broker] Use atomic counter for ongoing transaction count 
([#25053](https://github.com/apache/pulsar/pull/25053))
+- [improve][broker]Add test for getting partitioned topic metadata with 
PulsarAdmin client ([#25026](https://github.com/apache/pulsar/pull/25026))
+- [improve][broker]Call scheduleAtFixedRateNonConcurrently for scheduled 
tasks, instead of scheduleAtFixedRate 
([#24596](https://github.com/apache/pulsar/pull/24596))
+- [improve][broker]Improve error response of failed to delete topic if it has 
replicators connected ([#24975](https://github.com/apache/pulsar/pull/24975))
+- [improve][broker]Improve NamespaceService log that is printed when cluster 
was removed ([#24801](https://github.com/apache/pulsar/pull/24801))
+- [improve][broker]Part-2 of PIP-433 add validation when enabling 
namespace-level Geo-Replication 
([#25170](https://github.com/apache/pulsar/pull/25170))
+- [improve][broker]Remove the warn log that frequently prints 
([#25018](https://github.com/apache/pulsar/pull/25018))
+- [improve][broker]Skip to mark delete if the target position of expira… 
([#24881](https://github.com/apache/pulsar/pull/24881))
+- [fix][monitor] Fix the incorrect metrics name 
([#21981](https://github.com/apache/pulsar/pull/21981))
+- [improve][admin] Add client side looping to analyze-backlog in Topics to 
avoid potential HTTP call timeout 
([#25127](https://github.com/apache/pulsar/pull/25127))
+- [improve][admin] Add counter for marker messages in 
PersistentTopics.analyzeSubscriptionBacklog() rest api 
([#25091](https://github.com/apache/pulsar/pull/25091))
+- [fix][txn] fix concurrent error cause txn stuck in 
TransactionBufferHandlerImpl#endTxn 
([#23551](https://github.com/apache/pulsar/pull/23551))
+- [improve][ml] Clean up managed-ledger code: deduplicate logic and use shared 
utilities ([#25298](https://github.com/apache/pulsar/pull/25298))
+- [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))
+- [improve][ml] Migrate managed-ledger from protobuf to LightProto 
([#25336](https://github.com/apache/pulsar/pull/25336))
+- [improve][offload] Bump hadoop to 3.4.3 and hbase to 2.6.4 
([#25396](https://github.com/apache/pulsar/pull/25396))
+- [improve][meta] Add byte size limit to AbstractMetadataStore's childrenCache 
([#24868](https://github.com/apache/pulsar/pull/24868))
+- [improve][meta] PIP-453: Improve the metadata store threading model 
([#25187](https://github.com/apache/pulsar/pull/25187))
+- [cleanup][broker] Remove unused configuration 
maxMessageSizeCheckIntervalInSeconds 
([#24958](https://github.com/apache/pulsar/pull/24958))
+- [feat][broker] add topic-level subscription expiration time policy 
([#25258](https://github.com/apache/pulsar/pull/25258))
+- [feat][broker] PIP-452: Customizable topic listing of namespace with 
properties  ([#25160](https://github.com/apache/pulsar/pull/25160))
+- [feat][monitor]  PIP-447 for Customizable Prometheus Labels for Topic 
Metrics ([#24991](https://github.com/apache/pulsar/pull/24991))
+- [feat][monitor] Add ML write latency histogram and entry size histogram as 
OTel metrics ([#24815](https://github.com/apache/pulsar/pull/24815))
+- [feat][monitor] Add publish latency histogram as OTel metrics 
([#24810](https://github.com/apache/pulsar/pull/24810))
+- [fix][misc] Allow JWT tokens in OpenID auth without nbf claim 
([#25197](https://github.com/apache/pulsar/pull/25197))
+- [feat] PIP-442: Add memory limits for CommandGetTopicsOfNamespace 
([#24833](https://github.com/apache/pulsar/pull/24833))
+- [fix] Fix mixed lookup/partition metadata requests causing reliability 
issues and incorrect responses 
([#24832](https://github.com/apache/pulsar/pull/24832))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
+- [improve][client/broker] Add DnsResolverGroup to share DNS cache across 
multiple PulsarClient instances 
([#24784](https://github.com/apache/pulsar/pull/24784))
+- [improve] Eliminate unnecessary duplicate schema lookups for partitioned 
topics in client and geo-replication 
([#25011](https://github.com/apache/pulsar/pull/25011))
+
+### Client
+
+- [fix][client] Add description method to ClientBuilder 
([#24728](https://github.com/apache/pulsar/pull/24728))
+- [fix][client] Avoid recycling the same ConcurrentBitSetRecyclable among 
different threads ([#24725](https://github.com/apache/pulsar/pull/24725))
+- [fix][client] ControlledClusterFailover avoid unnecessary reconnection. 
([#25178](https://github.com/apache/pulsar/pull/25178))
+- [fix][client] Exclude io.prometheus:simpleclient_caffeine from client-side 
dependencies ([#24761](https://github.com/apache/pulsar/pull/24761))
+- [fix][client] Fail messages immediately in ProducerImpl when in terminal 
state ([#25317](https://github.com/apache/pulsar/pull/25317))
+- [fix][client] Fix async APIs to return failed futures on validation errors 
([#25287](https://github.com/apache/pulsar/pull/25287))
+- [fix][client] Fix AutoProduceBytesSchema.clone() method 
([#25015](https://github.com/apache/pulsar/pull/25015))
+- [fix][client] Fix deduplication for getPartitionedTopicMetadata to include 
method parameters ([#24965](https://github.com/apache/pulsar/pull/24965))
+- [fix][client] Fix double recycling of the message in isValidConsumerEpoch 
method ([#25008](https://github.com/apache/pulsar/pull/25008))
+- [fix][client] Fix getPendingQueueSize for 
PartitionedTopicProducerStatsRecorderImpl: avoid NPE and implement aggregation 
([#24830](https://github.com/apache/pulsar/pull/24830))
+- [fix][client] Fix invalid parameter type passed to Map.get in 
TopicsImpl.getListAsync method 
([#25069](https://github.com/apache/pulsar/pull/25069))
+- [fix][client] Fix lookup request semaphore not release problem 
([#25038](https://github.com/apache/pulsar/pull/25038))
+- [fix][client] Fix potential NPE in TypedMessageBuilderImpl 
([#24691](https://github.com/apache/pulsar/pull/24691))
+- [fix][client] Fix producer synchronous retry handling in failPendingMessages 
method ([#25207](https://github.com/apache/pulsar/pull/25207))
+- [fix][client] Fix PulsarAdmin description check and add test 
([#24734](https://github.com/apache/pulsar/pull/24734))
+- [fix][client] Fix race condition between isDuplicate() and flushAsync() 
method in PersistentAcknowledgmentsGroupingTracker due to incorrect use Netty 
Recycler ([#25208](https://github.com/apache/pulsar/pull/25208))
+- [fix][client] Fix receiver queue auto-scale without memory limit 
([#24743](https://github.com/apache/pulsar/pull/24743))
+- [fix][client] Fix stale Healthy state in 
SameAuthParamsLookupAutoClusterFailover causing flaky test 
([#25388](https://github.com/apache/pulsar/pull/25388))
+- [fix][client] Fix thread leak in reloadLookUp method which is used by 
ServiceUrlProvider ([#24794](https://github.com/apache/pulsar/pull/24794))
+- [fix][client] Fix thread-safety of AutoProduceBytesSchema 
([#25014](https://github.com/apache/pulsar/pull/25014))
+- [fix][client] Make auto partitions update work for old brokers without 
PIP-344 ([#24822](https://github.com/apache/pulsar/pull/24822))
+- [fix][client] PIP-84: Skip processing a message in the message listener if 
the consumer epoch is no longer valid 
([#25007](https://github.com/apache/pulsar/pull/25007))
+- [fix][client] Reduce logging in OAuth auth to fix parsing of Pulsar cli 
command output ([#25254](https://github.com/apache/pulsar/pull/25254))
+- [fix][client] rollback TopicListWatcher retry behavior 
([#24752](https://github.com/apache/pulsar/pull/24752))
+- [fix][client] Send all chunkMessageIds to broker for redelivery 
([#25229](https://github.com/apache/pulsar/pull/25229))
+- [fix][client] Skip processing messages in the listener when the consumer has 
been closed ([#25006](https://github.com/apache/pulsar/pull/25006))
+- [fix][client]Producer stuck or geo-replication stuck due to wrong value of 
message.numMessagesInBatch 
([#25106](https://github.com/apache/pulsar/pull/25106))
+- [fix][client]TopicListWatcher not closed when calling 
PatternMultiTopicsConsumerImpl.closeAsync() method 
([#24698](https://github.com/apache/pulsar/pull/24698))
+- [improve][client]  PIP-407 Add newMessage with schema and transactions 
([#23942](https://github.com/apache/pulsar/pull/23942))
+- [improve][client] Add null checks for MessageAcknowledger methods to prevent 
NullPointerException ([#25036](https://github.com/apache/pulsar/pull/25036))
+- [improve][client] Allow adding custom description to User-Agent header 
([#24729](https://github.com/apache/pulsar/pull/24729))
+- [improve][client] allow override of default global jsr310 conversion 
([#24311](https://github.com/apache/pulsar/pull/24311))
+- [improve][client] Deduplicate getTopicsUnderNamespace in 
BinaryProtoLookupService ([#24962](https://github.com/apache/pulsar/pull/24962))
+- [improve][client] Deduplicate in-progress lookup requests also for 
HttpLookupService ([#25017](https://github.com/apache/pulsar/pull/25017))
+- [improve][client] Enable configurable preemptive OAuth2 token refresh 
([#25363](https://github.com/apache/pulsar/pull/25363))
+- [improve][client] Make authorization server metadata path configurable in 
AuthenticationOAuth2 ([#25052](https://github.com/apache/pulsar/pull/25052))
+- [improve][client] PIP-420: Update the schema ID format 
([#24798](https://github.com/apache/pulsar/pull/24798))
+- [improve][client] Support protobuf v4 schema compatibility 
([#25261](https://github.com/apache/pulsar/pull/25261))
+- [improve][client] Test no exception could be thrown for invalid epoch in 
message ([#25013](https://github.com/apache/pulsar/pull/25013))
+- [improve][client]Add null check for Pulsar client clock configuration 
([#24848](https://github.com/apache/pulsar/pull/24848))
+- [improve][client]PIP-436:Add decryptFailListener to Consumer 
([#24702](https://github.com/apache/pulsar/pull/24702))
+- [improve][client]Reduce unnecessary getPartitionedTopicMetadata requests 
when using retry and DLQ topics. 
([#25172](https://github.com/apache/pulsar/pull/25172))
+- [cleanup][client] Remove unnecessary pause/resume logic from 
MultiTopicsConsumerImpl and cleanup putIfAbsent logic 
([#25009](https://github.com/apache/pulsar/pull/25009))
+- [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))
+- [feat][client] oauth2 trustcerts file and timeouts 
([#24944](https://github.com/apache/pulsar/pull/24944))
+- [feat][client] PIP-234: Support shared resources in PulsarAdmin to reduce 
thread usage ([#24893](https://github.com/apache/pulsar/pull/24893))
+- [feat][client] PIP-446: Support Native OpenTelemetry Tracing in Pulsar Java 
Client ([#24873](https://github.com/apache/pulsar/pull/24873))
+- [fix] Handle TLS close_notify to avoid SslClosedEngineException: SSLEngine 
closed already ([#24986](https://github.com/apache/pulsar/pull/24986))
+
+### Pulsar IO and Pulsar Functions
+
+- [fix][fn] complete flushAsync before closeAsync in ProducerCache and wait 
for completion in closing the cache 
([#25140](https://github.com/apache/pulsar/pull/25140))
+- [fix][fn] Fix graceful Pulsar Function shutdown so that consumers and 
producers are closed ([#25157](https://github.com/apache/pulsar/pull/25157))
+- [fix][io] Improve Kafka Connect source offset flushing logic 
([#24654](https://github.com/apache/pulsar/pull/24654))
+- [fix][io][kca] kafka headers silently dropped 
([#25325](https://github.com/apache/pulsar/pull/25325))
+- [improve][fn] Use PulsarByteBufAllocator.DEFAULT instead of 
ByteBufAllocator.DEFAULT ([#24952](https://github.com/apache/pulsar/pull/24952))
+- [improve][io] Add PUT method support to HttpSink 
([#25133](https://github.com/apache/pulsar/pull/25133))
+- [improve][io] Set default connector class for debezium connectors 
([#25215](https://github.com/apache/pulsar/pull/25215))
+- [improve][io] Use try-with-resources for some locations 
([#24900](https://github.com/apache/pulsar/pull/24900))
+- [cleanup][io] Remove Pulsar IO Flume connector 
([#25079](https://github.com/apache/pulsar/pull/25079))
+- [cleanup][io] Remove Pulsar IO Twitter connector 
([#25080](https://github.com/apache/pulsar/pull/25080))
+- [feat][fn] Fallback to using `STATE_STORAGE_SERVICE_URL` in 
`PulsarMetadataStateStoreProviderImpl.init` 
([#24721](https://github.com/apache/pulsar/pull/24721))
+- [feat][io] Add ScyllaDB tests 
([#24931](https://github.com/apache/pulsar/pull/24931))
+- [feat][io] implement pip-297 for jdbc sinks 
([#25195](https://github.com/apache/pulsar/pull/25195))
+
+### Others
+
+- [improve][misc] Add log4j-layout-template-json to server distribution to 
enable e.g. ECS template support in log4j configurations for Pulsar server 
components. ([#25027](https://github.com/apache/pulsar/pull/25027))
+- [improve][misc]introduce log4j Console appender ConsoleJson 
([#25034](https://github.com/apache/pulsar/pull/25034))
+- [fix][proxy] Close client connection immediately when credentials expire and 
forwardAuthorizationCredentials is disabled 
([#25179](https://github.com/apache/pulsar/pull/25179))
+- [fix][proxy] Fix memory leaks in ParserProxyHandler 
([#25142](https://github.com/apache/pulsar/pull/25142))
+- [improve][proxy] Add regression tests for package upload with 'Expect: 
100-continue' ([#25211](https://github.com/apache/pulsar/pull/25211))
+- [fix][ws] Fix issue where metadataStoreAllowReadOnlyOperations setting is 
ignored by WebSocket server 
([#25281](https://github.com/apache/pulsar/pull/25281))
+- [fix][cli] Fix output of --print-metadata in cli consume 
([#25056](https://github.com/apache/pulsar/pull/25056))
+- [fix][cli] Fix some pulsar-admin topicPolicies commands exiting before async 
operations complete ([#25051](https://github.com/apache/pulsar/pull/25051))
+- [fix][misc] Fix compareTo contract violation for NamespaceBundleStats, 
TimeAverageMessageData and ResourceUnitRanking 
([#24772](https://github.com/apache/pulsar/pull/24772))
+- [improve][doc] Clarify geo-replication cluster removal behavior for shared 
vs separate configuration stores 
([#24687](https://github.com/apache/pulsar/pull/24687))
+- [improve][doc] Suggest to raise documentation issues to the site repo 
([#25162](https://github.com/apache/pulsar/pull/25162))
+- [improve][doc] Update Java version recommendations in README 
([#24913](https://github.com/apache/pulsar/pull/24913))
+- [cleanup][doc]Remove TRACING.md as it has been moved to pulsar-site 
([#25213](https://github.com/apache/pulsar/pull/25213))
+- [cleanup] PIP-457: Remove NamespaceName.isGlobal() and TopicName.isGlobal() 
([#25319](https://github.com/apache/pulsar/pull/25319))
+- [cleanup] PIP-457: Remove support for V1 topic names and V1 Admin API 
([#25275](https://github.com/apache/pulsar/pull/25275))
+- [cleanup] PIP-462: Remove Etcd metadata store backend 
([#25329](https://github.com/apache/pulsar/pull/25329))
+- [cleanup] Refactored Backoff to be more consistent and intuitive to use 
([#25278](https://github.com/apache/pulsar/pull/25278))
+- [feat] PIP-454: Metadata Store Migration Framework (implementation) 
([#25219](https://github.com/apache/pulsar/pull/25219))
+- [feat][bookkeeper] add certs refresh 
([#25370](https://github.com/apache/pulsar/pull/25370))
+- [fix] Fix typos in class Message and Producer    
([#25265](https://github.com/apache/pulsar/pull/25265))
+- [fix] PIP-457: Remove support for V1 topic names and V1 Admin API 
(implementation) ([#25304](https://github.com/apache/pulsar/pull/25304))
+- [fix]Fixed getChildren('/') on Oxia based provider 
([#24863](https://github.com/apache/pulsar/pull/24863))
+- [improve] Add secondary index support to MetadataStore 
([#25328](https://github.com/apache/pulsar/pull/25328))
+
+### Tests & CI
+
+- [improve][misc] Protect branch-4.1 
([#24715](https://github.com/apache/pulsar/pull/24715))
+- [fix][build] Activate jdk21 and jdk24 profiles on Java 25 
([#25084](https://github.com/apache/pulsar/pull/25084))
+- [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))
+- [fix][build] Fix maven deploy with maven-source-plugin 3.3.1 
([#24811](https://github.com/apache/pulsar/pull/24811))
+- [fix][build] Remove Confluent and Restlet maven repositories from top level 
pom.xml ([#24981](https://github.com/apache/pulsar/pull/24981))
+- [fix][build] Remove invalid profile in settings.xml that caused gpg signing 
to fail ([#24812](https://github.com/apache/pulsar/pull/24812))
+- [fix][build] Set project version to 4.2.0-SNAPSHOT 
([#24690](https://github.com/apache/pulsar/pull/24690))
+- [fix][ci] Disable trivy-action 
([#25373](https://github.com/apache/pulsar/pull/25373))
+- [fix][ci] Fix .github/actions/ssh-access which is used for debugging Pulsar 
CI in forks ([#25075](https://github.com/apache/pulsar/pull/25075))
+- [fix][ci] Move flaky asyncMarkDeleteBlocking tests to flaky group 
([#25096](https://github.com/apache/pulsar/pull/25096))
+- [fix][test] Add Delta Tolerance in Double-Precision Assertions to Fix 
Rounding Flakiness ([#24972](https://github.com/apache/pulsar/pull/24972))
+- [fix][test] 
BacklogQuotaManagerTest.backlogsAgeMetricsNoPreciseWithoutBacklogQuota handle 
empty /metrics scrape ([#24887](https://github.com/apache/pulsar/pull/24887))
+- [fix][test] Bump org.assertj:assertj-core from 3.27.5 to 3.27.7 
([#25186](https://github.com/apache/pulsar/pull/25186))
+- [fix][test] Fix flaky ConnectionTimeoutTest by correcting latch count 
([#25320](https://github.com/apache/pulsar/pull/25320))
+- [fix][test] Fix flaky ConsumedLedgersTrimTest.testAdminTrimLedgers 
([#25342](https://github.com/apache/pulsar/pull/25342))
+- [fix][test] Fix flaky ConsumedLedgersTrimTest.testAdminTrimLedgers 
([#25360](https://github.com/apache/pulsar/pull/25360))
+- [fix][test] Fix flaky 
ExtensibleLoadManagerImplTest.testLoadBalancerServiceUnitTableViewSyncer 
([#25378](https://github.com/apache/pulsar/pull/25378))
+- [fix][test] Fix flaky 
KeySharedSubscriptionBrokerCacheTest.testReplayQueueReadsGettingCached 
([#24955](https://github.com/apache/pulsar/pull/24955))
+- [fix][test] Fix flaky LookupPropertiesTest.testConcurrentLookupProperties 
([#24854](https://github.com/apache/pulsar/pull/24854))
+- [fix][test] Fix flaky ManagedCursorTest.testSkipEntries 
([#25339](https://github.com/apache/pulsar/pull/25339))
+- [fix][test] Fix flaky 
MessagePublishBufferThrottleTest.testBlockByPublishRateLimiting 
([#25365](https://github.com/apache/pulsar/pull/25365))
+- [fix][test] Fix flaky MetadataStoreTest.testThreadSwitchOfZkMetadataStore 
([#25347](https://github.com/apache/pulsar/pull/25347))
+- [fix][test] Fix flaky 
ModularLoadManagerImplTest.testRemoveNonExistBundleData 
([#25143](https://github.com/apache/pulsar/pull/25143))
+- [fix][test] Fix flaky NonPersistentTopicTest.testProducerRateLimit 
([#24951](https://github.com/apache/pulsar/pull/24951))
+- [fix][test] Fix flaky OneWayReplicatorUsingGlobalZKTest cleanup 
([#25313](https://github.com/apache/pulsar/pull/25313))
+- [fix][test] Fix flaky OneWayReplicatorUsingGlobalZKTest.cleanup 
([#25389](https://github.com/apache/pulsar/pull/25389))
+- [fix][test] Fix flaky 
PersistentStickyKeyDispatcherMultipleConsumersClassicTest.testSkipRedeliverTemporally
 ([#25385](https://github.com/apache/pulsar/pull/25385))
+- [fix][test] Fix flaky PersistentTopicTerminateTest.testRecoverAfterTerminate 
([#25345](https://github.com/apache/pulsar/pull/25345))
+- [fix][test] Fix flaky PersistentTopicTest.testBacklogCursor 
([#25348](https://github.com/apache/pulsar/pull/25348))
+- [fix][test] Fix flaky PulsarDebeziumOracleSourceTest 
([#25314](https://github.com/apache/pulsar/pull/25314))
+- [fix][test] Fix flaky PulsarFunctionsK8STest 
([#25108](https://github.com/apache/pulsar/pull/25108))
+- [fix][test] Fix flaky PulsarFunctionTlsTest.testFunctionsCreation 
([#25341](https://github.com/apache/pulsar/pull/25341))
+- [fix][test] Fix flaky 
ReplicatorRateLimiterTest.testReplicatorRateLimiterMessageReceivedAllMessages 
([#25340](https://github.com/apache/pulsar/pull/25340))
+- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed 
([#24904](https://github.com/apache/pulsar/pull/24904))
+- [fix][test] Fix flaky ReplicatorTest.testResumptionAfterBacklogRelaxed 
([#25358](https://github.com/apache/pulsar/pull/25358))
+- [fix][test] Fix flaky ResendRequestTest.testFailoverSingleAckedNormalTopic 
([#25343](https://github.com/apache/pulsar/pull/25343))
+- [fix][test] Fix flaky ResendRequestTest.testFailoverSingleAckedNormalTopic 
([#25364](https://github.com/apache/pulsar/pull/25364))
+- [fix][test] Fix flaky ShadowTopicTest.testConsumeShadowMessageWithoutCache 
([#25354](https://github.com/apache/pulsar/pull/25354))
+- [fix][test] Fix flaky 
SingleThreadNonConcurrentFixedRateSchedulerTest.testPeriodicTaskCancellation 
([#24823](https://github.com/apache/pulsar/pull/24823))
+- [fix][test] Fix flaky 
SubscriptionSeekTest.testSeekWillNotEncounteredFencedError by counting 
subscription is fenced only after seek 
([#24865](https://github.com/apache/pulsar/pull/24865))
+- [fix][test] Fix flaky TopicListSizeResultCacheTest concurrent requests test 
([#25357](https://github.com/apache/pulsar/pull/25357))
+- [fix][test] Fix flaky 
TopicTerminationTest.testCreatingProducerTasksCleanupWhenOnTerminatedTopic 
([#25355](https://github.com/apache/pulsar/pull/25355))
+- [fix][test] Fix invalid test NonPersistentTopicTest.testProducerRateLimit 
([#24957](https://github.com/apache/pulsar/pull/24957))
+- [fix][test] Fix ManagedCursorTest and NonDurableCursorTest flaky tests 
([#25101](https://github.com/apache/pulsar/pull/25101))
+- [fix][test] Fix Mockito stubbing race in TopicListServiceTest 
([#25227](https://github.com/apache/pulsar/pull/25227))
+- [fix][test] Fix ResourceQuotaCalculatorImplTest#testNeedToReportLocalUsage 
([#25247](https://github.com/apache/pulsar/pull/25247))
+- [fix][test] fix testBatchMetadataStoreMetrics. 
([#25241](https://github.com/apache/pulsar/pull/25241))
+- [fix][test] Fix the flaky test ProduceWithMessageIdTest. sendWithCallBack 
([#25150](https://github.com/apache/pulsar/pull/25150))
+- [fix][test] Fix thread leaks in ClientDeduplicationFailureTest and 
RackAwareTest ([#25374](https://github.com/apache/pulsar/pull/25374))
+- [fix][test] Fix thread leaks in ManagedLedgerTest and PulsarMockBookKeeper 
([#25377](https://github.com/apache/pulsar/pull/25377))
+- [fix][test] Fix thread leaks in multiple tests and KinesisSink 
([#25376](https://github.com/apache/pulsar/pull/25376))
+- [fix][test] Fixed Non-Guaranteed Order in PoliciesDataTest.propertyAdmin 
([#24871](https://github.com/apache/pulsar/pull/24871))
+- [fix][test] Fixed Nondeterministic Assertions in KafkaAbstractSinkTest 
([#24877](https://github.com/apache/pulsar/pull/24877))
+- [fix][test] Fixed nondeterministic JSON ordering in multiple tests 
([#24821](https://github.com/apache/pulsar/pull/24821))
+- [fix][test] Fixed Nondeterministic Ordering in Generated Docs Topics 
([#24973](https://github.com/apache/pulsar/pull/24973))
+- [fix][test] Fixed nondeterministic ordering in 
MongoSourceTest.testWriteBadMessage 
([#24835](https://github.com/apache/pulsar/pull/24835))
+- [fix][test] Fixed Nondeterministic Ordering in SchemaInfoTest 
([#24969](https://github.com/apache/pulsar/pull/24969))
+- [fix][test] Fixed ResponseBody Check in Test Helper 
([#24872](https://github.com/apache/pulsar/pull/24872))
+- [fix][test] Flaky-test: 
BrokerServiceTest.testShutDownWithMaxConcurrentUnload 
([#24769](https://github.com/apache/pulsar/pull/24769))
+- [fix][test] Made ProtobufNativeSchemaTest.testSchema order-independent 
([#24805](https://github.com/apache/pulsar/pull/24805))
+- [fix][test] Made ProtobufSchemaTest.testParsingInfoProperty 
order-independent ([#24807](https://github.com/apache/pulsar/pull/24807))
+- [fix][test] Make 
ClusterMigrationTest.testClusterMigrationWithReplicationBacklog more robust 
([#25330](https://github.com/apache/pulsar/pull/25330))
+- [fix][test] Replace LZ4FastDecompressor with LZ4SafeDecompressor in test 
([#25032](https://github.com/apache/pulsar/pull/25032))
+- [fix][test] Stabilize FunctionAssignmentTailerTest.testErrorNotifier by 
synchronizing mock stubbing with CountDownLatch 
([#24875](https://github.com/apache/pulsar/pull/24875))
+- [fix][test] Stabilize PublishRateLimiterOverconsumingTest by aligning 
measurement and using adjacent 2-sec averages 
([#24864](https://github.com/apache/pulsar/pull/24864))
+- [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))
+- [fix][test] Stabilize testMsgDropStat by reliably triggering non-persistent 
publisher drop ([#24929](https://github.com/apache/pulsar/pull/24929))
+- [fix][test] Use AtomicBoolean.compareAndSet() to guarantee atomicity in 
testDoIndividualBatchAckNeverAffectIsDuplicate() method 
([#25217](https://github.com/apache/pulsar/pull/25217))
+- [fix][test] Wait for txn.abort() to complete to avoid 
AdminApiTransactionTest.testAnalyzeSubscriptionBacklogWithTransactionMarker() 
flaky test ([#25125](https://github.com/apache/pulsar/pull/25125))
+- [fix][test] Whitelist SharedPulsarCluster threads in thread leak detector 
([#25375](https://github.com/apache/pulsar/pull/25375))
+- [fix][test]Fix flaky ExtensibleLoadManagerImplTest_testGetMetrics 
([#25216](https://github.com/apache/pulsar/pull/25216))
+- [fix][test]fix flaky MessagePayloadProcessorTest.testDefaultProcessor 
([#24710](https://github.com/apache/pulsar/pull/24710))
+- [fix][test]fix flaky 
SimpleProducerConsumerTest.testReceiveAsyncCompletedWhenClosing 
([#24858](https://github.com/apache/pulsar/pull/24858))
+- [fix] Fix flaky OneWayReplicatorTest.testTopicPoliciesReplicationRule 
([#25316](https://github.com/apache/pulsar/pull/25316))
+- [fix] Fix flaky testEstimatedTimeBasedBacklogQuotaCheckWhenNoBacklog 
([#25307](https://github.com/apache/pulsar/pull/25307))
+- [improve][build] Add Async Profiler integration for integration tests 
([#24688](https://github.com/apache/pulsar/pull/24688))
+- [improve][build] Disable javadoc build failure 
([#24594](https://github.com/apache/pulsar/pull/24594))
+- [improve][build] docker: use up to date wolfi-base location 
([#24708](https://github.com/apache/pulsar/pull/24708))
+- [improve][build] Support building docker images that use Wolfi base image 
which is glibc based ([#24692](https://github.com/apache/pulsar/pull/24692))
+- [improve][ci] Move replication tests to new group Broker Group 5 in Pulsar 
CI ([#24917](https://github.com/apache/pulsar/pull/24917))
+- [improve][ci] Replace PULSARBOT_TOKEN with GITHUB_TOKEN configured with 
permissions ([#24916](https://github.com/apache/pulsar/pull/24916))
+- [improve][ci] update pulsarbot to use github-script based implementation 
([#24940](https://github.com/apache/pulsar/pull/24940))
+- [improve][CI] Add Copilot instructions based on Pulsar Java coding 
conventions ([#25305](https://github.com/apache/pulsar/pull/25305))
+- [improve][test] Disable flaky PatternConsumerBackPressureTest until the 
problem is fixed ([#24948](https://github.com/apache/pulsar/pull/24948))
+- [improve][test] Improve integration test profiling test example 
([#24701](https://github.com/apache/pulsar/pull/24701))
+- [improve][test] Introduce shared Pulsar cluster for faster integration tests 
([#25311](https://github.com/apache/pulsar/pull/25311))
+- [improve][test] Set k8s test retry count to 0 
([#25230](https://github.com/apache/pulsar/pull/25230))
+- [improve][test] Use Oxia project docker container for integration tests 
([#24995](https://github.com/apache/pulsar/pull/24995))
+- [cleanup] Convert 10 test classes to SharedPulsarBaseTest 
([#25327](https://github.com/apache/pulsar/pull/25327))
+- [cleanup] Convert 10 test classes to SharedPulsarBaseTest 
([#25338](https://github.com/apache/pulsar/pull/25338))
+- [cleanup] Convert 12 test classes to SharedPulsarBaseTest 
([#25392](https://github.com/apache/pulsar/pull/25392))
+- [cleanup] Convert 13 test classes to SharedPulsarBaseTest 
([#25331](https://github.com/apache/pulsar/pull/25331))
+- [cleanup] Convert 15 test classes to SharedPulsarBaseTest 
([#25318](https://github.com/apache/pulsar/pull/25318))
+- [cleanup] Convert 30 test classes to SharedPulsarBaseTest 
([#25381](https://github.com/apache/pulsar/pull/25381))
+
+For the complete list, check the [full 
changelog](https://github.com/apache/pulsar/compare/45d71f8...v4.2.0).
diff --git a/releases.json b/releases.json
index 4a8cb34c49c..8a4660e4ab3 100644
--- a/releases.json
+++ b/releases.json
@@ -1,4 +1,5 @@
 [
+  "4.2.0",
   "4.1.3",
   "4.1.2",
   "4.1.1",

Reply via email to