Apache Pulsar 2.10.1
2022-07-05
Important notice
- [fix][broker] Fix broker LoadBalance uneffective 15314
- [fix][admin] Fix producer/consume permission can’t get schema 15956
Broker
- [fix][broker] Fix race condition in getManagedLedgerInternalStats when includeLedgerMetadata=true 15918
- [improve][broker] Avoid contended synchronized block on topic load 15883
- [fix][broker] Fix NPE in MessageDeduplication 15820
- [improve][broker] Add timeout to closing CoordinationServiceImpl 15777
- [improve][broker] Store Subscription properties 15757
- [improve][broker] Support for updating the Subscription properties 15751
- [improve][broker] Disable memory limit controller for broker client and replication clients 15723
- [fix][broker] Fix NPE when put value to
RangeCache
. 15707 - [fix][broker] Fast return if ack cumulative illegal 15695
- [fix][broker] Fix creating producer failure when set backlog quota. 15663
- [fix][broker] Expose configurationMetadataStore and localMetadataStore 15661
- [fix][broker] Fix NPE when set
AutoTopicCreationOverride
15653 - [fix][broker] Fix MetadataStoreException$NotFoundException while doing topic lookup 15633
- [fix][broker] Fix calculation in getNumberOfEntriesInStorage 15627
- [fix][broker] Use dispatchRateLimiterLock to update dispatchRateLimiter 15601
- [fix][broker] Sync topicPublishRateLimiter update 15599
- [fix][broker] Fix deadlock in broker after race condition in topic creation failure 15570
- [cleanup][broker] Override close method to avoid caching exception. 15529
- [fix][broker] Close publishLimiter when disable it 15520
- [fix][broker] Fix to avoid TopicStatsImpl NPE even if producerName is null 15502
- [fix][broker] Fix key-shared delivery of messages with interleaved delays 15409
- [fix][Broker] Fix bug in contructor of RocksdbMetadataStore 15405
- [feature][broker] EntryFilter (PIP-105) - support per-Consumer filtering 15391
- [fix][broker/client] Close connection if a ping or pong message cannot be sent 15382
- [improve][broker] Support shrink for ConcurrentSortedLongPairSet 15354
- [improve][broker] Support properties on NonDurable subscriptions (PIP-105) 15345
- [improve][broker] Use shrink map for message redelivery. 15342
- [fix][Broker] Fix error on recycled SubscriptionPropertiesList 15335
- [fix][broker] Fix problem at RateLimiter#tryAcquire 15306
- [fix][broker] Fix totalEntries calculation problem in AbstractBaseDispatcher#filterEntriesForConsumere 15298
- [fix][broker] Fix resource group does not report usage 15292
- [fix][Broker] Fix race condition between timeout and completion in
OpAddEntry
15233 - [fix][broker] Fix MessageDeduplication#inactiveProducers may not be persistence correctly 15206
- [fix][broker] Cancel
fencedTopicMonitoringTask
when topic closed normally 15202 - [fix][broker] Fix parameter saslJaasBrokerSectionName in broker.conf 15110
- [cleanup][broker] Remove useless code to avoid confusion in OpReadEntry#checkReadCompletion 15104
- [fix][broker] Ensure NamespaceEphemeralData has equals() operator 15092
- [fix][broker] Fix potential to add duplicated consumer 15051
- [fix][broker] Fix rewind failed when
redeliverUnacknowledgedMessages
15046 - [fix][broker]Fix race condition in updating lastMarkDeleteEntry field 15031
- [improve][broker] Avoid using blocking calls for the async method
checkTopicOwnership
15023 - [fix][broker] Avoid heartbeat topic to offload. 15008
- [fix][broker] Return if reset in progress 14978
- [fix][broker] Fix topic policy reader close bug 14897
- [fix][broker] Fix getPendingAckInternalStats redirect issue 14876
- [fix][broker] Fix wrong state for non-durable cursor 14869
- [improve][broker] Add log when update namespace policies with error 14850
- [feature][broker] Support advertised listeners for HTTP and HTTPS services 14839
- [fix][broker] Filter the virtual NIC with relative path 14829
- [fix][broker] Fixed duplicated delayed messages when all consumers disconnect 14740
- [fix][broker] Fix cannot delete namespace with system topic 14730
- [fix][broker] Fixed 404 error msg not being returned correctly using http lookup 14677
- [fix][broker] Fix normal topic named ends with
healthcheck
becomes system topic issue 14671 - [improve][broker] Support shrink for map or set 14663
- [improve][broker] Changing the topic creation flow and optimize heartbeat topic not trigger compaction 14643
- [fix][broker] Fix wrong prompt exception when getting the non-persistent topic list without GET_BUDNLE permission 14638
- [fix][broker] Fix inconsistent prompt message when schema version is empty using AVRO. 14626
- [fix][broker] Fix update replication cluster but not update replicator 14570
- [improve][broker] Reduce unnecessary expansions for ConcurrentLong map and set 14562
- [improve][broker] Support ManagedCursorInfo compression 14542
- [improve][broker] Optimize memory usage: support to shrink for pendingAcks map 14515
- [improve][broker] Support shrink in ConcurrentLongHashMap 14497
- [improve][broker] Optimize RawReader#create when using Compactor 14447
- [fix][broker] Fix NPE when subscription is already removed 14363
- [improve][broker] Optimize load manager find nics process 14340
- [improve][broker] Make revokePermissionsOnTopic method async 14149
- [fix][broker] Fix when nextValidLedger is null caused NPE 13975
Transaction
- [fix][txn] Fix transasction ack batch message 15875
- [fix][txn] Fix NPE of TransactionMetaStoreHandler 15840
- [improve][txn] Optimize transaction lowWaterMark to clean useless data faster 15592
- [fix][txn] Fix transaction PendingAck lowWaterMark 15530
- [fix][txn] Make transaction stats consistent at end txn 15472
- [improve][txn] Add lowWaterMark check before appending entry to TB 15424
- [fix][txn] Fix transaction component recover fillQueue 15418
- [fix][txn] Topic transaction buffer recover don't close reader when throw RuntimeException 15361
- [fix][txn] Fix potentially unfinishable future 15208
- [improve][txn] Optimize metadataPositions in MLPendingAckStore 15137
- [fix][txn] TransactionMetadataService don't connect again if store exist 15114
- [improve][txn] Avoid creating the multiple future and exception handler 15089
- [fix][txn] Fix transaction REST API redirect issue. 15017
- [improve][txn] support configurable
transactionBufferClientOperationTimeoutInMills
15011 - [improve][txn] Optimize topic lookup when TC end tx 14991
- [fix][txn] Fix potential NPE in TransactionBufferDisable 14979
- [fix][txn] Fix transaction pendingAckStore asyncMarkDelete 14974
- [fix][txn] Fix potentially unfinished CompletableFuture 14973
- [fix][txn] Fix transaction admin redirect get 500 due to getCause 14965
- [fix][txn] Properly close transaction-buffer-sub non durable cursor 14900
- [fix][txn] Close the transaction buffer when deleting topics 14895
- [fix][txn] Avoid too many ServiceUnitNotReadyException for transaction buffer handler 14894
- [fix][txn] Fix transaction buffer no snapshot close recover reader 14830
- [fix][txn] Fix transaction log recover throw cursor already close 14810
- [fix][txn] Fix cannot enable transaction when is allow auto update schema enabled=fasle 14809
- [fix][txn] Fix some exception handle in transaction buffer 14808
- [fix][txn] Fix transaction buffer recover throw cursor already close 14807
- [fix][txn] Fix transaction buffer recover reader and writer fail 14801
- [fix][txn] Fix pending ack is recovering throw CursorAlreadyClosedxception 14781
- [fix][txn] Fix cursor readPosition is bigger than maxPosition in OpReadEntry 14667
Pulsar IO and Pulsar Functions
- [fix][connector] KCA sinks: fix offset mapping when sanitizeTopicName=true 15950
- [improve][function] provide default error handler for function log appender 15728
- [fix][connector] KCA Sink: org.apache.kafka.connect.errors.DataException: Invalid Java object for schema with type .. 15598
- [improve][function] Refine file io connector 15250
- [fix][function] Check executor null when close the FileSource 15247
- [fix][function] Handle NPE when
getLeader
returns null 15058 - [fix][function] Allow a Function<GenericObject,?> to access the original Schema of the Message and use it 14847
- [fix][function] Fix pulsar-managed runtimes failed start function with package URL from package management service 14814
- [improve][connector] Handle Kafka sinks that return immutable maps as configs 14780
- [improve][connector] Support event-time-based index name in ES Sink 14383
Tiered Storage
- [feature][tiered-storage] Add pure S3 provider for the offloader [15710](https://github.com/apache/pulsar/pull/15710
- [improve][tiered-storage] Upgrade JClouds to 2.5.0 15649
- [improve][tiered-storage] Reduce CPU usage when offloading the ledger 15063
- [fix][tiered-storage] Fix potential NPE in MockManagedLedger 15006
- [improve][tiered-storage] Add debug information 14907
Pulsar SQL
- [fix][sql] Fix the decimal type error convert in json schema 15687
- [fix][sql] Add Java version trim agent for presto 332 15236
- [improve][sql] Pulsar SQL support for Decimal data type 15153
Pulsar Proxy
- [cleanup][proxy] Remove unnecessary blocking DNS lookup in LookupProxyHandler 15415
- [fix][proxy] Fix DNS server denial-of-service issue when DNS entry expires 15403
- [fix][proxy/client] Configure Netty DNS resolver to match JDK DNS caching setting, share DNS resolver instance in Proxy 15219
- [refactor][proxy] Refactor Proxy code and fix connection stalling by switching to auto read mode 14713
- [improve][proxy] Log warning when opening connection to broker fails 14710
- [improve][proxy] Add support of PrometheusRawMetricsProvider for the Pulsar-Proxy 14681
Observability
- [improve][metrics] Add message ack rate metric for consumer 15674
- [improve][metrics] Add metrics for pulsar web service thread pool 14742
- [improve][metrics] Add non-persistent topic subscription metrics 13827
CLI
- [improve][admin] Support to get topic properties 15944
- [improve][admin] Pulsar Admin: create subscripion with Properties (PIP-105) 15503
- [improve][admin] Put
validateTopicOwnershipAsync
beforevalidateTopicOperationAsync
15265 - [fix][admin] Fix inconsistent parameter of TopicPolicies.getSubscriptionDispatchRate 15293
- [fix]admin] Fix pulsar-admin not prompting message when there is a 500 error 14856
- [fix][admin] Fix NPE in PulsarAdminBuilder when the service is not set 14769
- [fix][admin] Remove the trust certs check 14764
- [fix][admin] Provide an accurate error message when set
autoTopicCreation
14684
Security
- [fix][authn] Generate correct well-known OpenID configuration URL 15928
- [fix][authn] Switch to rely on Netty for Hostname Verification 15824
- [fix][authz] Add timeout of sync methods and avoid call sync method for AuthoriationService 15694
- [fix][authz] Fix grant all permissions but can't list topic. 15501
- [fix][authz] Fix MultiRolesTokenAuthorizationProvider
authorize
issue. 15454 - [fix][authn] Fix typo checkPermissionsAsync method typo 15273
- [improve][authn] Improve skipping of DNS resolution when creating AuthenticationDataHttp instance 15228
- [improve][authn] Skip unnecessary DNS resolution when creating AuthenticationDataHttp instance 15221
- [fix][security] Remove log4j for CVE-2022-23307 15109
- [improve][authn] Use tlsCertRefreshCheckDurationSec instead of 0 for refresh value 15075
- [fix][security] Upgrade Spring Context in Pulsar IO batch-data-generator 14975
- [fix][auth] Athenz: do not use uber-jar and bump to 1.10.50 to remove jackson-databind shaded dependency 14884
- [fix][authz] Fix handling single role and non-jwt-token in MultiRolesTokenAuthorizationProvider 14857
- [improve][authn] Full-support SSL provider, ciphers and protocols for broker service and proxy service 14569
- [fix][authz] Role with namespace produce authz can also get topics 13773
- [improve][authn] Full-support set SSL provider, ciphers and protocols for broker-web&websocket/proxy/function-worker 13740
Others
- [improve] Enable TCP/IP keepalive for all ZK client connections in all components starting with bin/pulsar 15908
- [improve] Allow pulsar_tool_env.sh PULSAR_MEM to be Overridden 15868
- [improve] Configure DLog Bookie, Pulsar, and Admin clients via pass-through config 15818
- [fix][docker] Add write permissions to /pulsar subdirectories to enable running as non-root user 15769
- [improve] Disable memory limit controller in internal Pulsar clients 15752
- [improve] Disable Pulsar client memory limit by default 15748
- [fix][owasp] Fix false positive google-http-client-gson-1.41.0.jar 15651
- [fix][package-management] Fix the new path
/data
introduced regression 15367 - [improve][common] Use
Collection
instead ofList
for FutureUtil. 15329 - [fix][tools] Only apply maxPendingMessagesAcrossPartitions if it presents 15283
- [fix][owasp] Suppress MariaDB false positives 15243
- [fix][scripts] Ignore case when obfuscating passwords in configuration scripts 15077
- [improve][tool] Improve transaction perf logs 14816
- [fix][deploy] Fix the pid occupied check when using pulsar-daemon start or stop process 14701
Library updates
- Bump PyYAML from 5.3.1 to 5.4.1 to solve CVE-2020-14343 15989
- Upgrade Netty to 4.1.76.Final, Netty Tcnative, grpc and protobuf 15212
- Update spring library to fix CVE-2022-22965 15065
- Upgrade MySQL client to 8.0.28 to get rid of CVE-2021-3711 14998
- Upgrade jackson and jackson-databind (2.13.2.1) to get rid of CVE-2020-36518 14871
- Upgrade Guice to 5.1.0 14300