Broker
- [improve][broker] Do not print the log that the topic does not exist 13535
- [fix][broker] Fix NPE when nextValidLedger is null 13975
- [fix][broker] Fix NPE when
ReplicatedSubscriptionsController
sends marker message with deduplication enabled 14017 - [fix][broker] Fix avg-messagePerEntry metrics for consumer 14330
- [improve][broker] Validate rack name when setting the bookie rack info 14336
- [improve][broker] Optimize find nics process. 14340
- [fix][broker] Fix NPE when subscription is already removed 14363
- [fix][broker] Fix Broker HealthCheck Endpoint Exposes Race Conditions 14367
- [improve][broker] Optimize RawReader#create when using Compactor 14447
- [fix][broker] Fix the latest message of the compacted topic cannot be read 14449
- [fix][broker] Fix producerFuture not completed in ServerCnx#handleProducer 14467
- [fix][broker] Fix NPW in ManagedLedgerImpl 14481
- [improve][broker] Support shrink in ConcurrentLongHashMap 14497
- [fix][broker] Fixed wrong behaviour caused by not cleaning up topic policy service state. 14503
- [improve][broker] Optimize memory usage: support to shrink for pendingAcks map 14515
- [fix][broker] Cancel offload tasks when managed ledger closed 14744
- [improve][broker] Reduce unnecessary expansions for ConcurrentLong map and set 14562
- [fix][broker] Fix metadata store deadlock when checking BacklogQuota 14634
- [improve][broker] Support shrink for map or set 14663
- [fix][broker] Fix lost message issue due to ledger rollover 14664
- [fix][broker] Set splitNamespaceBundle with
readonly=false
14680 - [fix][broker] Fixed duplicated delayed messages when all consumers disconnect 14740
- [fix][broker] Fix wrong state for non-durable cursor 14869
- [fix][broker] Improve error logging for topic not found 14892
- [fix][broker] Fix topic policy reader close bug 14897
- [fix][broker] Return if reset in progress 14978
- [fix][broker] Fix potential NPE in Replicator 15003
- [fix][broker] Fix race condition in updating lastMarkDeleteEntry field 15031
- [fix][broker] Fix potential to add duplicated consumer 16826
- [fix][broker] Follow up on race condition fixes in ManagedCursorImpl #15031 15067
- [cleanup][broker] Remove useless code to avoid confusion in OpReadEntry#checkReadCompletion 15104
- [fix][broker] Cancel
fencedTopicMonitoringTask
when topic closed normally. 15202 - [fix][broker] Fix MessageDeduplication#inactiveProducers may not be persistence correctly 15206
- [fix][broker] Fix race condition between timeout and completion in
OpAddEntry
15233 - [fix][broker] Fix problem at RateLimiter#tryAcquire 15306
- [improve][broker] Use shrink map for message redelivery. 15342
- [improve][broker] Support shrink for ConcurrentSortedLongPairSet 15354
- [improve][broker] Close connection if a ping or pong message cannot be sent 15382
- [cleanup][broker] Fix typo in enum name and handle closing of the channel properly since writeAndFlush is asynchronous 15384
- [fix][broker] Avoid heartbeat topic to offload. 15393
- [fix][broker] Fix deadlock in broker after race condition in topic creation failure 15570
- [fix][broker] fix calculation in getNumberOfEntriesInStorage 15627
- [fix][broker] Fix NPE when set
AutoTopicCreationOverride
15653 - [fix][broker] Fix creating producer failure when set backlog quota 15663
- [fix][broker] Fix NPE when put value to
RangeCache
15707 - [fix][broker] Fix can not enable system topic if
AutoUpdateSchemaEnabled=false
15759 - [fix][broker] Fix wrong unit of NIC speed on Linux 15770
- [fix][broker] Fix NPE in MessageDeduplication 15820
- [fix][broker] Fix NPE when ledger id not found in
OpReadEntry
15837 - [fix][broker] When skipping updating mark delete position, execute callback with executor to prevent deadlock 15971
- [fix][broker] Fix NPE when drop backlog for time limit. 16235
- [fix][broker]Fix getInternalStats occasional lack of LeaderInfo again 16238
- [fix][broker] Fix RawReader out of order 16390
- [fix][broker] Skip reading more entries for a pending read with no more entries 16400
- [fix][broker] Fix No such ledger exception 16420
- [fix][broker] Fix RawReader hasMessageAvailable returns true when no messages 16443
- [fix][broker] Fix stats-internal with option -m cause active ledger recover then close 16662
- [fix][broker] Fix passing incorrect authentication data 16840
- [fix][broker] ManagedCursor: mark delete no callback when create meta-ledger fail 16841
- [improve][broker] Avoid reconnection when a partitioned topic was created concurrently 16867
- [improve][broker] Recycle OpReadEntry in some corner cases 16869
- [fix][broker] Fix compaction subscription acknowledge Marker msg issue. 16918
Security
- [fix][sec] Use provider's canLookupAsync method for AuthorizationService 11777
- [improve][sec] Optimize the logic of allowing namespace operation 13090
- [improve][sec] Full-support set SSL provider, ciphers and protocols 13740
- [fix][sec] Role with namespace produce authz can also get topics 13773
- [improve][sec] Full-support SSL provider, ciphers, and protocols for broker service and proxy service 15034
- [improve][sec] Add load multiple certificates support 14798
- [fix][sec] Fix handling single role and non-jwt-token in MultiRolesTokenAuthorizationProvider 14857
- [fix][sec] Use tlsCertRefreshCheckDurationSec instead of 0 for refresh value 15075
- [improve][sec] Skip unnecessary DNS resolution when creating AuthenticationDataHttp instance 15221
- [improve][sec] Improve skipping of DNS resolution when creating AuthenticationDataHttp instance 15228
- [fix][sec] Fix MultiRolesTokenAuthorizationProvider
authorize
issue 15454 - [fix][sec] Fix grant all permissions but can't list topic 15501
- [improve][sec] Switch to rely on Netty for Hostname Verification 15824
- [fix][sec] Fix create client with TLS config 16014
- [fix][sec] Avoid AuthenticationDataSource mutation for subscription name 16065
- [improve][sec] Improve get the basic authentication config 16526
- [fix][sec] Fix multiple roles authorization 16645
- [fix][sec] Add timeout of sync methods and avoid call sync method for AuthoriationService (#15694) 16831
- [improve][sec] Support for get token from HTTP params 16871
- [improve][sec] Adapt basic authentication configuration with prefix 16935
Admin
- [improve][admin] Add corresponding get command for namespace 12322
- [fix][admin] Fix deleting namespace will fail when system topics exist 15040
- [fix][admin] Fix validateGlobalNamespaceOwnership wrap exception issue 14612
- [fix][admin] Fix wrong prompt exception when getting the non-persistent topic list without GET_BUDNLE permission 14638
- [fix][admin] Fixed 404 error msg not returned correctly using http lookup 14677
- [improve][admin] Provide an accurate error message when set
autoTopicCreation
14684 - [fix][admin] Fix cannot delete namespace with system topic 14730
- [fix][admin] Fix NPE in PulsarAdminBuilder when the service is not set 14769
- [fix][admin] Fix missing response type in swagger definitions 16022
Function
- [fix][fn] Fixing get functions for output topic and serde classname 14103
- [improve][fn] Pass configured metricsPort to k8s runtime 14502
- [fix][fn] fix some IOExceptions when create functions from package URL 14553
- [fix][fn] handle NPE when
getLeader
returns null 15058 - [improve][fn] Add KeyStore support in WebSocket, Function Worker HTTPS Servers 15084
- [fix][function] Check executor null when close the FileSource 15247
- [improve][fn] Provide default error handler for function log appender 15728
- [fix][function] Fix error when user starts with the pulsar functions local runner 16565
- [fix][function] Fix python instance not process zip file correctly 16697
- [fix][io] throw exceptions when Kafka offset backing store failed to start 14491
- [fix][io] Handle Kafka sinks that return immutable maps as configs 14780
SQL
- [fix][sql] Fix PulsarRecordCursor deserialize issue. 14615
- [fix][sql] Fix
messageQueue
release message issue. 16155
Offloader
- [fix][offloader] Fix incorrect entryId in warn log when reading entry from tiered storage 14685
- [improve] TieredStorage: add debug information 14907
- [feat][offloader] Add pure S3 provider for the offloader 15710
- [fix][offloader] Fix setManagedLedgerOffloadedReadPriority not work. 16436
Proxy
- [improve][proxy] Log warning when opening connection to broker fails 14710
- [refactor][proxy] Refactor Proxy code and fix connection stalling by switching to auto read mode 14713
- [improve][proxy] Configure Netty DNS resolver to match JDK DNS caching setting, share DNS resolver instance in Proxy 15219
- [fix][proxy] Fix proxy connection leak when inbound connection closes while connecting is in progress 15366
- [fix][proxy] Fix DNS server denial-of-service issue when DNS entry expires 15403
- [improve][proxy] Remove unnecessary blocking DNS lookup in LookupProxyHandler 15415
- [fix][proxy] Do not preserve host when forwarding admin requests. 16342
- [fix][proxy] Fix client service URL 16834
Monitor
- [improve][monitor]: add metrics for pulsar web service thread pool 14742
- [improve][monitor] add message ack rate metric for consumer 15674
- [fix][monitor] Fix bug: fail to expose managed ledger client stats to prometheus if bookkeeperClientExposeStatsToPrometheus is true 16343
- [improve][monitor] Expose topic level storage write and read rate metrics 16855
CLI
- [fix][cli] Remove the trust certs check 14764
Test & Other
- [improve][test] Use Awaitility to replace Thread.sleep for pulsar-zookeeper-utils module. 11017
- [fix][test] Fix flaky test in PersistentStreamingDispatcherBlockConsumerTest 12943
- [fix][build] Fix NoClassDefFoundError: com/google/inject/AbstractModule in pulsar-io/batch-data-generator and Jcloud offloader 14150
- [fix][test] Fix flaky AdminApiSchemaTest#testSchemaInfoApi 14508
- [fix][test] Fix NamespacesTest execution order 14552
- [fix][test] Fix AdminApiTest.testNamespaceSplitBundleConcurrent 14565
- [fix][test] Fix flaky test MemoryLimitTest#testRejectMessages (#14220) 14628
- [fix][ci] Upgrade zlib version to 1.2.12 14964
- [improve][build] Ignore case when obfuscating passwords in configuration scripts 15077
- [fix][build] Fix LICENSE files for branch-2.8 15261
- [Improve][doc] Add config of IO and acceptor threads in proxy 15340
- [improve][build] Configure DLog Bookie, Pulsar, and Admin clients via pass-through config 15818
- [improve][build] Allow pulsar_tool_env.sh PULSAR_MEM to be Overridden 15868
- [fix][test] TieredStorageConfigurationTests - clear system properties 15957
- [fix][doc] Update/fix Swagger Annotation for param: authoritative 16222
- [improve][test] Verify the authentication data in the authorization provider 16900
Dependency Updates
- [improve][build] Upgrade snakeyaml version to 1.30 13722
- [fix][build] Remove --illegal-access errors resulting from Google Guice (upgrade to 5.0.1 and JClouds to 2.4.0) 13810
- [fix][build] Remove --illegal-access errors resulting from Google Guice - Pulsar IO, Offloaders and Pulsar SQL - Bump Guice to 5.1.0 14300
- [fix][build] Upgrade jackson and jackson-databind (2.13.2.1) to get rid of CVE-2020-36518 14871
- [improve][build] Remove log4j for CVE-2022-23307 15109
- [improve][build] Upgrade Netty to 4.1.76.Final, Netty Tcnative, grpc and protobuf 15212
- [improve][build] Use grpc-bom to align grpc library versions 15234
- [improve][build] Upgrade BookKeeper to 4.14.5 15581
- [improve][build] Upgrade Netty to 4.1.77.Final and netty-tcnative to 2.0.52.Final 15646
- [improve][build] Upgrade JClouds to 2.5.0 [15649](https://github.com/apache/pulsar/pull/15649
- [fix][build] Tiered storage: Upgrade Hadoop to 3.3.3 to get rid of CVE-2022-26612 15660
- [fix][build] Upgrade to Jetty to 9.4.48.v20220622 to get rid of CVE-2022-2047 16520
- [improve][broker] Upgrade log4j2 version to 2.18.0 (#16884) 16914