Broker
- Fix broker restart logic #20113
- Fast fix infinite HTTP call getSubscriptions caused by wrong topicName #20131
- Fix getPartitionedStats miss subscription's messageAckRate #19870
- Fix deadlock of zkSessionWatcher when zkConnection loss #20122
- Fix Return value of getPartitionedStats doesn't contain subscription type #20210
- Producer created by replicator is not displayed in topic stats #20229
- Fix infinite ack of Replicator after topic is closed #20232
- Skip split bundle if only one broker #20190
- Fix RoaringBitmap.contains can't check value 65535 #20176
- Get the lowest PositionImpl from NavigableSet #18278
- Fix the behavior of delayed message in Key_Shared mode #20233
- Fix use error TimeUnit to record publish latency #20074
- Fix the thread safety issue of BrokerData#getTimeAverageData access #19889
- Fix can't send ErrorCommand when a message's value is null #19899
- Make LedgerOffloaderFactory can load the old nar #19913
- Ignore and remove the replicator cursor when the remote cluster is absent #19972
- Fix the reason label of authentication metrics #20030
- Optimize the ack/send future in TransactionImpl #20271
- Fix NPE caused by topic publish rate limiter #20302
- Fix default bundle size used while setting bookie affinity #20250
- Fix ledger left in OPEN state when inactiveLedgerRollOverTimeMs is enabled #20276
- Fix deadlock of metadata store #20189
- Fix class name typo PrecisPublishLimiter to "Precise" #20310
- Fix consume stuck of shared streaming dispatcher #18315
- Fix entry filter feature for the non-persistent topic #20141
- Fix partitioned __change_events topic is policy topic #20392
- If a ledger is lost, the cursor mark delete position cannot forward #18620
- Invalidate metadata children cache after key deleted #20363
- Avoid PersistentSubscription.expireMessages logic check backlog twice #20416
- Switch to the metadata store thread after zk operation #20303
- Fix skip message API when hole messages exist #20326
- Do not filter system topic while shedding #18949
- Restore solution for certain topic unloading race conditions #20527
- There are two same-named managed ledgers in the one broker #18688
- REST Client Producer fails with TLS only #20535
- Save createIfMissing in TopicLoadingContext #19993
- Unwrap the completion exception #20396
- Release orphan replicator after topic closed #20582
- Fix the publish latency spike issue with a large number of producers #20607
- Support cgroup v2 by using jdk.internal.platform.Metrics in Pulsar Loadbalancer #16832
- Validate authz earlier in delete subscription logic #20549
- Fix the publish latency spike from the contention of MessageDeduplication #20647
- Adding the missed bookie id in the registration manager #20641
- Fix NPE when resetting Replicator's cursor by position #20597
- Topic policy can not be work well if replay policy message has any exception #20613
- Bookie Info lost by notification race condition #20642
- Update new bundle-range to policies after bundle split #17797
- Fix consumer can receive aborted txn message when readType is replay #19815
- Fix return the earliest position when query position by timestamp #20457
Clients
- [Java] Use scheduled executor in BinaryProtoLookupService #20043
- [Java] Release the orphan producers after the primary consumer is closed #19858
- [Java] Fix NPE when acknowledging multiple messages #19874
- [Java] Cache empty schema version in ProducerImpl schemaCache #19929
- [Java] Fix where the function getMsgNumInReceiverQueue always returns 0 when using message listener #20245
- [Java] Fix deadlock issue of consumer while using multiple IO threads #20669
- [Java] Make the whole grabCnx() progress atomic #20595
- [Java] Messages lost when consumer reconnect #20695
Pulsar IO and Pulsar Functions
- [Functions] Use functions classloader in TopicSchema.newSchemaInstance() to fix ClassNotFoundException when using custom SerDe classes #20115
- [Functions] Make pulsar-admin support update py/go with package url #19897
- [Functions] Fix JavaInstanceStarter inferring type class name error #20426
- [Functions] Go functions must retrieve consumers by non-partitioned topic ID #20413
- [Functions] Fix function update error #19895
- [Functions] Reset idle timer correctly #20450 #20450
- [Functions] Go functions need to use static grpcPort in k8s runtime #20404
- [Functions] Configure pulsar admin for TLS #20533
- [Functions] Make KubernetesRuntime translate characters in function tenant, namespace, and name during function removal to avoid label errors #19584
- [Functions] Exit JVM when the main thread throws an exception #20689
- [IO Connector] Close the Kafka source connector if there is uncaught exception #20480
- [IO Connector] Close the Kafka source connector got stuck #20698
Observability
- [Broker] Fix the partitioned publisher topic stat aggregation bug #18807
- [Broker] Fix topic with double quote breaks the Prometheus format #20230
- [Broker] Add JVM start time metric #20381
- [Offload] Fix offload metrics error #20366
CLI
- [CLI] Allow pulser-client consumer to create a replicated subscription #20316
- [CLI] Update nar maven plugin version to fix excessive downloads #20410
- [CLI] Speed up OWASP dependency check in Pulsar CI workflow #20412
- [CLI] Fulfill add-opens to function-localrunner also #20417
- [Admin] Return BAD_REQUEST on cluster data is null for createCluster #20346
- [Admin] Report earliest msg in partitioned backlog #19465
Others
- [Build] Duplicate entry when merging services #17659
- [Offload] Use filesystem offloader with class not found error #20365
- [Perf] PerformanceProducer does not produce expected number of messages #19775
- [SQL] Remove useless configuration for Pulsar SQL #20605
- [WS] Remove unnecessary ping/pong implementation #20605
- [Schema] Only handle exception when there has #20730
Library updates
- Upgrade SnakeYAML version to 2.0 #20120
- Upgrade Kotlin version from 1.4.32 to 1.8.20 #20089
- Upgrade the jetty server version to 9.4.51.v20230217 #20226
- Upgrade sprint version to 5.3.27 #20226
- Upgrade swagger version to 1.6.10 #20226
- Upgrade SQLite JDBC to resolve CVE-2023-32697 #20411
- Upgrade Netty to 4.1.93.Final #20423
- Upgrade Guava to 32.0.0 to address CVE-2023-2976 #20459
- Use Ubuntu 22.04 for Pulsar images #20475
- Upgrade snappy-java to address multiple CVEs #20604
- Upgrade Guava to 32.1.1 to address CVE-2023-2976 #20699