apache/pulsar (org.apache.pulsar:pulsar-client-admin)
### [`v2.10.6`](https://togithub.com/apache/pulsar/releases/tag/v2.10.6)
[Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.5...v2.10.6)
#### Broker
##### Improvements
- \[improve]\[broker] Consistently add fine-grain authorization to REST API [22202](https://togithub.com/apache/pulsar/pull/22202)
- \[improve] \[broker] Do not print an Error log when responding to `HTTP-404` when calling `Admin API` and the topic does not exist. [21995](https://togithub.com/apache/pulsar/pull/21995)
- \[improve]\[proxy] Fix comment about enableProxyStatsEndpoints [21757](https://togithub.com/apache/pulsar/pull/21757)
- \[improve]\[broker]\[PIP-318] Support not retaining null-key message during topic compaction [21578](https://togithub.com/apache/pulsar/pull/21578)
- \[improve] \[client] Merge lookup requests for the same topic [21232](https://togithub.com/apache/pulsar/pull/21232)
- \[improve] \[broker] Let the producer request success at the first time if the previous one is inactive [21220](https://togithub.com/apache/pulsar/pull/21220)
- \[improve] \[proxy] Not close the socket if lookup failed caused by too many requests [21216](https://togithub.com/apache/pulsar/pull/21216)
- \[improve] \[broker] Not close the socket if lookup failed caused by bundle unloading or metadata ex [21211](https://togithub.com/apache/pulsar/pull/21211)
- \[improve] \[broker] Print warn log if ssl handshake error & print ledger id when switch ledger [21201](https://togithub.com/apache/pulsar/pull/21201)
- \[improve] \[broker] improve read entry error log for troubleshooting [21169](https://togithub.com/apache/pulsar/pull/21169)
- \[improve]\[proxy] Support disabling metrics endpoint [21031](https://togithub.com/apache/pulsar/pull/21031)
- \[improve]\[broker] Improve cache handling for partitioned topic metadata when doing lookup [21063](https://togithub.com/apache/pulsar/pull/21063)
- \[improve]\[broker] Avoid print redirect exception log when get list from bundle [20846](https://togithub.com/apache/pulsar/pull/20846)
- \[improve]\[sql] Fix the wrong format of the logs [20907](https://togithub.com/apache/pulsar/pull/20907)
- \[improve]\[broker] Add consumer-id into the log when doing subscribe. [20568](https://togithub.com/apache/pulsar/pull/20568)
- \[improve] \[broker] Print warn log if compaction failure [19405](https://togithub.com/apache/pulsar/pull/19405)
- \[improve]\[admin]internalGetMessageById shouldn't be allowed on partitioned topic [19013](https://togithub.com/apache/pulsar/pull/19013)
##### Fixes
- \[fix]\[sec] Upgrade Jetty to 9.4.54.v20240208 to address CVE-2024-22201 [22144](https://togithub.com/apache/pulsar/pull/22144)
- \[fix]\[sec] Upgrade commons-compress to 1.26.0 [22086](https://togithub.com/apache/pulsar/pull/22086)
- \[fix]\[broker] Support running docker container with gid != 0 [22081](https://togithub.com/apache/pulsar/pull/22081)
- \[fix]\[broker] Sanitize values before logging in apply-config-from-env.py script [22044](https://togithub.com/apache/pulsar/pull/22044)
- \[fix]\[broker]\[branch-3.1] Avoid PublishRateLimiter use an already closed RateLimiter [22011](https://togithub.com/apache/pulsar/pull/22011)
- \[fix] \[broker] Replication stopped due to unload topic failed [21947](https://togithub.com/apache/pulsar/pull/21947)
- \[fix] \[broker] fix write all compacted out entry into compacted topic [21917](https://togithub.com/apache/pulsar/pull/21917)
- \[fix] \[ml] Fix retry mechanism of deleting ledgers to invalidate [21869](https://togithub.com/apache/pulsar/pull/21869)
- \[fix]\[broker]Fix NonPersistentDispatcherMultipleConsumers ArrayIndexOutOfBoundsException [21856](https://togithub.com/apache/pulsar/pull/21856)
- \[fix]\[broker] Fix String wrong format [21829](https://togithub.com/apache/pulsar/pull/21829)
- \[fix] \[broker] Update topic policies as much as possible when some ex was thrown [21810](https://togithub.com/apache/pulsar/pull/21810)
- \[fix]\[broker] Fix the wrong value of BrokerSrevice.maxUnackedMsgsPerDispatcher [21765](https://togithub.com/apache/pulsar/pull/21765)
- \[fix]\[sec] Exclude avro from hadoop-client [21719](https://togithub.com/apache/pulsar/pull/21719)
- \[fix]\[test] Fix PerformanceProducer send count error [21706](https://togithub.com/apache/pulsar/pull/21706)
- \[fix]\[broker] Fix the issue of topics possibly being deleted. [21704](https://togithub.com/apache/pulsar/pull/21704)
- \[fix]\[broker] Fix typo in the config key [21690](https://togithub.com/apache/pulsar/pull/21690)
- \[fix] \[broker] network package lost if enable haProxyProtocolEnabled [21684](https://togithub.com/apache/pulsar/pull/21684)
- \[fix]\[broker] Fix memory leak during topic compaction [21647](https://togithub.com/apache/pulsar/pull/21647)
- \[fix]\[broker] Duplicate LedgerOffloader creation when namespace/topic… [21591](https://togithub.com/apache/pulsar/pull/21591)
- \[fix]\[broker] Correct schema deletion for partitioned topic [21574](https://togithub.com/apache/pulsar/pull/21574)
- \[fix]\[broker] Fix namespace bundle stuck in unloading status ([#21445](https://togithub.com/apache/pulsar/issues/21445)) [21567](https://togithub.com/apache/pulsar/pull/21567)
- \[fix]\[broker] Fix create topic with different auto creation strategies causes race condition [21545](https://togithub.com/apache/pulsar/pull/21545)
- \[fix] \[ml] Fix orphan scheduled task for ledger create timeout check [21542](https://togithub.com/apache/pulsar/pull/21542)
- \[fix] \[broker] Fix thousands orphan PersistentTopic caused OOM [21540](https://togithub.com/apache/pulsar/pull/21540)
- \[fix]\[ml] Fix unfinished callback when deleting managed ledger [21530](https://togithub.com/apache/pulsar/pull/21530)
- \[fix]\[broker] Fix setReplicatedSubscriptionStatus incorrect behavior [21510](https://togithub.com/apache/pulsar/pull/21510)
- \[fix]\[broker] Do not write replicated snapshot marker when the topic which is not enable replication [21495](https://togithub.com/apache/pulsar/pull/21495)
- \[branch-2.10]\[fix]\[proxy] Move status endpoint out of auth coverage [21494](https://togithub.com/apache/pulsar/pull/21494)
- \[fix]\[broker] Avoid pass null role in MultiRolesTokenAuthorizationProvider [21486](https://togithub.com/apache/pulsar/pull/21486)
- \[fix]\[broker] Fix the deadlock when using BookieRackAffinityMapping with rackaware policy [21481](https://togithub.com/apache/pulsar/pull/21481)
- \[fix]\[broker] Fix namespace bundle stuck in unloading status [21445](https://togithub.com/apache/pulsar/pull/21445)
- \[fix]\[broker] Fix MultiRoles token provider NPE when using anonymous clients [21429](https://togithub.com/apache/pulsar/pull/21429)
- \[fix]\[proxy] Move status endpoint out of auth coverage [21428](https://togithub.com/apache/pulsar/pull/21428)
- \[fix]\[sec] Upgrade Netty to 4.1.100 to address CVE-2023-44487 [21397](https://togithub.com/apache/pulsar/pull/21397)
- \[fix]\[sec] Bump avro version to 1.11.3 for CVE-2023-39410 [21341](https://togithub.com/apache/pulsar/pull/21341)
- \[fix]\[test] Fix flaky test NarUnpackerTest [21328](https://togithub.com/apache/pulsar/pull/21328)
- \[fix] \[bk-client] Fix bk client MinNumRacksPerWriteQuorum and EnforceMinNumRacksPerWriteQuorum not work problem. [21327](https://togithub.com/apache/pulsar/pull/21327)
- \[fix]\[ml] Fix thread safe issue with RangeCache.put and RangeCache.clear [21302](https://togithub.com/apache/pulsar/pull/21302)
- \[fix]\[sec] Upgrade snappy-java to 1.1.10.5 [21280](https://togithub.com/apache/pulsar/pull/21280)
- \[fix]\[txn] Ack all message ids when ack chunk messages with transaction. [21268](https://togithub.com/apache/pulsar/pull/21268)
- \[fix]\[broker]\[branch-2.10] Fix inconsistent topic policy [21258](https://togithub.com/apache/pulsar/pull/21258)
- \[fix] \[ml] fix wrong msg backlog of non-durable cursor after trim ledgers [21250](https://togithub.com/apache/pulsar/pull/21250)
- \[fix] \[ml] Reader can set read-pos to a deleted ledger [21248](https://togithub.com/apache/pulsar/pull/21248)
- \[fix]\[broker]Fixed produce and consume when anonymousUserRole enabled [21237](https://togithub.com/apache/pulsar/pull/21237)
- \[fix]\[broker] Fix inconsistent topic policy [21231](https://togithub.com/apache/pulsar/pull/21231)
- \[fix]\[broker] Fixed reset for AggregatedNamespaceStats [21225](https://togithub.com/apache/pulsar/pull/21225)
- \[fix]\[broker] Make the new exclusive consumer instead the inactive one faster [21183](https://togithub.com/apache/pulsar/pull/21183)
- \[fix]\[broker]\[branch-2.10] Backport fix UniformLoadShedder selecet wrong overloadbroker and underloadbroker [21182](https://togithub.com/apache/pulsar/pull/21182)
- \[Branch-2.10] \[imporve] \[bookie] Upgrade BookKeeper dependency to 4.14.8 for branch 2.10 [21148](https://togithub.com/apache/pulsar/pull/21148)
- \[fix]\[client] Fix repeat consume when using n-ack and batched messages [21116](https://togithub.com/apache/pulsar/pull/21116)
- \[fix]\[client] Avoid ack hole for chunk message [21101](https://togithub.com/apache/pulsar/pull/21101)
- \[branch-2.10] \[fix] \[broker] Fix isolated group not work problem. [21098](https://togithub.com/apache/pulsar/pull/21098)
- \[fix] \[broker] Fix isolated group not work problem. [21096](https://togithub.com/apache/pulsar/pull/21096)
- \[fix]\[broker] Fix write duplicate entries into the compacted ledger after RawReader reconnects [21081](https://togithub.com/apache/pulsar/pull/21081)
- \[fix]\[client] Fix consumer can't consume resent chunked messages [21070](https://togithub.com/apache/pulsar/pull/21070)
- \[fix]\[broker] Make sure all inflight writes have finished before completion of compaction [21067](https://togithub.com/apache/pulsar/pull/21067)
- \[fix]\[broker] Use MessageDigest.isEqual when comparing digests [21061](https://togithub.com/apache/pulsar/pull/21061)
- \[fix]\[misc] Bump GRPC version to 1.55.3 to fix CVE [21057](https://togithub.com/apache/pulsar/pull/21057)
- \[fix] \[bk] Correctct the bookie info after ZK client is reconnected [21035](https://togithub.com/apache/pulsar/pull/21035)
- \[fix]\[io] Update test certs for Elasticsearch [21001](https://togithub.com/apache/pulsar/pull/21001)
- \[fix]\[broker] Fix can't stop phase-two of compaction even though messageId read reaches lastReadId [20988](https://togithub.com/apache/pulsar/pull/20988)
- \[fix]\[broker] Fix message loss during topic compaction [20980](https://togithub.com/apache/pulsar/pull/20980)
- \[fix]\[broker] Fix incorrect number of read compacted entries [20978](https://togithub.com/apache/pulsar/pull/20978)
- \[fix]\[broker]Fix chunked messages will be filtered by duplicating [20948](https://togithub.com/apache/pulsar/pull/20948)
- \[fix]\[broker]Check that the super user role is in the MultiRolesTokenAuthorizationProvider plugin [20939](https://togithub.com/apache/pulsar/pull/20939)
- \[fix] \[log] fix the vague response if topic not found [20932](https://togithub.com/apache/pulsar/pull/20932)
- \[fix]\[broker] fix MessageDeduplication throw NPE when enable broker dedup and set namespace disable deduplication. [20905](https://togithub.com/apache/pulsar/pull/20905)
- \[fix] \[ml] fix discontinuous ledger deletion [20898](https://togithub.com/apache/pulsar/pull/20898)
- \[fix]\[broker] In replication scenario, remote consumer could not be registered if there has no message was sent [20888](https://togithub.com/apache/pulsar/pull/20888)
- \[branch-2.10]\[fix]\[broker] Fix inconsensus namespace policies by getPoliciesIfCached [20873](https://togithub.com/apache/pulsar/pull/20873)
- \[branch-2.10]\[fix]\[broker] Inconsistent behaviour for topic auto_creation [20872](https://togithub.com/apache/pulsar/pull/20872)
- \[fix]\[broker] Fix inconsensus namespace policies by `getPoliciesIfCached` [20855](https://togithub.com/apache/pulsar/pull/20855)
- \[fix]\[broker] Avoid infinite bundle unloading [20822](https://togithub.com/apache/pulsar/pull/20822)
- \[fix]\[broker] Fix get topic policies as null during clean cache [20763](https://togithub.com/apache/pulsar/pull/20763)
- \[fix] \[broker] do not filter system topic while shedding. [18949](https://togithub.com/apache/pulsar/pull/18949)
- \[improve] Introduce the sync() API to ensure consistency on reads during critical metadata operation paths [18518](https://togithub.com/apache/pulsar/pull/18518)
- \[fix]\[broker] Fix namespace not found will cause request timeout [18512](https://togithub.com/apache/pulsar/pull/18512)
- \[fix]\[io] exclude logback dependency for canal connector [18226](https://togithub.com/apache/pulsar/pull/18226)
#### Client
##### Fixes
- \[fix]\[client] Fix ConsumerBuilderImpl#subscribe silent stuck when using pulsar-client:3.0.x with jackson-annotations prior to 2.12.0 [21985](https://togithub.com/apache/pulsar/pull/21985)
- \[fix] \[client] fix reader.hasMessageAvailable return false when incoming queue is not empty [21259](https://togithub.com/apache/pulsar/pull/21259)
- \[fix]\[client] fix same producer/consumer use more than one connection per broker [21144](https://togithub.com/apache/pulsar/pull/21144)
- \[fix]\[client] Fix repeat consume when using n-ack and batched messages [21116](https://togithub.com/apache/pulsar/pull/21116)
- \[fix]\[client] Avoid ack hole for chunk message [21101](https://togithub.com/apache/pulsar/pull/21101)
- \[fix]\[client] Fix consumer can't consume resent chunked messages [21070](https://togithub.com/apache/pulsar/pull/21070)
- \[fix] \[cli] the variable producerName of BatchMsgContainer is null [20819](https://togithub.com/apache/pulsar/pull/20819)
- \[fix]\[client] fix negative message re-delivery twice issue [20750](https://togithub.com/apache/pulsar/pull/20750)
### [`v2.10.5`](https://togithub.com/apache/pulsar/releases/tag/v2.10.5)
[Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.4...v2.10.5)
##### Broker
- \[fix]\[broker] In replication scenario, remote consumer could not be registered if there has no message was sent ([#20888](https://togithub.com/apache/pulsar/issues/20888))
- \[improve] \[broker] Print warn log if compaction failure ([#19405](https://togithub.com/apache/pulsar/issues/19405))
- \[branch-2.10]\[fix]\[broker] Fix inconsensus namespace policies by getPoliciesIfCached ([#20873](https://togithub.com/apache/pulsar/issues/20873))
- \[branch-2.10]\[fix]\[broker] Inconsistent behaviour for topic auto_creation ([#20872](https://togithub.com/apache/pulsar/issues/20872))
- \[fix] \[broker] Can not receive any messages after switching to standby cluster ([#20767](https://togithub.com/apache/pulsar/issues/20767))
- \[improve] \[broker] Add consumer-id into the log when doing subscribe. ([#20568](https://togithub.com/apache/pulsar/issues/20568))
- \[fix]\[broker]\[branch-2.10] Fix NPE when resetting Replicator's cursor by position. ([#20597](https://togithub.com/apache/pulsar/issues/20597)) ([#20781](https://togithub.com/apache/pulsar/issues/20781))
- \[fix]\[broker] Fix namespace deletion if \__change_events topic has not been created yet ([#18804](https://togithub.com/apache/pulsar/issues/18804))
- \[fix]\[schema] Only handle exception when there has ([#20730](https://togithub.com/apache/pulsar/issues/20730))
- \[fix]\[broker] Topic policy can not work well if replay policy message has any exception. ([#20613](https://togithub.com/apache/pulsar/issues/20613))
- \[fix]\[broker] Fix return the earliest position when query position by timestamp. ([#20457](https://togithub.com/apache/pulsar/issues/20457))
- \[fix]\[broker] Return if AbstractDispatcherSingleActiveConsumer closed ([#19934](https://togithub.com/apache/pulsar/issues/19934))
- \[broker] clean inactive bundle from bundleData in loadData and bundlesCache ([#13974](https://togithub.com/apache/pulsar/issues/13974))
- \[fix]\[branch-2.10] Fix compilation issue introduced by fixing Repeated messages of shared dispatcher ([#16812](https://togithub.com/apache/pulsar/issues/16812))
- Issue 16802: fix Repeated messages of shared dispatcher ([#16812](https://togithub.com/apache/pulsar/issues/16812))
- \[fix]\[branch-2.10]Fix compilation issue introduced by Save createIfMissing in TopicLoadingContext ([#19993](https://togithub.com/apache/pulsar/issues/19993))
- \[improve]\[broker] Save createIfMissing in TopicLoadingContext ([#19993](https://togithub.com/apache/pulsar/issues/19993))
- \[fix]\[broker] Invalidate metadata children cache after key deleted ([#20363](https://togithub.com/apache/pulsar/issues/20363))
- \[improve] \[broker] Avoid PersistentSubscription.expireMessages logic check backlog twice. ([#20416](https://togithub.com/apache/pulsar/issues/20416))
- \[fix]\[broker]fix the publish latency spike issue with large number of producers ([#20607](https://togithub.com/apache/pulsar/issues/20607))
- \[fix]\[branch-2.10] Fix duplicated deleting topics ([#20685](https://togithub.com/apache/pulsar/issues/20685))
- \[improve]\[broker]\[branch-2.10] Backport Linux metrics changes from master branch ([#20659](https://togithub.com/apache/pulsar/issues/20659))
- \[cleanup]\[broker] Validate authz earlier in delete subscription logic ([#20549](https://togithub.com/apache/pulsar/issues/20549))
- \[fix]\[broker] release orphan replicator after topic closed ([#20567](https://togithub.com/apache/pulsar/issues/20567))
- \[fix]\[broker] REST Client Producer fails with TLS only ([#20535](https://togithub.com/apache/pulsar/issues/20535))
- \[fix]\[broker] Restore solution for certain topic unloading race conditions ([#20527](https://togithub.com/apache/pulsar/issues/20527))
- \[fix]\[ml] There are two same-named managed ledgers in the one broker ([#18688](https://togithub.com/apache/pulsar/issues/18688))
- \[fix]\[broker] Fix skip message API when hole messages exists ([#20326](https://togithub.com/apache/pulsar/issues/20326))
- \[fix]\[broker] If ledger lost, cursor mark delete position can not forward ([#18620](https://togithub.com/apache/pulsar/issues/18620))
- \[fix]\[broker] partitioned \__change_events topic is policy topic ([#20392](https://togithub.com/apache/pulsar/issues/20392))
- \[fix]\[ml] Fix ledger left in OPEN state when enabling `inactiveLedgerRollOverTimeMs` ([#20276](https://togithub.com/apache/pulsar/issues/20276))
- \[fix]\[broker] Fix default bundle size used while setting bookie affinity ([#20250](https://togithub.com/apache/pulsar/issues/20250))
- \[fix]\[broker] Fix the behavior of delayed message in Key_Shared mode ([#20233](https://togithub.com/apache/pulsar/issues/20233))
- \[improve]\[broker] Get lowest PositionImpl from NavigableSet ([#18278](https://togithub.com/apache/pulsar/issues/18278))
- \[fix] \[broker] error TimeUnit to record publish latency ([#20074](https://togithub.com/apache/pulsar/issues/20074))
- \[fix] \[broker] In Key_Shared mode: remove unnecessary mechanisms of message skip to avoid unnecessary consumption stuck ([#20335](https://togithub.com/apache/pulsar/issues/20335))
- \[fix]\[broker]Fix deadlock of metadata store ([#20189](https://togithub.com/apache/pulsar/issues/20189))
- \[fix] \[broker] \[branch-2.10] Upgrade rocksDB version to 6.16.4 to keep sync with BookKeeper 4.14.7 ([#20312](https://togithub.com/apache/pulsar/issues/20312))
- \[improve] \[broker] Skip split bundle if only one broker ([#20190](https://togithub.com/apache/pulsar/issues/20190))
- \[fix]\[monitor] topic with double quote breaks the prometheus format ([#20230](https://togithub.com/apache/pulsar/issues/20230))
- \[fix]\[broker] Fix RoaringBitmap.contains can't check value 65535 ([#20176](https://togithub.com/apache/pulsar/issues/20176))
- \[fix]\[broker] Fix the reason label of authentication metrics ([#20030](https://togithub.com/apache/pulsar/issues/20030))
- \[fix] \[broker] Fix infinite ack of Replicator after topic is closed ([#20232](https://togithub.com/apache/pulsar/issues/20232))
- \[fix] \[broker] Producer created by replicator is not displayed in topic stats ([#20229](https://togithub.com/apache/pulsar/issues/20229))
- \[fix] \[broker] delete topic failed if disabled system topic ([#19735](https://togithub.com/apache/pulsar/issues/19735))
- \[fix] \[ml] make the result of delete cursor is success if cursor is deleted ([#19825](https://togithub.com/apache/pulsar/issues/19825))
- \[fix] \[broker] Fast fix infinite HTTP call getSubscriptions caused by wrong topicName ([#20131](https://togithub.com/apache/pulsar/issues/20131))
- \[fix]\[broker] Fix issue where msgRateExpired may not refresh forever ([#19759](https://togithub.com/apache/pulsar/issues/19759))
- \[fix]\[broker] Fix can't send ErrorCommand when message is null value ([#19899](https://togithub.com/apache/pulsar/issues/19899))
- \[fix]\[broker] Fix Return value of getPartitionedStats doesn't contain subscription type ([#20210](https://togithub.com/apache/pulsar/issues/20210))
- \[branch-2.10]\[fix]\[build] Upgrade swagger version to fix CVE-2022-1471 ([#20172](https://togithub.com/apache/pulsar/issues/20172))
- \[fix]\[broker] Fix getPartitionedStats miss subscription's messageAckRate ([#19870](https://togithub.com/apache/pulsar/issues/19870))
- \[fix] Use scheduled executor in BinaryProtoLookupService ([#20043](https://togithub.com/apache/pulsar/issues/20043))
- \[improve] \[broker] Fix broker restart logic ([#20113](https://togithub.com/apache/pulsar/issues/20113))
##### Transaction
- \[fix] \[txn] fix consumer can receive aborted txn message when readType is replay ([#19815](https://togithub.com/apache/pulsar/issues/19815))
##### Pulsar IO and Pulsar Functions
- \[fix]\[io]\[branch-2.10] Not restart instance when kafka source poll exception. ([#20816](https://togithub.com/apache/pulsar/issues/20816))
- \[fix]\[offload] Filesystem offloader class not found hadoop-hdfs-client ([#20365](https://togithub.com/apache/pulsar/issues/20365))
- \[fix]\[fn] Make KubernetesRuntime translate characters in function tenant, namespace, and name during function removal to avoid label errors ([#19584](https://togithub.com/apache/pulsar/issues/19584))
- \[fix]\[fn] Fix JavaInstanceStarter inferring type class name error ([#19896](https://togithub.com/apache/pulsar/issues/19896))
- \[fix]\[io] Close the kafka source connector got stuck ([#20698](https://togithub.com/apache/pulsar/issues/20698))
- \[fix]\[fn] Exit JVM when main thread throws exception ([#20689](https://togithub.com/apache/pulsar/issues/20689))
- Optimize conusmer pause ([#14566](https://togithub.com/apache/pulsar/issues/14566))
- \[fix]\[broker] Fix the publish latency spike from the contention of MessageDeduplication ([#20647](https://togithub.com/apache/pulsar/issues/20647))
- \[fix]\[fn] Configure pulsar admin for TLS ([#20533](https://togithub.com/apache/pulsar/issues/20533))
- \[fix]\[fn] Go functions must retrieve consumers by non-particioned topic ID ([#20413](https://togithub.com/apache/pulsar/issues/20413))
- \[fix]\[io] Close the kafka source connector if there is uncaught exception ([#20479](https://togithub.com/apache/pulsar/issues/20479))
- \[fix]\[fn] Go functions need to use static grpcPort in k8s runtime ([#20404](https://togithub.com/apache/pulsar/issues/20404))
- \[fix]\[fn] Make pulsar-admin support update py/go with package url ([#19897](https://togithub.com/apache/pulsar/issues/19897))
- \[fix]\[txn] Fix transaction is not aborted when send or ACK failed ([#20240](https://togithub.com/apache/pulsar/issues/20240))
##### CLI
- \[fix] \[cli] the variable producerName of BatchMsgContainer is null ([#20819](https://togithub.com/apache/pulsar/issues/20819))
- \[fix]\[ci] Update nar maven plugin version to fix excessive downloads ([#20410](https://togithub.com/apache/pulsar/issues/20410))
##### Admin
- \[improve]\[admin] Return BAD_REQUEST on cluster data is null for createCluster ([#20346](https://togithub.com/apache/pulsar/issues/20346))
##### Security
- \[fix]\[sec] Upgrade snappy-java to address multiple CVEs ([#20604](https://togithub.com/apache/pulsar/issues/20604))
- \[fix]\[sec] Upgrade Guava to 32.0.0 to address CVE-2023-2976 ([#20459](https://togithub.com/apache/pulsar/issues/20459))
- \[improve]\[misc] Upgrade Netty to 4.1.93.Final ([#20423](https://togithub.com/apache/pulsar/issues/20423))
- \[improve]\[misc] Upgrade Netty to 4.1.89.Final ([#19649](https://togithub.com/apache/pulsar/issues/19649))
- \[fix]\[sec] Upgrade sqlite-jdbc to resolve CVE-2023-32697 ([#20411](https://togithub.com/apache/pulsar/issues/20411))
##### CI & Test
- \[fix]\[test] Replace test call to Auth0 with call to WireMock ([#20465](https://togithub.com/apache/pulsar/issues/20465))
- \[fix]\[test] Fix flaky testCreateTopicWithZombieReplicatorCursor ([#20037](https://togithub.com/apache/pulsar/issues/20037))
\*\[fix]\[flaky-test]NamespaceServiceTest.flaky/testModularLoadManagerRemoveBundleAndLoad ([#17487](https://togithub.com/apache/pulsar/issues/17487))
- \[improve]\[test]\[branch-2.10] Backport disabling disk usage threshold for Elastic Testcontainers ([#20676](https://togithub.com/apache/pulsar/issues/20676))
##### Others
- \[fix]\[build]Fix compatibility issue caused by [#20819](https://togithub.com/apache/pulsar/issues/20819) ([#20834](https://togithub.com/apache/pulsar/issues/20834))
- \[fix]\[build] Mongo is fixed for 2.10.5 ([#20810](https://togithub.com/apache/pulsar/issues/20810))
- \[fix]\[meta] Bookie Info lost by notification race condition. ([#20642](https://togithub.com/apache/pulsar/issues/20642))
- \[fix] \[meta]Switch to the metadata store thread after zk operation ([#20303](https://togithub.com/apache/pulsar/issues/20303))
- \[fix]\[ws] Remove unnecessary ping/pong implementation ([#20733](https://togithub.com/apache/pulsar/issues/20733))
- fix: bundle-data metadata leak because of bundlestats was not clean ([#17095](https://togithub.com/apache/pulsar/issues/17095))
- \[fix] \[Perf] PerformanceProducer do not produce expected number of messages. ([#19775](https://togithub.com/apache/pulsar/issues/19775))
- \[fix]\[meta] Adding the missed bookie id in the registration manager. ([#20641](https://togithub.com/apache/pulsar/issues/20641))
- \[fix]\[build] Don't publish docker image with "latest" tag to docker repository
- \[fix]\[build]\[branch-2.10] Fix ci-license check ([#20505](https://togithub.com/apache/pulsar/issues/20505))
- \[improve]\[monitor] Add JVM start time metric ([#20381](https://togithub.com/apache/pulsar/issues/20381))
- \[fix]\[build] update the zookeeper version to 3.6.4 ([#20333](https://togithub.com/apache/pulsar/issues/20333))
- \[fix]\[monitor] Fix the partitioned publisher topic stat aggregation bug ([#18807](https://togithub.com/apache/pulsar/issues/18807))
- \[fix]\[meta] deadlock of zkSessionWatcher when zkConnection loss ([#20122](https://togithub.com/apache/pulsar/issues/20122))
- \[improve]\[build] Upgrade dependencies to reduce CVE. ([#20162](https://togithub.com/apache/pulsar/issues/20162))
- \[branch-2.10]\[improve]\[build] Upgrade snakeyaml version to 2.0 ([#20118](https://togithub.com/apache/pulsar/issues/20118))
##### Client
- \[fix] \[client] Messages lost when consumer reconnect ([#20695](https://togithub.com/apache/pulsar/issues/20695))
- \[fix]\[client] Make the whole grabCnx() progress atomic ([#20595](https://togithub.com/apache/pulsar/issues/20595))
- \[fix]\[client] Fix race condition that leads to caching failed CompletableFutures in ConnectionPool ([#19661](https://togithub.com/apache/pulsar/issues/19661))
- \[fix]\[client] Fix deadlock issue of consumer while using multiple IO threads ([#20669](https://togithub.com/apache/pulsar/issues/20669))
- \[fix]\[client] Cache empty schema version in ProducerImpl schemaCache. ([#19929](https://togithub.com/apache/pulsar/issues/19929))
- \[fix]\[fn] Reset idle timer correctly ([#20450](https://togithub.com/apache/pulsar/issues/20450))
- \[fix]\[client] Release the orphan producers after the primary consumer is closed ([#19858](https://togithub.com/apache/pulsar/issues/19858))
- \[fix]\[client] Fix DeadLetterProducer creation callback blocking client io thread. ([#19930](https://togithub.com/apache/pulsar/issues/19930))
### [`v2.10.4`](https://togithub.com/apache/pulsar/releases/tag/v2.10.4)
[Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.3...v2.10.4)
##### Broker
- \[improve]\[broker] Add ref count for sticky hash to optimize the performance of Key_Shared subscription ([#19167](https://togithub.com/apache/pulsar/issues/19167))
- \[fix]\[broker] Pass subName for subscription operations in ServerCnx ([#19184](https://togithub.com/apache/pulsar/issues/19184))
- \[fix]\[broker] AbstractBatchedMetadataStore - use AlreadyClosedException instead of IllegalStateException ([#19284](https://togithub.com/apache/pulsar/issues/19284))
- \[fix]\[broker] Fix open cursor with null-initialPosition result with earliest position ([#18416](https://togithub.com/apache/pulsar/issues/18416))
- \[fix] \[ml] Topics stats shows msgBacklog but there reality no backlog ([#19275](https://togithub.com/apache/pulsar/issues/19275))
- \[improve]\[broker] Added isActive in ManagedCursorImpl ([#19341](https://togithub.com/apache/pulsar/issues/19341))
- \[improve]\[broker] Replaced checkBackloggedCursors with checkBackloggedCursor(single subscription check) upon subscription ([#19343](https://togithub.com/apache/pulsar/issues/19343))
- \[fix]\[broker] fixed the build error for pattern matching variable in lower JVM versions ([#19362](https://togithub.com/apache/pulsar/issues/19362))
- \[fix]\[broker]optimize the shutdown sequence of broker service when it close ([#16756](https://togithub.com/apache/pulsar/issues/16756))
- \[fix]\[broker] Pass subscriptionName to auth service ([#17123](https://togithub.com/apache/pulsar/issues/17123)) ([#19423](https://togithub.com/apache/pulsar/issues/19423))
- \[fix]\[broker]fix multi invocation for ledger createComplete ([#18975](https://togithub.com/apache/pulsar/issues/18975))
- \[fix] \[broker] getLastMessageId returns a wrong batch index of last message if enabled read compacted ([#18877](https://togithub.com/apache/pulsar/issues/18877))
- \[fix]\[broker] Support deleting partitioned topics with the keyword `-partition-` ([#19230](https://togithub.com/apache/pulsar/issues/19230))
- \[fix] \[ml] Fix the incorrect total size if use ML interceptor ([#19404](https://togithub.com/apache/pulsar/issues/19404))
- \[improve]\[broker] Added isActive in ManagedCursorImpl ([#19341](https://togithub.com/apache/pulsar/issues/19341))
- \[improve]\[broker] Added isActive in ManagedCursorImpl ([#19341](https://togithub.com/apache/pulsar/issues/19341))
- \[improve]\[broker] Copy subscription properties during updating the topic partition number. ([#19223](https://togithub.com/apache/pulsar/issues/19223))
- \[fix]\[broker] Expect msgs after server initiated CloseProducer ([#19446](https://togithub.com/apache/pulsar/issues/19446))
- \[fix]\[broker] Fix PulsarRegistrationClient and ZkRegistrationClient not aware rack info problem. ([#18672](https://togithub.com/apache/pulsar/issues/18672))
- \[fix]\[ml] Fix potential NPE cause future never complete. ([#19415](https://togithub.com/apache/pulsar/issues/19415))
- \[fix] \[ml] The atomicity of multiple fields of ml is broken ([#19346](https://togithub.com/apache/pulsar/issues/19346))
- \[fix]\[broker] Fix race condition while updating partition number ([#19199](https://togithub.com/apache/pulsar/issues/19199))
- \[Improve]\[broker] Support clear old bookie data for BKCluster ([#16744](https://togithub.com/apache/pulsar/issues/16744))
- \[fix]\[ml] Reset individualDeletedMessagesSerializedSize after acked all messages. ([#19428](https://togithub.com/apache/pulsar/issues/19428))
- \[fix]\[broker] Make ServerCnx#originalAuthData volatile ([#19507](https://togithub.com/apache/pulsar/issues/19507))
- \[fix]\[broker] ServerCnx broken after recent cherry-picks ([#19521](https://togithub.com/apache/pulsar/issues/19521))
- \[fix]\[broker] Fix loadbalance score caculation problem ([#19420](https://togithub.com/apache/pulsar/issues/19420))
- \[fix] \[ml] messagesConsumedCounter of NonDurableCursor was initialized incorrectly ([#19355](https://togithub.com/apache/pulsar/issues/19355))
- \[fix]\[broker]\[branch-2.10] Replace sync method call in async call chain to prevent ZK event thread deadlock ([#19539](https://togithub.com/apache/pulsar/issues/19539))
- \[improve]\[broker] Require authRole is proxyRole to set originalPrincipal ([#19455](https://togithub.com/apache/pulsar/issues/19455))
- \[improve]\[broker] ServerCnx: go to Failed state when auth fails ([#19312](https://togithub.com/apache/pulsar/issues/19312))
- \[feat]\[broker] Cherry-pick tests from ([#19409](https://togithub.com/apache/pulsar/issues/19409))
- \[improve]\[broker] Add test to verify authRole cannot change ([#19430](https://togithub.com/apache/pulsar/issues/19430))
- \[feat]\[broker] OneStageAuth State: move authn out of constructor ([#19295](https://togithub.com/apache/pulsar/issues/19295))
- \[fix]\[broker] Correct MockAlwaysExpiredAuthenticationState test impl
- \[cleanup]\[broker] Validate originalPrincipal earlier in ServerCnx ([#19270](https://togithub.com/apache/pulsar/issues/19270))
- \[fix]\[broker] ServerCnx broken after recent cherry-picks ([#19521](https://togithub.com/apache/pulsar/issues/19521))
- \[fix]\[broker] Fix loadbalance score caculation problem ([#19420](https://togithub.com/apache/pulsar/issues/19420))
- \[fix] \[ml] messagesConsumedCounter of NonDurableCursor was initialized incorrectly ([#19355](https://togithub.com/apache/pulsar/issues/19355))
- \[fix]\[broker]\[branch-2.10] Replace sync method call in async call chain to prevent ZK event thread deadlock ([#19539](https://togithub.com/apache/pulsar/issues/19539))
- \[improve]\[broker] Require authRole is proxyRole to set originalPrincipal ([#19455](https://togithub.com/apache/pulsar/issues/19455))
- \[improve]\[broker] ServerCnx: go to Failed state when auth fails ([#19312](https://togithub.com/apache/pulsar/issues/19312))
- \[feat]\[broker] Cherry-pick tests from ([#19409](https://togithub.com/apache/pulsar/issues/19409))
- \[improve]\[broker] Add test to verify authRole cannot change ([#19430](https://togithub.com/apache/pulsar/issues/19430))
- \[fix]\[broker] Call originalAuthState.authenticate in ServerCnx
- \[fix]\[broker] Correct MockAlwaysExpiredAuthenticationState test impl
- \[fix]\[broker] Make authentication refresh threadsafe ([#19506](https://togithub.com/apache/pulsar/issues/19506))
- \[fix]\[broker] Allow proxy to pass same role for authRole and originalRole ([#19557](https://togithub.com/apache/pulsar/issues/19557))
- \[fix]\[broker] Copy command fields and fix potential thread-safety in ServerCnx ([#19517](https://togithub.com/apache/pulsar/issues/19517))
- \[fix]\[broker]\[branch-2.10] Fix geo-replication admin ([#19608](https://togithub.com/apache/pulsar/issues/19608))
- \[fix]\[broker] PulsarRegistrationClient - implement getAllBookies and follow BookieServiceInfo updates ([#18133](https://togithub.com/apache/pulsar/issues/18133))
- \[Improve]\[Broker]Reduce GetReplicatedSubscriptionStatus local REST call ([#16946](https://togithub.com/apache/pulsar/issues/16946))
- \[fix] \[broker] Incorrect service name selection logic ([#19505](https://togithub.com/apache/pulsar/issues/19505))
- \[improve]\[broker] Use shrink map for trackerCache ([#19534](https://togithub.com/apache/pulsar/issues/19534))
- \[improve]\[broker] Add UncaughtExceptionHandler for every thread pool ([#18211](https://togithub.com/apache/pulsar/issues/18211))
- \[cleanup]\[broker] Simplify extract entryMetadata code in filterEntriesForConsumer ([#18729](https://togithub.com/apache/pulsar/issues/18729))
- \[improve]\[broker] Follow up [#19230](https://togithub.com/apache/pulsar/issues/19230) to tighten the validation scope ([#19234](https://togithub.com/apache/pulsar/issues/19234))
- \[fix] \[ml] topic load fail by ledger lost ([#19444](https://togithub.com/apache/pulsar/issues/19444))
- \[fix] \[broker] Topic close failure leaves subscription in a permanent fence state ([#19692](https://togithub.com/apache/pulsar/issues/19692))
- \[cherry-pick]\[branch-2.10] Fix deadlock causes session notification not to work ([#19754](https://togithub.com/apache/pulsar/issues/19754)) ([#19768](https://togithub.com/apache/pulsar/issues/19768))
- \[fix]\[broker] Fix potential exception cause the policy service init fail. ([#19746](https://togithub.com/apache/pulsar/issues/19746))
- \[improve]\[broker] Authorize originalPrincipal when provided ([#19830](https://togithub.com/apache/pulsar/issues/19830))
- \[fix]\[broker] Only validate superuser access if authz enabled ([#19989](https://togithub.com/apache/pulsar/issues/19989))
- \[fix]\[broker] Ignore and remove the replicator cursor when the remote cluster is absent ([#19972](https://togithub.com/apache/pulsar/issues/19972))
- \[fix]\[broker] Fix index generator is not rollback after entries are failed added ([#19980](https://togithub.com/apache/pulsar/issues/19980))
- \[fix] \[proxy] Used in proxyConf file when configuration is missing in the command line ([#15938](https://togithub.com/apache/pulsar/issues/15938))
- \[fix]\[broker] Remove timestamp from broker metrics ([#17419](https://togithub.com/apache/pulsar/issues/17419))
- \[fix] \[broker] Counter of pending send messages in Replicator incorrect if schema future not complete ([#19242](https://togithub.com/apache/pulsar/issues/19242))
##### Transaction
- \[fix]\[txn] Correct the prompt message ([#17009](https://togithub.com/apache/pulsar/issues/17009))
- \[fix]\[txn] Catch and log runtime exceptions in async operations ([#19258](https://togithub.com/apache/pulsar/issues/19258))
- \[fix]\[txn] fix txn coordinator recover handle committing and aborting txn race condition. ([#19201](https://togithub.com/apache/pulsar/issues/19201))
- \[improve]\[txn] Handle changeToReadyState failure correctly in TC client ([#19308](https://togithub.com/apache/pulsar/issues/19308))
- \[cherry-pick]\[branch-2.10] Allow superusers to abort transactions ([#1](https://togithub.com/apache/pulsar/issues/1)…9467) ([#19473](https://togithub.com/apache/pulsar/issues/19473))
- \[feature]\[txn] Fix individual ack batch message with transaction abor…
- Close TransactionBuffer when MessageDeduplication#checkStatus failed ([#19288](https://togithub.com/apache/pulsar/issues/19288))
- \[improve]\[txn] Cleanup how superusers abort txns ([#19976](https://togithub.com/apache/pulsar/issues/19976))
- \[feature]\[txn] Fix individual ack batch message with transaction abort redevlier duplicate messages ([#14327](https://togithub.com/apache/pulsar/issues/14327))
##### Pulsar IO and Pulsar Functions
- \[fix]\[io] Update Elasticsearch sink idle cnx timeout to 30s ([#19377](https://togithub.com/apache/pulsar/issues/19377))
- \[fix]\[fn] Fix k8s merge runtime opts bug ([#19481](https://togithub.com/apache/pulsar/issues/19481))
- \[refactor]\[fn] Use AuthorizationServer more in Function Worker API ([#19975](https://togithub.com/apache/pulsar/issues/19975))
##### CLI
- \[fix] \[cli] Fix Broker crashed by too much memory usage of pulsar tools ([#20031](https://togithub.com/apache/pulsar/issues/20031))
##### Admin
- \[fix]\[admin] Fix validatePersistencePolicies that Namespace/Topic persistent policies cannot set to < 0 ([#18999](https://togithub.com/apache/pulsar/issues/18999))
- \[improve]\[admin]\[branch-2.10] Unset namespace policy to improve deleting namespace ([#17033](https://togithub.com/apache/pulsar/issues/17033)) ([#19865](https://togithub.com/apache/pulsar/issues/19865))
- \[fix] \[admin] fix incorrect state replication.connected on API partitioned-topic stat ([#19942](https://togithub.com/apache/pulsar/issues/19942))
- \[fix] \[admin] Make response code to 400 instead of 500 when delete topic fails due to enabled geo-replication ([#19879](https://togithub.com/apache/pulsar/issues/19879))
##### Security
- \[fix]\[sec] Upgrade jettison to 1.5.3 ([#19038](https://togithub.com/apache/pulsar/issues/19038))
- \[fix]\[sec] Upgrade woodstox to 5.4.0 ([#19041](https://togithub.com/apache/pulsar/issues/19041))
- \[improve]\[sec] Suppress false positive OWASP reports ([#19105](https://togithub.com/apache/pulsar/issues/19105))
- \[fix]\[misc] do not require encryption on system topics ([#18898](https://togithub.com/apache/pulsar/issues/18898))
- \[fix]\[authorization] Fix the return value of canConsumeAsync ([#19412](https://togithub.com/apache/pulsar/issues/19412))
- \[fix]\[security] Fix secure problem CVE-2017-1000487 ([#19479](https://togithub.com/apache/pulsar/issues/19479))
- \[improve] Upgrade wildfly-eytron (used by debezium) to fix CVE-2022-3143 ([#19333](https://togithub.com/apache/pulsar/issues/19333))
- \[improve]\[misc] Upgrade Netty to 4.1.87.Final ([#19417](https://togithub.com/apache/pulsar/issues/19417))
- \[fix]\[broker] Ignore and remove the replicator cursor when the remote cluster is absent ([#19972](https://togithub.com/apache/pulsar/issues/19972))
- \[Authenticate] fix Invalid signature error when use Kerberos Authentication ([#15121](https://togithub.com/apache/pulsar/issues/15121))
- \[fix]\[sec] Fix transitive critical CVEs in file-system tiered storage ([#19957](https://togithub.com/apache/pulsar/issues/19957))
- \[fix]\[sec] Fix transitive critical CVEs in file-system tiered storage ([#19957](https://togithub.com/apache/pulsar/issues/19957))
##### CI & Test
- \[fix]\[test] ProxyWithAuthorizationTest remove SAN from test certs ([#19594](https://togithub.com/apache/pulsar/issues/19594))
- \[branch-2.10]\[test]Run and fix tests ([#19636](https://togithub.com/apache/pulsar/issues/19636))
- \[test] Fix ServerCnxTest failing after merge of [#19830](https://togithub.com/apache/pulsar/issues/19830)
##### Others
- \[fix]\[build] Resolve OWASP Dependency Check false positives ([#19120](https://togithub.com/apache/pulsar/issues/19120))
- Debezium sources: Support loading config from secrets ([#19163](https://togithub.com/apache/pulsar/issues/19163))
- \[fix]\[proxy] Only go to connecting state once ([#19331](https://togithub.com/apache/pulsar/issues/19331))
- \[fix]\[build] Upgrade dependency-check-maven plugin to fix broken OWASP check ([#19170](https://togithub.com/apache/pulsar/issues/19170))
- \[branch-2.10]\[fix]\[proxy] Fix using wrong client version in pulsar proxy ([#19576](https://togithub.com/apache/pulsar/issues/19576))
- \[branch-2.10]\[fix]\[proxy] Fix using wrong client version in pulsar proxy ([#19576](https://togithub.com/apache/pulsar/issues/19576))
- \[improve] Upgrade lombok to 1.8.26 ([#19426](https://togithub.com/apache/pulsar/issues/19426))
- \[improve] upgrade the bookkeeper version to 4.14.7 ([#19179](https://togithub.com/apache/pulsar/issues/19179))
- \[branch-2.10]\[broker] Support zookeeper read-only config. ([#19156](https://togithub.com/apache/pulsar/issues/19156)) ([#19637](https://togithub.com/apache/pulsar/issues/19637))
- \[improve] Simplify enabling Broker, WS Proxy hostname verification ([#19674](https://togithub.com/apache/pulsar/issues/19674))
- \[cherry-pick]\[branch-2.10] KCA: picking fixes from master ([#19788](https://togithub.com/apache/pulsar/issues/19788))
- \[Build] Make the test JVM exit if OOME occurs ([#14509](https://togithub.com/apache/pulsar/issues/14509))
### [`v2.10.3`](https://togithub.com/apache/pulsar/releases/tag/v2.10.3)
[Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.2...v2.10.3)
##### Broker
- \[improve]\[broker] Omit making a copy of CommandAck when there are no broker interceptors [#18997](https://togithub.com/apache/pulsar/pull/18997)
- \[fix]\[broker] Copy proto command fields into final variables in ServerCnx [#18987](https://togithub.com/apache/pulsar/pull/18987)
- \[improve]\[broker]Add a cache eviction policy:Evicting cache data by the slowest markDeletedPosition [#14985](https://togithub.com/apache/pulsar/issues/14985)
- \[fix]\[broker] Fix broker cache eviction of entries read by active cursors [#17273](https://togithub.com/apache/pulsar/issues/17273)
- \[enh]\[broker] Add metrics for entry cache insertion, eviction [#17248](https://togithub.com/apache/pulsar/issues/17248)
- \[cleanup]\[broker] Extracted interface for EntryCacheManager [#15933](https://togithub.com/apache/pulsar/issues/15933)
- \[improve]\[broker] Support dynamic update cache config [#13679](https://togithub.com/apache/pulsar/issues/13679)
- \[improve]\[broker] refactor ManagedLedger cacheEvictionTask implement [#14488](https://togithub.com/apache/pulsar/issues/14488)
- \[improve]\[broker] Add logs for why namespace bundle been split ([#19003](https://togithub.com/apache/pulsar/issues/19003))
- \[fix]\[broker] Fix deadlock in PendingAckHandleImpl ([#18989](https://togithub.com/apache/pulsar/issues/18989))
- \[fix]\[broker] Branch-2.10 Avoid endless blocking call. ([#18914](https://togithub.com/apache/pulsar/issues/18914))
- \[fix]\[broker]\[functions-worker] Ensure prometheus metrics are grouped by type ([#8407](https://togithub.com/apache/pulsar/issues/8407), [#13865](https://togithub.com/apache/pulsar/issues/13865)) [#15558](https://togithub.com/apache/pulsar/issues/15558)
- \[fix]\[broker]Update interceptor handler exception ([#18940](https://togithub.com/apache/pulsar/issues/18940))
- \[fix]\[broker] Fix incorrect bundle split count metric ([#17970](https://togithub.com/apache/pulsar/issues/17970))
- \[fix]\[broker] Avoid OOM not trigger PulsarByteBufAllocator outOfMemoryListener when use ByteBufAllocator.DEFAULT.heapBuffer in PrometheusMetricsGeneratorUtils ([#18747](https://togithub.com/apache/pulsar/issues/18747))
- \[improve]\[broker] Make Consumer#equals more effective ([#18662](https://togithub.com/apache/pulsar/issues/18662))
- \[fix]\[broker] In the trimDeletedEntries method, release the removed entry ([#18305](https://togithub.com/apache/pulsar/issues/18305))
- \[improve]\[broker] Remove locallyAcquiredLock when removeOwnership ([#18197](https://togithub.com/apache/pulsar/issues/18197))
- \[improve]\[broker] Avoid unnecessary creation of BitSetRecyclable objects [#17998](https://togithub.com/apache/pulsar/issues/17998)
- \[fix]\[broker] add return for PersistentMessageExpiryMonitor#findEntryFailed [#17816](https://togithub.com/apache/pulsar/issues/17816)
- \[fix]\[ml] Persist correct markDeletePosition to prevent message loss ([#18237](https://togithub.com/apache/pulsar/issues/18237))
- \[improve]\[broker] Support setting forceDeleteTenantAllowed dynamically ([#18192](https://togithub.com/apache/pulsar/issues/18192))
- Make BookieId work with PulsarRegistrationDriver (second take) [#17922](https://togithub.com/apache/pulsar/issues/17922)
- \[fix]\[broker] Extract additional servlets to the default directory by… ([#17477](https://togithub.com/apache/pulsar/issues/17477))
- \[improve]\[broker]Improve PersistentMessageExpiryMonitor expire speed when ledger not existed ([#17842](https://togithub.com/apache/pulsar/issues/17842))
- \[fix]\[broker]Fix mutex never released when trimming ([#17911](https://togithub.com/apache/pulsar/issues/17911))
- \[fix]\[broker] Fix if dynamicConfig item in ZK do not exist in broker cause NPE. [#17705](https://togithub.com/apache/pulsar/issues/17705)
- \[fix]\[broker] Fix system service namespace create internal event topic. ([#17867](https://togithub.com/apache/pulsar/issues/17867))
- \[bugfix] Prevent Automatic Topic Creation during namespace deletion [#17609](https://togithub.com/apache/pulsar/issues/17609)
- \[fix]\[broker]Cache invalidation due to concurrent access ([#18076](https://togithub.com/apache/pulsar/issues/18076))
- \[fix]\[broker]add test case for deleting namespace fail when has partitioned system topic ([#17338](https://togithub.com/apache/pulsar/issues/17338))
- Skip creating a subscription replication snapshot if no messages have been published after the topic gets activated on a broker [#16618](https://togithub.com/apache/pulsar/issues/16618)
- \[fix]\[broker] Fix uncompleted future when get the topic policies of a deleted topic ([#18824](https://togithub.com/apache/pulsar/issues/18824))
- \[fix]\[broker] Fix delete system topic clean topic policy ([#18823](https://togithub.com/apache/pulsar/issues/18823))
- \[improve]\[broker]\[PIP-149]Make getList async [#16221](https://togithub.com/apache/pulsar/issues/16221)
- \[fix]\[flaky-test]ManagedCursorMetricsTest.testManagedCursorMetrics [#16878](https://togithub.com/apache/pulsar/issues/16878)
- \[improve]\[broker] System topic writer/reader connection not counted ([#18603](https://togithub.com/apache/pulsar/issues/18603))
- \[improve]\[broker] System topic writer/reader connection not counted. ([#18369](https://togithub.com/apache/pulsar/issues/18369))
- \[fix]\[broker]unify time unit at dropping the backlog on a topic [#17957](https://togithub.com/apache/pulsar/issues/17957)\[fix]\[broker]unify time unit at dropping the backlog on a topic [#17957](https://togithub.com/apache/pulsar/issues/17957)
- \[improve]\[broker] Support setting ForceDeleteNamespaceAllowed dynamically [#18181](https://togithub.com/apache/pulsar/issues/18181)
- \[fix]\[broker] Fix `getPositionAfterN` infinite loop. ([#17971](https://togithub.com/apache/pulsar/issues/17971))
- \[fix]\[broker] Update the log print content of createSubscriptions ([#18024](https://togithub.com/apache/pulsar/issues/18024))
- \[Broker] Make PersistentTopicsBase#internalGetPartitionedMetadata async [#14153](https://togithub.com/apache/pulsar/issues/14153)
- \[fix]\[broker] Fix duplicated schemas creation [#18701](https://togithub.com/apache/pulsar/issues/18701)
- \[improve]\[broker] Using `handle` instead of `handleAsync` to avoid using common pool thread ([#17403](https://togithub.com/apache/pulsar/issues/17403))
- \[fix]\[broker] Fix dispatch duplicated messages with `Exclusive` mode. ([#17237](https://togithub.com/apache/pulsar/issues/17237))
- \[fix]\[broker] Fix the order of resource close in the InMemoryDelayedDeliveryTracker ([#18000](https://togithub.com/apache/pulsar/issues/18000))
- \[improve]\[broker] reduce code duplication to avoid endless wait `CompletableFuture` ([#14853](https://togithub.com/apache/pulsar/issues/14853))
- \[improve]\[ML] Print log when delete empty ledger. ([#17859](https://togithub.com/apache/pulsar/issues/17859))
- \[improve] clean the empty topicAuthenticationMap in zk when revoke permission ([#16815](https://togithub.com/apache/pulsar/issues/16815))
- \[fix]\[broker] fix can not revoke permission after update topic partition ([#17393](https://togithub.com/apache/pulsar/issues/17393))
- \[fix]\[broker] Fix Npe thrown by splitBundle ([#17370](https://togithub.com/apache/pulsar/issues/17370))
- \[fix]\[broker] Fix executeWithRetry result is null ([#17694](https://togithub.com/apache/pulsar/issues/17694))
- \[fix]\[broker] Fix SystemTopicBasedTopicPoliciesService NPE issue ([#17602](https://togithub.com/apache/pulsar/issues/17602))
- \[fix]\[broker] Fix broker cache eviction of entries read by active cursors [#17273](https://togithub.com/apache/pulsar/issues/17273)
- \[fix]\[broker] Fix namespace can not be deleted by force ([#18686](https://togithub.com/apache/pulsar/issues/18686))
- \[fix]\[broker] Create replicated subscriptions for new partitions when needed ([#18659](https://togithub.com/apache/pulsar/issues/18659))
- \[fix]\[broker] DnsResolverUtil.TTL should be greater than zero ([#18565](https://togithub.com/apache/pulsar/issues/18565))
- \[fix]\[broker] Correctly set byte and message out totals per subscription ([#18451](https://togithub.com/apache/pulsar/issues/18451))
- \[fix]\[broker] fix delete_when_subscriptions_caught_up doesn't work while have active consumers ([#18320](https://togithub.com/apache/pulsar/issues/18320))
- \[improve]\[broker]consumer backlog eviction policy should not reset read position for consumer ([#18037](https://togithub.com/apache/pulsar/issues/18037))
- \[fix]\[broker] Fix NPE when ResourceGroupService execute scheduled task. [#17840](https://togithub.com/apache/pulsar/issues/17840)
- \[fix]\[storage] Autorecovery default reppDnsResolverClass to ZkBookieRackAffinityMapping ([#15640](https://togithub.com/apache/pulsar/issues/15640))
- \[broker] Fixed delayed delivery after read operation error ([#18098](https://togithub.com/apache/pulsar/issues/18098))
- \[fix]\[broker] Fix issue where leader broker information isn't available after 10 minutes ([#17401](https://togithub.com/apache/pulsar/issues/17401))
- \[fix]\[broker] Make full async call in PulsarAuthorizationProvider ([#18050](https://togithub.com/apache/pulsar/issues/18050))
##### Transaction
- \[fix]\[txn] Transaction buffer recover blocked by readNext [#18833](https://togithub.com/apache/pulsar/issues/18833)
- \[fix]\[txn] transaction pending ack store future not completely problem ([#18943](https://togithub.com/apache/pulsar/issues/18943))
- \[fix]\[txn] Fix PendingAckHandleImpl when `pendingAckStoreProvider.checkInitializedBefore` failed ([#18859](https://togithub.com/apache/pulsar/issues/18859))
- \[improve]\[txn] Add getState in transaction for client API ([#17423](https://togithub.com/apache/pulsar/issues/17423))
- \[improve]\[txn] Implementation of Delayed Transaction Messages ([#17548](https://togithub.com/apache/pulsar/issues/17548))
##### Pulsar IO and Pulsar Functions
- \[fix]\[io] Only bundle kafka schema registry client ([#18931](https://togithub.com/apache/pulsar/issues/18931))
- \[fix]\[fn] Typo in method name ([#18844](https://togithub.com/apache/pulsar/issues/18844))
- \[fix]\[function] Fix invalid metric type ` gauge ` ([#18129](https://togithub.com/apache/pulsar/issues/18129))
- \[fix]\[fn] fix function failed to start if no `typeClassName` provided in `FunctionDetails` ([#18111](https://togithub.com/apache/pulsar/issues/18111))
##### Tiered Storage
- \[fix]\[offload] Fix numerical overflow bug while reading data from tiered storage ([#18595](https://togithub.com/apache/pulsar/issues/18595))
- \[fix]\[offload] Fix memory leak while Offloading ledgers ([#18500](https://togithub.com/apache/pulsar/issues/18500))
##### Pulsar SQL
- \[fix]\[sql] Fix message without schema issue. ([#18745](https://togithub.com/apache/pulsar/issues/18745))
##### CLI
- \[fix]\[cli] Fix CLI client produce don't able to use multiple -m send multiple messages ([#18238](https://togithub.com/apache/pulsar/issues/18238))
- \[fix]\[cli] Check numMessages after incrementing counter [#17826](https://togithub.com/apache/pulsar/issues/17826)
#### Admin
- \[improve]\[admin] Fix NPE in admin-CLI topic stats command ([#18326](https://togithub.com/apache/pulsar/issues/18326))
- \[improve]\[admin] add topic name and sub name for NotFound error message ([#15606](https://togithub.com/apache/pulsar/issues/15606))
This PR contains the following updates:
2.6.1
->2.10.6
By merging this PR, the below issues will be automatically resolved and closed:
Release Notes
apache/pulsar (org.apache.pulsar:pulsar-client-admin)
### [`v2.10.6`](https://togithub.com/apache/pulsar/releases/tag/v2.10.6) [Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.5...v2.10.6) #### Broker ##### Improvements - \[improve]\[broker] Consistently add fine-grain authorization to REST API [22202](https://togithub.com/apache/pulsar/pull/22202) - \[improve] \[broker] Do not print an Error log when responding to `HTTP-404` when calling `Admin API` and the topic does not exist. [21995](https://togithub.com/apache/pulsar/pull/21995) - \[improve]\[proxy] Fix comment about enableProxyStatsEndpoints [21757](https://togithub.com/apache/pulsar/pull/21757) - \[improve]\[broker]\[PIP-318] Support not retaining null-key message during topic compaction [21578](https://togithub.com/apache/pulsar/pull/21578) - \[improve] \[client] Merge lookup requests for the same topic [21232](https://togithub.com/apache/pulsar/pull/21232) - \[improve] \[broker] Let the producer request success at the first time if the previous one is inactive [21220](https://togithub.com/apache/pulsar/pull/21220) - \[improve] \[proxy] Not close the socket if lookup failed caused by too many requests [21216](https://togithub.com/apache/pulsar/pull/21216) - \[improve] \[broker] Not close the socket if lookup failed caused by bundle unloading or metadata ex [21211](https://togithub.com/apache/pulsar/pull/21211) - \[improve] \[broker] Print warn log if ssl handshake error & print ledger id when switch ledger [21201](https://togithub.com/apache/pulsar/pull/21201) - \[improve] \[broker] improve read entry error log for troubleshooting [21169](https://togithub.com/apache/pulsar/pull/21169) - \[improve]\[proxy] Support disabling metrics endpoint [21031](https://togithub.com/apache/pulsar/pull/21031) - \[improve]\[broker] Improve cache handling for partitioned topic metadata when doing lookup [21063](https://togithub.com/apache/pulsar/pull/21063) - \[improve]\[broker] Avoid print redirect exception log when get list from bundle [20846](https://togithub.com/apache/pulsar/pull/20846) - \[improve]\[sql] Fix the wrong format of the logs [20907](https://togithub.com/apache/pulsar/pull/20907) - \[improve]\[broker] Add consumer-id into the log when doing subscribe. [20568](https://togithub.com/apache/pulsar/pull/20568) - \[improve] \[broker] Print warn log if compaction failure [19405](https://togithub.com/apache/pulsar/pull/19405) - \[improve]\[admin]internalGetMessageById shouldn't be allowed on partitioned topic [19013](https://togithub.com/apache/pulsar/pull/19013) ##### Fixes - \[fix]\[sec] Upgrade Jetty to 9.4.54.v20240208 to address CVE-2024-22201 [22144](https://togithub.com/apache/pulsar/pull/22144) - \[fix]\[sec] Upgrade commons-compress to 1.26.0 [22086](https://togithub.com/apache/pulsar/pull/22086) - \[fix]\[broker] Support running docker container with gid != 0 [22081](https://togithub.com/apache/pulsar/pull/22081) - \[fix]\[broker] Sanitize values before logging in apply-config-from-env.py script [22044](https://togithub.com/apache/pulsar/pull/22044) - \[fix]\[broker]\[branch-3.1] Avoid PublishRateLimiter use an already closed RateLimiter [22011](https://togithub.com/apache/pulsar/pull/22011) - \[fix] \[broker] Replication stopped due to unload topic failed [21947](https://togithub.com/apache/pulsar/pull/21947) - \[fix] \[broker] fix write all compacted out entry into compacted topic [21917](https://togithub.com/apache/pulsar/pull/21917) - \[fix] \[ml] Fix retry mechanism of deleting ledgers to invalidate [21869](https://togithub.com/apache/pulsar/pull/21869) - \[fix]\[broker]Fix NonPersistentDispatcherMultipleConsumers ArrayIndexOutOfBoundsException [21856](https://togithub.com/apache/pulsar/pull/21856) - \[fix]\[broker] Fix String wrong format [21829](https://togithub.com/apache/pulsar/pull/21829) - \[fix] \[broker] Update topic policies as much as possible when some ex was thrown [21810](https://togithub.com/apache/pulsar/pull/21810) - \[fix]\[broker] Fix the wrong value of BrokerSrevice.maxUnackedMsgsPerDispatcher [21765](https://togithub.com/apache/pulsar/pull/21765) - \[fix]\[sec] Exclude avro from hadoop-client [21719](https://togithub.com/apache/pulsar/pull/21719) - \[fix]\[test] Fix PerformanceProducer send count error [21706](https://togithub.com/apache/pulsar/pull/21706) - \[fix]\[broker] Fix the issue of topics possibly being deleted. [21704](https://togithub.com/apache/pulsar/pull/21704) - \[fix]\[broker] Fix typo in the config key [21690](https://togithub.com/apache/pulsar/pull/21690) - \[fix] \[broker] network package lost if enable haProxyProtocolEnabled [21684](https://togithub.com/apache/pulsar/pull/21684) - \[fix]\[broker] Fix memory leak during topic compaction [21647](https://togithub.com/apache/pulsar/pull/21647) - \[fix]\[broker] Duplicate LedgerOffloader creation when namespace/topic… [21591](https://togithub.com/apache/pulsar/pull/21591) - \[fix]\[broker] Correct schema deletion for partitioned topic [21574](https://togithub.com/apache/pulsar/pull/21574) - \[fix]\[broker] Fix namespace bundle stuck in unloading status ([#21445](https://togithub.com/apache/pulsar/issues/21445)) [21567](https://togithub.com/apache/pulsar/pull/21567) - \[fix]\[broker] Fix create topic with different auto creation strategies causes race condition [21545](https://togithub.com/apache/pulsar/pull/21545) - \[fix] \[ml] Fix orphan scheduled task for ledger create timeout check [21542](https://togithub.com/apache/pulsar/pull/21542) - \[fix] \[broker] Fix thousands orphan PersistentTopic caused OOM [21540](https://togithub.com/apache/pulsar/pull/21540) - \[fix]\[ml] Fix unfinished callback when deleting managed ledger [21530](https://togithub.com/apache/pulsar/pull/21530) - \[fix]\[broker] Fix setReplicatedSubscriptionStatus incorrect behavior [21510](https://togithub.com/apache/pulsar/pull/21510) - \[fix]\[broker] Do not write replicated snapshot marker when the topic which is not enable replication [21495](https://togithub.com/apache/pulsar/pull/21495) - \[branch-2.10]\[fix]\[proxy] Move status endpoint out of auth coverage [21494](https://togithub.com/apache/pulsar/pull/21494) - \[fix]\[broker] Avoid pass null role in MultiRolesTokenAuthorizationProvider [21486](https://togithub.com/apache/pulsar/pull/21486) - \[fix]\[broker] Fix the deadlock when using BookieRackAffinityMapping with rackaware policy [21481](https://togithub.com/apache/pulsar/pull/21481) - \[fix]\[broker] Fix namespace bundle stuck in unloading status [21445](https://togithub.com/apache/pulsar/pull/21445) - \[fix]\[broker] Fix MultiRoles token provider NPE when using anonymous clients [21429](https://togithub.com/apache/pulsar/pull/21429) - \[fix]\[proxy] Move status endpoint out of auth coverage [21428](https://togithub.com/apache/pulsar/pull/21428) - \[fix]\[sec] Upgrade Netty to 4.1.100 to address CVE-2023-44487 [21397](https://togithub.com/apache/pulsar/pull/21397) - \[fix]\[sec] Bump avro version to 1.11.3 for CVE-2023-39410 [21341](https://togithub.com/apache/pulsar/pull/21341) - \[fix]\[test] Fix flaky test NarUnpackerTest [21328](https://togithub.com/apache/pulsar/pull/21328) - \[fix] \[bk-client] Fix bk client MinNumRacksPerWriteQuorum and EnforceMinNumRacksPerWriteQuorum not work problem. [21327](https://togithub.com/apache/pulsar/pull/21327) - \[fix]\[ml] Fix thread safe issue with RangeCache.put and RangeCache.clear [21302](https://togithub.com/apache/pulsar/pull/21302) - \[fix]\[sec] Upgrade snappy-java to 1.1.10.5 [21280](https://togithub.com/apache/pulsar/pull/21280) - \[fix]\[txn] Ack all message ids when ack chunk messages with transaction. [21268](https://togithub.com/apache/pulsar/pull/21268) - \[fix]\[broker]\[branch-2.10] Fix inconsistent topic policy [21258](https://togithub.com/apache/pulsar/pull/21258) - \[fix] \[ml] fix wrong msg backlog of non-durable cursor after trim ledgers [21250](https://togithub.com/apache/pulsar/pull/21250) - \[fix] \[ml] Reader can set read-pos to a deleted ledger [21248](https://togithub.com/apache/pulsar/pull/21248) - \[fix]\[broker]Fixed produce and consume when anonymousUserRole enabled [21237](https://togithub.com/apache/pulsar/pull/21237) - \[fix]\[broker] Fix inconsistent topic policy [21231](https://togithub.com/apache/pulsar/pull/21231) - \[fix]\[broker] Fixed reset for AggregatedNamespaceStats [21225](https://togithub.com/apache/pulsar/pull/21225) - \[fix]\[broker] Make the new exclusive consumer instead the inactive one faster [21183](https://togithub.com/apache/pulsar/pull/21183) - \[fix]\[broker]\[branch-2.10] Backport fix UniformLoadShedder selecet wrong overloadbroker and underloadbroker [21182](https://togithub.com/apache/pulsar/pull/21182) - \[Branch-2.10] \[imporve] \[bookie] Upgrade BookKeeper dependency to 4.14.8 for branch 2.10 [21148](https://togithub.com/apache/pulsar/pull/21148) - \[fix]\[client] Fix repeat consume when using n-ack and batched messages [21116](https://togithub.com/apache/pulsar/pull/21116) - \[fix]\[client] Avoid ack hole for chunk message [21101](https://togithub.com/apache/pulsar/pull/21101) - \[branch-2.10] \[fix] \[broker] Fix isolated group not work problem. [21098](https://togithub.com/apache/pulsar/pull/21098) - \[fix] \[broker] Fix isolated group not work problem. [21096](https://togithub.com/apache/pulsar/pull/21096) - \[fix]\[broker] Fix write duplicate entries into the compacted ledger after RawReader reconnects [21081](https://togithub.com/apache/pulsar/pull/21081) - \[fix]\[client] Fix consumer can't consume resent chunked messages [21070](https://togithub.com/apache/pulsar/pull/21070) - \[fix]\[broker] Make sure all inflight writes have finished before completion of compaction [21067](https://togithub.com/apache/pulsar/pull/21067) - \[fix]\[broker] Use MessageDigest.isEqual when comparing digests [21061](https://togithub.com/apache/pulsar/pull/21061) - \[fix]\[misc] Bump GRPC version to 1.55.3 to fix CVE [21057](https://togithub.com/apache/pulsar/pull/21057) - \[fix] \[bk] Correctct the bookie info after ZK client is reconnected [21035](https://togithub.com/apache/pulsar/pull/21035) - \[fix]\[io] Update test certs for Elasticsearch [21001](https://togithub.com/apache/pulsar/pull/21001) - \[fix]\[broker] Fix can't stop phase-two of compaction even though messageId read reaches lastReadId [20988](https://togithub.com/apache/pulsar/pull/20988) - \[fix]\[broker] Fix message loss during topic compaction [20980](https://togithub.com/apache/pulsar/pull/20980) - \[fix]\[broker] Fix incorrect number of read compacted entries [20978](https://togithub.com/apache/pulsar/pull/20978) - \[fix]\[broker]Fix chunked messages will be filtered by duplicating [20948](https://togithub.com/apache/pulsar/pull/20948) - \[fix]\[broker]Check that the super user role is in the MultiRolesTokenAuthorizationProvider plugin [20939](https://togithub.com/apache/pulsar/pull/20939) - \[fix] \[log] fix the vague response if topic not found [20932](https://togithub.com/apache/pulsar/pull/20932) - \[fix]\[broker] fix MessageDeduplication throw NPE when enable broker dedup and set namespace disable deduplication. [20905](https://togithub.com/apache/pulsar/pull/20905) - \[fix] \[ml] fix discontinuous ledger deletion [20898](https://togithub.com/apache/pulsar/pull/20898) - \[fix]\[broker] In replication scenario, remote consumer could not be registered if there has no message was sent [20888](https://togithub.com/apache/pulsar/pull/20888) - \[branch-2.10]\[fix]\[broker] Fix inconsensus namespace policies by getPoliciesIfCached [20873](https://togithub.com/apache/pulsar/pull/20873) - \[branch-2.10]\[fix]\[broker] Inconsistent behaviour for topic auto_creation [20872](https://togithub.com/apache/pulsar/pull/20872) - \[fix]\[broker] Fix inconsensus namespace policies by `getPoliciesIfCached` [20855](https://togithub.com/apache/pulsar/pull/20855) - \[fix]\[broker] Avoid infinite bundle unloading [20822](https://togithub.com/apache/pulsar/pull/20822) - \[fix]\[broker] Fix get topic policies as null during clean cache [20763](https://togithub.com/apache/pulsar/pull/20763) - \[fix] \[broker] do not filter system topic while shedding. [18949](https://togithub.com/apache/pulsar/pull/18949) - \[improve] Introduce the sync() API to ensure consistency on reads during critical metadata operation paths [18518](https://togithub.com/apache/pulsar/pull/18518) - \[fix]\[broker] Fix namespace not found will cause request timeout [18512](https://togithub.com/apache/pulsar/pull/18512) - \[fix]\[io] exclude logback dependency for canal connector [18226](https://togithub.com/apache/pulsar/pull/18226) #### Client ##### Fixes - \[fix]\[client] Fix ConsumerBuilderImpl#subscribe silent stuck when using pulsar-client:3.0.x with jackson-annotations prior to 2.12.0 [21985](https://togithub.com/apache/pulsar/pull/21985) - \[fix] \[client] fix reader.hasMessageAvailable return false when incoming queue is not empty [21259](https://togithub.com/apache/pulsar/pull/21259) - \[fix]\[client] fix same producer/consumer use more than one connection per broker [21144](https://togithub.com/apache/pulsar/pull/21144) - \[fix]\[client] Fix repeat consume when using n-ack and batched messages [21116](https://togithub.com/apache/pulsar/pull/21116) - \[fix]\[client] Avoid ack hole for chunk message [21101](https://togithub.com/apache/pulsar/pull/21101) - \[fix]\[client] Fix consumer can't consume resent chunked messages [21070](https://togithub.com/apache/pulsar/pull/21070) - \[fix] \[cli] the variable producerName of BatchMsgContainer is null [20819](https://togithub.com/apache/pulsar/pull/20819) - \[fix]\[client] fix negative message re-delivery twice issue [20750](https://togithub.com/apache/pulsar/pull/20750) ### [`v2.10.5`](https://togithub.com/apache/pulsar/releases/tag/v2.10.5) [Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.4...v2.10.5) ##### Broker - \[fix]\[broker] In replication scenario, remote consumer could not be registered if there has no message was sent ([#20888](https://togithub.com/apache/pulsar/issues/20888)) - \[improve] \[broker] Print warn log if compaction failure ([#19405](https://togithub.com/apache/pulsar/issues/19405)) - \[branch-2.10]\[fix]\[broker] Fix inconsensus namespace policies by getPoliciesIfCached ([#20873](https://togithub.com/apache/pulsar/issues/20873)) - \[branch-2.10]\[fix]\[broker] Inconsistent behaviour for topic auto_creation ([#20872](https://togithub.com/apache/pulsar/issues/20872)) - \[fix] \[broker] Can not receive any messages after switching to standby cluster ([#20767](https://togithub.com/apache/pulsar/issues/20767)) - \[improve] \[broker] Add consumer-id into the log when doing subscribe. ([#20568](https://togithub.com/apache/pulsar/issues/20568)) - \[fix]\[broker]\[branch-2.10] Fix NPE when resetting Replicator's cursor by position. ([#20597](https://togithub.com/apache/pulsar/issues/20597)) ([#20781](https://togithub.com/apache/pulsar/issues/20781)) - \[fix]\[broker] Fix namespace deletion if \__change_events topic has not been created yet ([#18804](https://togithub.com/apache/pulsar/issues/18804)) - \[fix]\[schema] Only handle exception when there has ([#20730](https://togithub.com/apache/pulsar/issues/20730)) - \[fix]\[broker] Topic policy can not work well if replay policy message has any exception. ([#20613](https://togithub.com/apache/pulsar/issues/20613)) - \[fix]\[broker] Fix return the earliest position when query position by timestamp. ([#20457](https://togithub.com/apache/pulsar/issues/20457)) - \[fix]\[broker] Return if AbstractDispatcherSingleActiveConsumer closed ([#19934](https://togithub.com/apache/pulsar/issues/19934)) - \[broker] clean inactive bundle from bundleData in loadData and bundlesCache ([#13974](https://togithub.com/apache/pulsar/issues/13974)) - \[fix]\[branch-2.10] Fix compilation issue introduced by fixing Repeated messages of shared dispatcher ([#16812](https://togithub.com/apache/pulsar/issues/16812)) - Issue 16802: fix Repeated messages of shared dispatcher ([#16812](https://togithub.com/apache/pulsar/issues/16812)) - \[fix]\[branch-2.10]Fix compilation issue introduced by Save createIfMissing in TopicLoadingContext ([#19993](https://togithub.com/apache/pulsar/issues/19993)) - \[improve]\[broker] Save createIfMissing in TopicLoadingContext ([#19993](https://togithub.com/apache/pulsar/issues/19993)) - \[fix]\[broker] Invalidate metadata children cache after key deleted ([#20363](https://togithub.com/apache/pulsar/issues/20363)) - \[improve] \[broker] Avoid PersistentSubscription.expireMessages logic check backlog twice. ([#20416](https://togithub.com/apache/pulsar/issues/20416)) - \[fix]\[broker]fix the publish latency spike issue with large number of producers ([#20607](https://togithub.com/apache/pulsar/issues/20607)) - \[fix]\[branch-2.10] Fix duplicated deleting topics ([#20685](https://togithub.com/apache/pulsar/issues/20685)) - \[improve]\[broker]\[branch-2.10] Backport Linux metrics changes from master branch ([#20659](https://togithub.com/apache/pulsar/issues/20659)) - \[cleanup]\[broker] Validate authz earlier in delete subscription logic ([#20549](https://togithub.com/apache/pulsar/issues/20549)) - \[fix]\[broker] release orphan replicator after topic closed ([#20567](https://togithub.com/apache/pulsar/issues/20567)) - \[fix]\[broker] REST Client Producer fails with TLS only ([#20535](https://togithub.com/apache/pulsar/issues/20535)) - \[fix]\[broker] Restore solution for certain topic unloading race conditions ([#20527](https://togithub.com/apache/pulsar/issues/20527)) - \[fix]\[ml] There are two same-named managed ledgers in the one broker ([#18688](https://togithub.com/apache/pulsar/issues/18688)) - \[fix]\[broker] Fix skip message API when hole messages exists ([#20326](https://togithub.com/apache/pulsar/issues/20326)) - \[fix]\[broker] If ledger lost, cursor mark delete position can not forward ([#18620](https://togithub.com/apache/pulsar/issues/18620)) - \[fix]\[broker] partitioned \__change_events topic is policy topic ([#20392](https://togithub.com/apache/pulsar/issues/20392)) - \[fix]\[ml] Fix ledger left in OPEN state when enabling `inactiveLedgerRollOverTimeMs` ([#20276](https://togithub.com/apache/pulsar/issues/20276)) - \[fix]\[broker] Fix default bundle size used while setting bookie affinity ([#20250](https://togithub.com/apache/pulsar/issues/20250)) - \[fix]\[broker] Fix the behavior of delayed message in Key_Shared mode ([#20233](https://togithub.com/apache/pulsar/issues/20233)) - \[improve]\[broker] Get lowest PositionImpl from NavigableSet ([#18278](https://togithub.com/apache/pulsar/issues/18278)) - \[fix] \[broker] error TimeUnit to record publish latency ([#20074](https://togithub.com/apache/pulsar/issues/20074)) - \[fix] \[broker] In Key_Shared mode: remove unnecessary mechanisms of message skip to avoid unnecessary consumption stuck ([#20335](https://togithub.com/apache/pulsar/issues/20335)) - \[fix]\[broker]Fix deadlock of metadata store ([#20189](https://togithub.com/apache/pulsar/issues/20189)) - \[fix] \[broker] \[branch-2.10] Upgrade rocksDB version to 6.16.4 to keep sync with BookKeeper 4.14.7 ([#20312](https://togithub.com/apache/pulsar/issues/20312)) - \[improve] \[broker] Skip split bundle if only one broker ([#20190](https://togithub.com/apache/pulsar/issues/20190)) - \[fix]\[monitor] topic with double quote breaks the prometheus format ([#20230](https://togithub.com/apache/pulsar/issues/20230)) - \[fix]\[broker] Fix RoaringBitmap.contains can't check value 65535 ([#20176](https://togithub.com/apache/pulsar/issues/20176)) - \[fix]\[broker] Fix the reason label of authentication metrics ([#20030](https://togithub.com/apache/pulsar/issues/20030)) - \[fix] \[broker] Fix infinite ack of Replicator after topic is closed ([#20232](https://togithub.com/apache/pulsar/issues/20232)) - \[fix] \[broker] Producer created by replicator is not displayed in topic stats ([#20229](https://togithub.com/apache/pulsar/issues/20229)) - \[fix] \[broker] delete topic failed if disabled system topic ([#19735](https://togithub.com/apache/pulsar/issues/19735)) - \[fix] \[ml] make the result of delete cursor is success if cursor is deleted ([#19825](https://togithub.com/apache/pulsar/issues/19825)) - \[fix] \[broker] Fast fix infinite HTTP call getSubscriptions caused by wrong topicName ([#20131](https://togithub.com/apache/pulsar/issues/20131)) - \[fix]\[broker] Fix issue where msgRateExpired may not refresh forever ([#19759](https://togithub.com/apache/pulsar/issues/19759)) - \[fix]\[broker] Fix can't send ErrorCommand when message is null value ([#19899](https://togithub.com/apache/pulsar/issues/19899)) - \[fix]\[broker] Fix Return value of getPartitionedStats doesn't contain subscription type ([#20210](https://togithub.com/apache/pulsar/issues/20210)) - \[branch-2.10]\[fix]\[build] Upgrade swagger version to fix CVE-2022-1471 ([#20172](https://togithub.com/apache/pulsar/issues/20172)) - \[fix]\[broker] Fix getPartitionedStats miss subscription's messageAckRate ([#19870](https://togithub.com/apache/pulsar/issues/19870)) - \[fix] Use scheduled executor in BinaryProtoLookupService ([#20043](https://togithub.com/apache/pulsar/issues/20043)) - \[improve] \[broker] Fix broker restart logic ([#20113](https://togithub.com/apache/pulsar/issues/20113)) ##### Transaction - \[fix] \[txn] fix consumer can receive aborted txn message when readType is replay ([#19815](https://togithub.com/apache/pulsar/issues/19815)) ##### Pulsar IO and Pulsar Functions - \[fix]\[io]\[branch-2.10] Not restart instance when kafka source poll exception. ([#20816](https://togithub.com/apache/pulsar/issues/20816)) - \[fix]\[offload] Filesystem offloader class not found hadoop-hdfs-client ([#20365](https://togithub.com/apache/pulsar/issues/20365)) - \[fix]\[fn] Make KubernetesRuntime translate characters in function tenant, namespace, and name during function removal to avoid label errors ([#19584](https://togithub.com/apache/pulsar/issues/19584)) - \[fix]\[fn] Fix JavaInstanceStarter inferring type class name error ([#19896](https://togithub.com/apache/pulsar/issues/19896)) - \[fix]\[io] Close the kafka source connector got stuck ([#20698](https://togithub.com/apache/pulsar/issues/20698)) - \[fix]\[fn] Exit JVM when main thread throws exception ([#20689](https://togithub.com/apache/pulsar/issues/20689)) - Optimize conusmer pause ([#14566](https://togithub.com/apache/pulsar/issues/14566)) - \[fix]\[broker] Fix the publish latency spike from the contention of MessageDeduplication ([#20647](https://togithub.com/apache/pulsar/issues/20647)) - \[fix]\[fn] Configure pulsar admin for TLS ([#20533](https://togithub.com/apache/pulsar/issues/20533)) - \[fix]\[fn] Go functions must retrieve consumers by non-particioned topic ID ([#20413](https://togithub.com/apache/pulsar/issues/20413)) - \[fix]\[io] Close the kafka source connector if there is uncaught exception ([#20479](https://togithub.com/apache/pulsar/issues/20479)) - \[fix]\[fn] Go functions need to use static grpcPort in k8s runtime ([#20404](https://togithub.com/apache/pulsar/issues/20404)) - \[fix]\[fn] Make pulsar-admin support update py/go with package url ([#19897](https://togithub.com/apache/pulsar/issues/19897)) - \[fix]\[txn] Fix transaction is not aborted when send or ACK failed ([#20240](https://togithub.com/apache/pulsar/issues/20240)) ##### CLI - \[fix] \[cli] the variable producerName of BatchMsgContainer is null ([#20819](https://togithub.com/apache/pulsar/issues/20819)) - \[fix]\[ci] Update nar maven plugin version to fix excessive downloads ([#20410](https://togithub.com/apache/pulsar/issues/20410)) ##### Admin - \[improve]\[admin] Return BAD_REQUEST on cluster data is null for createCluster ([#20346](https://togithub.com/apache/pulsar/issues/20346)) ##### Security - \[fix]\[sec] Upgrade snappy-java to address multiple CVEs ([#20604](https://togithub.com/apache/pulsar/issues/20604)) - \[fix]\[sec] Upgrade Guava to 32.0.0 to address CVE-2023-2976 ([#20459](https://togithub.com/apache/pulsar/issues/20459)) - \[improve]\[misc] Upgrade Netty to 4.1.93.Final ([#20423](https://togithub.com/apache/pulsar/issues/20423)) - \[improve]\[misc] Upgrade Netty to 4.1.89.Final ([#19649](https://togithub.com/apache/pulsar/issues/19649)) - \[fix]\[sec] Upgrade sqlite-jdbc to resolve CVE-2023-32697 ([#20411](https://togithub.com/apache/pulsar/issues/20411)) ##### CI & Test - \[fix]\[test] Replace test call to Auth0 with call to WireMock ([#20465](https://togithub.com/apache/pulsar/issues/20465)) - \[fix]\[test] Fix flaky testCreateTopicWithZombieReplicatorCursor ([#20037](https://togithub.com/apache/pulsar/issues/20037)) \*\[fix]\[flaky-test]NamespaceServiceTest.flaky/testModularLoadManagerRemoveBundleAndLoad ([#17487](https://togithub.com/apache/pulsar/issues/17487)) - \[improve]\[test]\[branch-2.10] Backport disabling disk usage threshold for Elastic Testcontainers ([#20676](https://togithub.com/apache/pulsar/issues/20676)) ##### Others - \[fix]\[build]Fix compatibility issue caused by [#20819](https://togithub.com/apache/pulsar/issues/20819) ([#20834](https://togithub.com/apache/pulsar/issues/20834)) - \[fix]\[build] Mongo is fixed for 2.10.5 ([#20810](https://togithub.com/apache/pulsar/issues/20810)) - \[fix]\[meta] Bookie Info lost by notification race condition. ([#20642](https://togithub.com/apache/pulsar/issues/20642)) - \[fix] \[meta]Switch to the metadata store thread after zk operation ([#20303](https://togithub.com/apache/pulsar/issues/20303)) - \[fix]\[ws] Remove unnecessary ping/pong implementation ([#20733](https://togithub.com/apache/pulsar/issues/20733)) - fix: bundle-data metadata leak because of bundlestats was not clean ([#17095](https://togithub.com/apache/pulsar/issues/17095)) - \[fix] \[Perf] PerformanceProducer do not produce expected number of messages. ([#19775](https://togithub.com/apache/pulsar/issues/19775)) - \[fix]\[meta] Adding the missed bookie id in the registration manager. ([#20641](https://togithub.com/apache/pulsar/issues/20641)) - \[fix]\[build] Don't publish docker image with "latest" tag to docker repository - \[fix]\[build]\[branch-2.10] Fix ci-license check ([#20505](https://togithub.com/apache/pulsar/issues/20505)) - \[improve]\[monitor] Add JVM start time metric ([#20381](https://togithub.com/apache/pulsar/issues/20381)) - \[fix]\[build] update the zookeeper version to 3.6.4 ([#20333](https://togithub.com/apache/pulsar/issues/20333)) - \[fix]\[monitor] Fix the partitioned publisher topic stat aggregation bug ([#18807](https://togithub.com/apache/pulsar/issues/18807)) - \[fix]\[meta] deadlock of zkSessionWatcher when zkConnection loss ([#20122](https://togithub.com/apache/pulsar/issues/20122)) - \[improve]\[build] Upgrade dependencies to reduce CVE. ([#20162](https://togithub.com/apache/pulsar/issues/20162)) - \[branch-2.10]\[improve]\[build] Upgrade snakeyaml version to 2.0 ([#20118](https://togithub.com/apache/pulsar/issues/20118)) ##### Client - \[fix] \[client] Messages lost when consumer reconnect ([#20695](https://togithub.com/apache/pulsar/issues/20695)) - \[fix]\[client] Make the whole grabCnx() progress atomic ([#20595](https://togithub.com/apache/pulsar/issues/20595)) - \[fix]\[client] Fix race condition that leads to caching failed CompletableFutures in ConnectionPool ([#19661](https://togithub.com/apache/pulsar/issues/19661)) - \[fix]\[client] Fix deadlock issue of consumer while using multiple IO threads ([#20669](https://togithub.com/apache/pulsar/issues/20669)) - \[fix]\[client] Cache empty schema version in ProducerImpl schemaCache. ([#19929](https://togithub.com/apache/pulsar/issues/19929)) - \[fix]\[fn] Reset idle timer correctly ([#20450](https://togithub.com/apache/pulsar/issues/20450)) - \[fix]\[client] Release the orphan producers after the primary consumer is closed ([#19858](https://togithub.com/apache/pulsar/issues/19858)) - \[fix]\[client] Fix DeadLetterProducer creation callback blocking client io thread. ([#19930](https://togithub.com/apache/pulsar/issues/19930)) ### [`v2.10.4`](https://togithub.com/apache/pulsar/releases/tag/v2.10.4) [Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.3...v2.10.4) ##### Broker - \[improve]\[broker] Add ref count for sticky hash to optimize the performance of Key_Shared subscription ([#19167](https://togithub.com/apache/pulsar/issues/19167)) - \[fix]\[broker] Pass subName for subscription operations in ServerCnx ([#19184](https://togithub.com/apache/pulsar/issues/19184)) - \[fix]\[broker] AbstractBatchedMetadataStore - use AlreadyClosedException instead of IllegalStateException ([#19284](https://togithub.com/apache/pulsar/issues/19284)) - \[fix]\[broker] Fix open cursor with null-initialPosition result with earliest position ([#18416](https://togithub.com/apache/pulsar/issues/18416)) - \[fix] \[ml] Topics stats shows msgBacklog but there reality no backlog ([#19275](https://togithub.com/apache/pulsar/issues/19275)) - \[improve]\[broker] Added isActive in ManagedCursorImpl ([#19341](https://togithub.com/apache/pulsar/issues/19341)) - \[improve]\[broker] Replaced checkBackloggedCursors with checkBackloggedCursor(single subscription check) upon subscription ([#19343](https://togithub.com/apache/pulsar/issues/19343)) - \[fix]\[broker] fixed the build error for pattern matching variable in lower JVM versions ([#19362](https://togithub.com/apache/pulsar/issues/19362)) - \[fix]\[broker]optimize the shutdown sequence of broker service when it close ([#16756](https://togithub.com/apache/pulsar/issues/16756)) - \[fix]\[broker] Pass subscriptionName to auth service ([#17123](https://togithub.com/apache/pulsar/issues/17123)) ([#19423](https://togithub.com/apache/pulsar/issues/19423)) - \[fix]\[broker]fix multi invocation for ledger createComplete ([#18975](https://togithub.com/apache/pulsar/issues/18975)) - \[fix] \[broker] getLastMessageId returns a wrong batch index of last message if enabled read compacted ([#18877](https://togithub.com/apache/pulsar/issues/18877)) - \[fix]\[broker] Support deleting partitioned topics with the keyword `-partition-` ([#19230](https://togithub.com/apache/pulsar/issues/19230)) - \[fix] \[ml] Fix the incorrect total size if use ML interceptor ([#19404](https://togithub.com/apache/pulsar/issues/19404)) - \[improve]\[broker] Added isActive in ManagedCursorImpl ([#19341](https://togithub.com/apache/pulsar/issues/19341)) - \[improve]\[broker] Added isActive in ManagedCursorImpl ([#19341](https://togithub.com/apache/pulsar/issues/19341)) - \[improve]\[broker] Copy subscription properties during updating the topic partition number. ([#19223](https://togithub.com/apache/pulsar/issues/19223)) - \[fix]\[broker] Expect msgs after server initiated CloseProducer ([#19446](https://togithub.com/apache/pulsar/issues/19446)) - \[fix]\[broker] Fix PulsarRegistrationClient and ZkRegistrationClient not aware rack info problem. ([#18672](https://togithub.com/apache/pulsar/issues/18672)) - \[fix]\[ml] Fix potential NPE cause future never complete. ([#19415](https://togithub.com/apache/pulsar/issues/19415)) - \[fix] \[ml] The atomicity of multiple fields of ml is broken ([#19346](https://togithub.com/apache/pulsar/issues/19346)) - \[fix]\[broker] Fix race condition while updating partition number ([#19199](https://togithub.com/apache/pulsar/issues/19199)) - \[Improve]\[broker] Support clear old bookie data for BKCluster ([#16744](https://togithub.com/apache/pulsar/issues/16744)) - \[fix]\[ml] Reset individualDeletedMessagesSerializedSize after acked all messages. ([#19428](https://togithub.com/apache/pulsar/issues/19428)) - \[fix]\[broker] Make ServerCnx#originalAuthData volatile ([#19507](https://togithub.com/apache/pulsar/issues/19507)) - \[fix]\[broker] ServerCnx broken after recent cherry-picks ([#19521](https://togithub.com/apache/pulsar/issues/19521)) - \[fix]\[broker] Fix loadbalance score caculation problem ([#19420](https://togithub.com/apache/pulsar/issues/19420)) - \[fix] \[ml] messagesConsumedCounter of NonDurableCursor was initialized incorrectly ([#19355](https://togithub.com/apache/pulsar/issues/19355)) - \[fix]\[broker]\[branch-2.10] Replace sync method call in async call chain to prevent ZK event thread deadlock ([#19539](https://togithub.com/apache/pulsar/issues/19539)) - \[improve]\[broker] Require authRole is proxyRole to set originalPrincipal ([#19455](https://togithub.com/apache/pulsar/issues/19455)) - \[improve]\[broker] ServerCnx: go to Failed state when auth fails ([#19312](https://togithub.com/apache/pulsar/issues/19312)) - \[feat]\[broker] Cherry-pick tests from ([#19409](https://togithub.com/apache/pulsar/issues/19409)) - \[improve]\[broker] Add test to verify authRole cannot change ([#19430](https://togithub.com/apache/pulsar/issues/19430)) - \[feat]\[broker] OneStageAuth State: move authn out of constructor ([#19295](https://togithub.com/apache/pulsar/issues/19295)) - \[fix]\[broker] Correct MockAlwaysExpiredAuthenticationState test impl - \[cleanup]\[broker] Validate originalPrincipal earlier in ServerCnx ([#19270](https://togithub.com/apache/pulsar/issues/19270)) - \[fix]\[broker] ServerCnx broken after recent cherry-picks ([#19521](https://togithub.com/apache/pulsar/issues/19521)) - \[fix]\[broker] Fix loadbalance score caculation problem ([#19420](https://togithub.com/apache/pulsar/issues/19420)) - \[fix] \[ml] messagesConsumedCounter of NonDurableCursor was initialized incorrectly ([#19355](https://togithub.com/apache/pulsar/issues/19355)) - \[fix]\[broker]\[branch-2.10] Replace sync method call in async call chain to prevent ZK event thread deadlock ([#19539](https://togithub.com/apache/pulsar/issues/19539)) - \[improve]\[broker] Require authRole is proxyRole to set originalPrincipal ([#19455](https://togithub.com/apache/pulsar/issues/19455)) - \[improve]\[broker] ServerCnx: go to Failed state when auth fails ([#19312](https://togithub.com/apache/pulsar/issues/19312)) - \[feat]\[broker] Cherry-pick tests from ([#19409](https://togithub.com/apache/pulsar/issues/19409)) - \[improve]\[broker] Add test to verify authRole cannot change ([#19430](https://togithub.com/apache/pulsar/issues/19430)) - \[fix]\[broker] Call originalAuthState.authenticate in ServerCnx - \[fix]\[broker] Correct MockAlwaysExpiredAuthenticationState test impl - \[fix]\[broker] Make authentication refresh threadsafe ([#19506](https://togithub.com/apache/pulsar/issues/19506)) - \[fix]\[broker] Allow proxy to pass same role for authRole and originalRole ([#19557](https://togithub.com/apache/pulsar/issues/19557)) - \[fix]\[broker] Copy command fields and fix potential thread-safety in ServerCnx ([#19517](https://togithub.com/apache/pulsar/issues/19517)) - \[fix]\[broker]\[branch-2.10] Fix geo-replication admin ([#19608](https://togithub.com/apache/pulsar/issues/19608)) - \[fix]\[broker] PulsarRegistrationClient - implement getAllBookies and follow BookieServiceInfo updates ([#18133](https://togithub.com/apache/pulsar/issues/18133)) - \[Improve]\[Broker]Reduce GetReplicatedSubscriptionStatus local REST call ([#16946](https://togithub.com/apache/pulsar/issues/16946)) - \[fix] \[broker] Incorrect service name selection logic ([#19505](https://togithub.com/apache/pulsar/issues/19505)) - \[improve]\[broker] Use shrink map for trackerCache ([#19534](https://togithub.com/apache/pulsar/issues/19534)) - \[improve]\[broker] Add UncaughtExceptionHandler for every thread pool ([#18211](https://togithub.com/apache/pulsar/issues/18211)) - \[cleanup]\[broker] Simplify extract entryMetadata code in filterEntriesForConsumer ([#18729](https://togithub.com/apache/pulsar/issues/18729)) - \[improve]\[broker] Follow up [#19230](https://togithub.com/apache/pulsar/issues/19230) to tighten the validation scope ([#19234](https://togithub.com/apache/pulsar/issues/19234)) - \[fix] \[ml] topic load fail by ledger lost ([#19444](https://togithub.com/apache/pulsar/issues/19444)) - \[fix] \[broker] Topic close failure leaves subscription in a permanent fence state ([#19692](https://togithub.com/apache/pulsar/issues/19692)) - \[cherry-pick]\[branch-2.10] Fix deadlock causes session notification not to work ([#19754](https://togithub.com/apache/pulsar/issues/19754)) ([#19768](https://togithub.com/apache/pulsar/issues/19768)) - \[fix]\[broker] Fix potential exception cause the policy service init fail. ([#19746](https://togithub.com/apache/pulsar/issues/19746)) - \[improve]\[broker] Authorize originalPrincipal when provided ([#19830](https://togithub.com/apache/pulsar/issues/19830)) - \[fix]\[broker] Only validate superuser access if authz enabled ([#19989](https://togithub.com/apache/pulsar/issues/19989)) - \[fix]\[broker] Ignore and remove the replicator cursor when the remote cluster is absent ([#19972](https://togithub.com/apache/pulsar/issues/19972)) - \[fix]\[broker] Fix index generator is not rollback after entries are failed added ([#19980](https://togithub.com/apache/pulsar/issues/19980)) - \[fix] \[proxy] Used in proxyConf file when configuration is missing in the command line ([#15938](https://togithub.com/apache/pulsar/issues/15938)) - \[fix]\[broker] Remove timestamp from broker metrics ([#17419](https://togithub.com/apache/pulsar/issues/17419)) - \[fix] \[broker] Counter of pending send messages in Replicator incorrect if schema future not complete ([#19242](https://togithub.com/apache/pulsar/issues/19242)) ##### Transaction - \[fix]\[txn] Correct the prompt message ([#17009](https://togithub.com/apache/pulsar/issues/17009)) - \[fix]\[txn] Catch and log runtime exceptions in async operations ([#19258](https://togithub.com/apache/pulsar/issues/19258)) - \[fix]\[txn] fix txn coordinator recover handle committing and aborting txn race condition. ([#19201](https://togithub.com/apache/pulsar/issues/19201)) - \[improve]\[txn] Handle changeToReadyState failure correctly in TC client ([#19308](https://togithub.com/apache/pulsar/issues/19308)) - \[cherry-pick]\[branch-2.10] Allow superusers to abort transactions ([#1](https://togithub.com/apache/pulsar/issues/1)…9467) ([#19473](https://togithub.com/apache/pulsar/issues/19473)) - \[feature]\[txn] Fix individual ack batch message with transaction abor… - Close TransactionBuffer when MessageDeduplication#checkStatus failed ([#19288](https://togithub.com/apache/pulsar/issues/19288)) - \[improve]\[txn] Cleanup how superusers abort txns ([#19976](https://togithub.com/apache/pulsar/issues/19976)) - \[feature]\[txn] Fix individual ack batch message with transaction abort redevlier duplicate messages ([#14327](https://togithub.com/apache/pulsar/issues/14327)) ##### Pulsar IO and Pulsar Functions - \[fix]\[io] Update Elasticsearch sink idle cnx timeout to 30s ([#19377](https://togithub.com/apache/pulsar/issues/19377)) - \[fix]\[fn] Fix k8s merge runtime opts bug ([#19481](https://togithub.com/apache/pulsar/issues/19481)) - \[refactor]\[fn] Use AuthorizationServer more in Function Worker API ([#19975](https://togithub.com/apache/pulsar/issues/19975)) ##### CLI - \[fix] \[cli] Fix Broker crashed by too much memory usage of pulsar tools ([#20031](https://togithub.com/apache/pulsar/issues/20031)) ##### Admin - \[fix]\[admin] Fix validatePersistencePolicies that Namespace/Topic persistent policies cannot set to < 0 ([#18999](https://togithub.com/apache/pulsar/issues/18999)) - \[improve]\[admin]\[branch-2.10] Unset namespace policy to improve deleting namespace ([#17033](https://togithub.com/apache/pulsar/issues/17033)) ([#19865](https://togithub.com/apache/pulsar/issues/19865)) - \[fix] \[admin] fix incorrect state replication.connected on API partitioned-topic stat ([#19942](https://togithub.com/apache/pulsar/issues/19942)) - \[fix] \[admin] Make response code to 400 instead of 500 when delete topic fails due to enabled geo-replication ([#19879](https://togithub.com/apache/pulsar/issues/19879)) ##### Security - \[fix]\[sec] Upgrade jettison to 1.5.3 ([#19038](https://togithub.com/apache/pulsar/issues/19038)) - \[fix]\[sec] Upgrade woodstox to 5.4.0 ([#19041](https://togithub.com/apache/pulsar/issues/19041)) - \[improve]\[sec] Suppress false positive OWASP reports ([#19105](https://togithub.com/apache/pulsar/issues/19105)) - \[fix]\[misc] do not require encryption on system topics ([#18898](https://togithub.com/apache/pulsar/issues/18898)) - \[fix]\[authorization] Fix the return value of canConsumeAsync ([#19412](https://togithub.com/apache/pulsar/issues/19412)) - \[fix]\[security] Fix secure problem CVE-2017-1000487 ([#19479](https://togithub.com/apache/pulsar/issues/19479)) - \[improve] Upgrade wildfly-eytron (used by debezium) to fix CVE-2022-3143 ([#19333](https://togithub.com/apache/pulsar/issues/19333)) - \[improve]\[misc] Upgrade Netty to 4.1.87.Final ([#19417](https://togithub.com/apache/pulsar/issues/19417)) - \[fix]\[broker] Ignore and remove the replicator cursor when the remote cluster is absent ([#19972](https://togithub.com/apache/pulsar/issues/19972)) - \[Authenticate] fix Invalid signature error when use Kerberos Authentication ([#15121](https://togithub.com/apache/pulsar/issues/15121)) - \[fix]\[sec] Fix transitive critical CVEs in file-system tiered storage ([#19957](https://togithub.com/apache/pulsar/issues/19957)) - \[fix]\[sec] Fix transitive critical CVEs in file-system tiered storage ([#19957](https://togithub.com/apache/pulsar/issues/19957)) ##### CI & Test - \[fix]\[test] ProxyWithAuthorizationTest remove SAN from test certs ([#19594](https://togithub.com/apache/pulsar/issues/19594)) - \[branch-2.10]\[test]Run and fix tests ([#19636](https://togithub.com/apache/pulsar/issues/19636)) - \[test] Fix ServerCnxTest failing after merge of [#19830](https://togithub.com/apache/pulsar/issues/19830) ##### Others - \[fix]\[build] Resolve OWASP Dependency Check false positives ([#19120](https://togithub.com/apache/pulsar/issues/19120)) - Debezium sources: Support loading config from secrets ([#19163](https://togithub.com/apache/pulsar/issues/19163)) - \[fix]\[proxy] Only go to connecting state once ([#19331](https://togithub.com/apache/pulsar/issues/19331)) - \[fix]\[build] Upgrade dependency-check-maven plugin to fix broken OWASP check ([#19170](https://togithub.com/apache/pulsar/issues/19170)) - \[branch-2.10]\[fix]\[proxy] Fix using wrong client version in pulsar proxy ([#19576](https://togithub.com/apache/pulsar/issues/19576)) - \[branch-2.10]\[fix]\[proxy] Fix using wrong client version in pulsar proxy ([#19576](https://togithub.com/apache/pulsar/issues/19576)) - \[improve] Upgrade lombok to 1.8.26 ([#19426](https://togithub.com/apache/pulsar/issues/19426)) - \[improve] upgrade the bookkeeper version to 4.14.7 ([#19179](https://togithub.com/apache/pulsar/issues/19179)) - \[branch-2.10]\[broker] Support zookeeper read-only config. ([#19156](https://togithub.com/apache/pulsar/issues/19156)) ([#19637](https://togithub.com/apache/pulsar/issues/19637)) - \[improve] Simplify enabling Broker, WS Proxy hostname verification ([#19674](https://togithub.com/apache/pulsar/issues/19674)) - \[cherry-pick]\[branch-2.10] KCA: picking fixes from master ([#19788](https://togithub.com/apache/pulsar/issues/19788)) - \[Build] Make the test JVM exit if OOME occurs ([#14509](https://togithub.com/apache/pulsar/issues/14509)) ### [`v2.10.3`](https://togithub.com/apache/pulsar/releases/tag/v2.10.3) [Compare Source](https://togithub.com/apache/pulsar/compare/v2.10.2...v2.10.3) ##### Broker - \[improve]\[broker] Omit making a copy of CommandAck when there are no broker interceptors [#18997](https://togithub.com/apache/pulsar/pull/18997) - \[fix]\[broker] Copy proto command fields into final variables in ServerCnx [#18987](https://togithub.com/apache/pulsar/pull/18987) - \[improve]\[broker]Add a cache eviction policy:Evicting cache data by the slowest markDeletedPosition [#14985](https://togithub.com/apache/pulsar/issues/14985) - \[fix]\[broker] Fix broker cache eviction of entries read by active cursors [#17273](https://togithub.com/apache/pulsar/issues/17273) - \[enh]\[broker] Add metrics for entry cache insertion, eviction [#17248](https://togithub.com/apache/pulsar/issues/17248) - \[cleanup]\[broker] Extracted interface for EntryCacheManager [#15933](https://togithub.com/apache/pulsar/issues/15933) - \[improve]\[broker] Support dynamic update cache config [#13679](https://togithub.com/apache/pulsar/issues/13679) - \[improve]\[broker] refactor ManagedLedger cacheEvictionTask implement [#14488](https://togithub.com/apache/pulsar/issues/14488) - \[improve]\[broker] Add logs for why namespace bundle been split ([#19003](https://togithub.com/apache/pulsar/issues/19003)) - \[fix]\[broker] Fix deadlock in PendingAckHandleImpl ([#18989](https://togithub.com/apache/pulsar/issues/18989)) - \[fix]\[broker] Branch-2.10 Avoid endless blocking call. ([#18914](https://togithub.com/apache/pulsar/issues/18914)) - \[fix]\[broker]\[functions-worker] Ensure prometheus metrics are grouped by type ([#8407](https://togithub.com/apache/pulsar/issues/8407), [#13865](https://togithub.com/apache/pulsar/issues/13865)) [#15558](https://togithub.com/apache/pulsar/issues/15558) - \[fix]\[broker]Update interceptor handler exception ([#18940](https://togithub.com/apache/pulsar/issues/18940)) - \[fix]\[broker] Fix incorrect bundle split count metric ([#17970](https://togithub.com/apache/pulsar/issues/17970)) - \[fix]\[broker] Avoid OOM not trigger PulsarByteBufAllocator outOfMemoryListener when use ByteBufAllocator.DEFAULT.heapBuffer in PrometheusMetricsGeneratorUtils ([#18747](https://togithub.com/apache/pulsar/issues/18747)) - \[improve]\[broker] Make Consumer#equals more effective ([#18662](https://togithub.com/apache/pulsar/issues/18662)) - \[fix]\[broker] In the trimDeletedEntries method, release the removed entry ([#18305](https://togithub.com/apache/pulsar/issues/18305)) - \[improve]\[broker] Remove locallyAcquiredLock when removeOwnership ([#18197](https://togithub.com/apache/pulsar/issues/18197)) - \[improve]\[broker] Avoid unnecessary creation of BitSetRecyclable objects [#17998](https://togithub.com/apache/pulsar/issues/17998) - \[fix]\[broker] add return for PersistentMessageExpiryMonitor#findEntryFailed [#17816](https://togithub.com/apache/pulsar/issues/17816) - \[fix]\[ml] Persist correct markDeletePosition to prevent message loss ([#18237](https://togithub.com/apache/pulsar/issues/18237)) - \[improve]\[broker] Support setting forceDeleteTenantAllowed dynamically ([#18192](https://togithub.com/apache/pulsar/issues/18192)) - Make BookieId work with PulsarRegistrationDriver (second take) [#17922](https://togithub.com/apache/pulsar/issues/17922) - \[fix]\[broker] Extract additional servlets to the default directory by… ([#17477](https://togithub.com/apache/pulsar/issues/17477)) - \[improve]\[broker]Improve PersistentMessageExpiryMonitor expire speed when ledger not existed ([#17842](https://togithub.com/apache/pulsar/issues/17842)) - \[fix]\[broker]Fix mutex never released when trimming ([#17911](https://togithub.com/apache/pulsar/issues/17911)) - \[fix]\[broker] Fix if dynamicConfig item in ZK do not exist in broker cause NPE. [#17705](https://togithub.com/apache/pulsar/issues/17705) - \[fix]\[broker] Fix system service namespace create internal event topic. ([#17867](https://togithub.com/apache/pulsar/issues/17867)) - \[bugfix] Prevent Automatic Topic Creation during namespace deletion [#17609](https://togithub.com/apache/pulsar/issues/17609) - \[fix]\[broker]Cache invalidation due to concurrent access ([#18076](https://togithub.com/apache/pulsar/issues/18076)) - \[fix]\[broker]add test case for deleting namespace fail when has partitioned system topic ([#17338](https://togithub.com/apache/pulsar/issues/17338)) - Skip creating a subscription replication snapshot if no messages have been published after the topic gets activated on a broker [#16618](https://togithub.com/apache/pulsar/issues/16618) - \[fix]\[broker] Fix uncompleted future when get the topic policies of a deleted topic ([#18824](https://togithub.com/apache/pulsar/issues/18824)) - \[fix]\[broker] Fix delete system topic clean topic policy ([#18823](https://togithub.com/apache/pulsar/issues/18823)) - \[improve]\[broker]\[PIP-149]Make getList async [#16221](https://togithub.com/apache/pulsar/issues/16221) - \[fix]\[flaky-test]ManagedCursorMetricsTest.testManagedCursorMetrics [#16878](https://togithub.com/apache/pulsar/issues/16878) - \[improve]\[broker] System topic writer/reader connection not counted ([#18603](https://togithub.com/apache/pulsar/issues/18603)) - \[improve]\[broker] System topic writer/reader connection not counted. ([#18369](https://togithub.com/apache/pulsar/issues/18369)) - \[fix]\[broker]unify time unit at dropping the backlog on a topic [#17957](https://togithub.com/apache/pulsar/issues/17957)\[fix]\[broker]unify time unit at dropping the backlog on a topic [#17957](https://togithub.com/apache/pulsar/issues/17957) - \[improve]\[broker] Support setting ForceDeleteNamespaceAllowed dynamically [#18181](https://togithub.com/apache/pulsar/issues/18181) - \[fix]\[broker] Fix `getPositionAfterN` infinite loop. ([#17971](https://togithub.com/apache/pulsar/issues/17971)) - \[fix]\[broker] Update the log print content of createSubscriptions ([#18024](https://togithub.com/apache/pulsar/issues/18024)) - \[Broker] Make PersistentTopicsBase#internalGetPartitionedMetadata async [#14153](https://togithub.com/apache/pulsar/issues/14153) - \[fix]\[broker] Fix duplicated schemas creation [#18701](https://togithub.com/apache/pulsar/issues/18701) - \[improve]\[broker] Using `handle` instead of `handleAsync` to avoid using common pool thread ([#17403](https://togithub.com/apache/pulsar/issues/17403)) - \[fix]\[broker] Fix dispatch duplicated messages with `Exclusive` mode. ([#17237](https://togithub.com/apache/pulsar/issues/17237)) - \[fix]\[broker] Fix the order of resource close in the InMemoryDelayedDeliveryTracker ([#18000](https://togithub.com/apache/pulsar/issues/18000)) - \[improve]\[broker] reduce code duplication to avoid endless wait `CompletableFuture` ([#14853](https://togithub.com/apache/pulsar/issues/14853)) - \[improve]\[ML] Print log when delete empty ledger. ([#17859](https://togithub.com/apache/pulsar/issues/17859)) - \[improve] clean the empty topicAuthenticationMap in zk when revoke permission ([#16815](https://togithub.com/apache/pulsar/issues/16815)) - \[fix]\[broker] fix can not revoke permission after update topic partition ([#17393](https://togithub.com/apache/pulsar/issues/17393)) - \[fix]\[broker] Fix Npe thrown by splitBundle ([#17370](https://togithub.com/apache/pulsar/issues/17370)) - \[fix]\[broker] Fix executeWithRetry result is null ([#17694](https://togithub.com/apache/pulsar/issues/17694)) - \[fix]\[broker] Fix SystemTopicBasedTopicPoliciesService NPE issue ([#17602](https://togithub.com/apache/pulsar/issues/17602)) - \[fix]\[broker] Fix broker cache eviction of entries read by active cursors [#17273](https://togithub.com/apache/pulsar/issues/17273) - \[fix]\[broker] Fix namespace can not be deleted by force ([#18686](https://togithub.com/apache/pulsar/issues/18686)) - \[fix]\[broker] Create replicated subscriptions for new partitions when needed ([#18659](https://togithub.com/apache/pulsar/issues/18659)) - \[fix]\[broker] DnsResolverUtil.TTL should be greater than zero ([#18565](https://togithub.com/apache/pulsar/issues/18565)) - \[fix]\[broker] Correctly set byte and message out totals per subscription ([#18451](https://togithub.com/apache/pulsar/issues/18451)) - \[fix]\[broker] fix delete_when_subscriptions_caught_up doesn't work while have active consumers ([#18320](https://togithub.com/apache/pulsar/issues/18320)) - \[improve]\[broker]consumer backlog eviction policy should not reset read position for consumer ([#18037](https://togithub.com/apache/pulsar/issues/18037)) - \[fix]\[broker] Fix NPE when ResourceGroupService execute scheduled task. [#17840](https://togithub.com/apache/pulsar/issues/17840) - \[fix]\[storage] Autorecovery default reppDnsResolverClass to ZkBookieRackAffinityMapping ([#15640](https://togithub.com/apache/pulsar/issues/15640)) - \[broker] Fixed delayed delivery after read operation error ([#18098](https://togithub.com/apache/pulsar/issues/18098)) - \[fix]\[broker] Fix issue where leader broker information isn't available after 10 minutes ([#17401](https://togithub.com/apache/pulsar/issues/17401)) - \[fix]\[broker] Make full async call in PulsarAuthorizationProvider ([#18050](https://togithub.com/apache/pulsar/issues/18050)) ##### Transaction - \[fix]\[txn] Transaction buffer recover blocked by readNext [#18833](https://togithub.com/apache/pulsar/issues/18833) - \[fix]\[txn] transaction pending ack store future not completely problem ([#18943](https://togithub.com/apache/pulsar/issues/18943)) - \[fix]\[txn] Fix PendingAckHandleImpl when `pendingAckStoreProvider.checkInitializedBefore` failed ([#18859](https://togithub.com/apache/pulsar/issues/18859)) - \[improve]\[txn] Add getState in transaction for client API ([#17423](https://togithub.com/apache/pulsar/issues/17423)) - \[improve]\[txn] Implementation of Delayed Transaction Messages ([#17548](https://togithub.com/apache/pulsar/issues/17548)) ##### Pulsar IO and Pulsar Functions - \[fix]\[io] Only bundle kafka schema registry client ([#18931](https://togithub.com/apache/pulsar/issues/18931)) - \[fix]\[fn] Typo in method name ([#18844](https://togithub.com/apache/pulsar/issues/18844)) - \[fix]\[function] Fix invalid metric type ` gauge ` ([#18129](https://togithub.com/apache/pulsar/issues/18129)) - \[fix]\[fn] fix function failed to start if no `typeClassName` provided in `FunctionDetails` ([#18111](https://togithub.com/apache/pulsar/issues/18111)) ##### Tiered Storage - \[fix]\[offload] Fix numerical overflow bug while reading data from tiered storage ([#18595](https://togithub.com/apache/pulsar/issues/18595)) - \[fix]\[offload] Fix memory leak while Offloading ledgers ([#18500](https://togithub.com/apache/pulsar/issues/18500)) ##### Pulsar SQL - \[fix]\[sql] Fix message without schema issue. ([#18745](https://togithub.com/apache/pulsar/issues/18745)) ##### CLI - \[fix]\[cli] Fix CLI client produce don't able to use multiple -m send multiple messages ([#18238](https://togithub.com/apache/pulsar/issues/18238)) - \[fix]\[cli] Check numMessages after incrementing counter [#17826](https://togithub.com/apache/pulsar/issues/17826) #### Admin - \[improve]\[admin] Fix NPE in admin-CLI topic stats command ([#18326](https://togithub.com/apache/pulsar/issues/18326)) - \[improve]\[admin] add topic name and sub name for NotFound error message ([#15606](https://togithub.com/apache/pulsar/issues/15606))