Skip to main content

Apache Pulsar 2.9.3

2022-07-19

Important notice

  • [PIP-146] ManagedCursorInfo compression #14542
  • [PIP-153] Optimize metadataPositions in MLPendingAckStore #15137
  • [PIP-163] Add lowWaterMark check before appending entry to TB #15424

Broker

  • [cleanup][broker] Cleanup already deleted namespace topics #12597
  • [cleanup][broker] Override close method to avoid caching exception #15529
  • [cleanup][broker] Remove useless code to avoid confusion in OpReadEntry#checkReadCompletion #15104
  • [fix][broker] Avoid heartbeat topic to offload #15008
  • [fix][broker] Cancel fencedTopicMonitoringTask when topic closed normally #15202
  • [fix][broker] Check for blank advertised listener name #14306
  • [fix][broker] Close publishLimiter when disable it #15520
  • [fix][broker] Fast return if ack cumulative illegal #15695
  • [fix][broker] Fix MessageDeduplication#inactiveProducers may not be persistence correctly #15206
  • [fix][broker] Fix MultiRolesTokenAuthorizationProvider authorize issue #15454
  • [fix][broker] Fix NPE in MessageDeduplication #15820
  • [fix][broker] Fix NPE when ledger id not found in OpReadEntry #15837
  • [fix][broker] Fix NPE when put value to RangeCache #15707
  • [fix][broker] Fix NPE when set AutoTopicCreationOverride #15653
  • [fix][broker] Fix NPE when subscription is already removed #14363
  • [fix][broker] Fix REST produce msg redirect issue #15551
  • [fix][broker] Fix call sync method in onPoliciesUpdate method #13885
  • [fix][broker] Fix call sync method in onPoliciesUpdate method #15227
  • [fix][broker] Fix cannot delete namespace with system topic #14730
  • [fix][broker] Fix creating producer failure when set backlog quota #15663
  • [fix][broker] Fix creating system namespace topic failure #14949
  • [fix][broker] Fix deadlock in broker after race condition in topic creation failure #15570
  • [fix][broker] Fix getPendingAckInternalStats redirect issue #14876
  • [fix][broker] Fix inconsistent prompt message when schema version is empty using AVRO #14626
  • [fix][broker] Fix incorrect entryId in warning logs when reading an entry from tiered storage #14685
  • [fix][broker] Fix metadata store deadlock when checking BacklogQuota #14634
  • [fix][broker] Fix no value present #14891
  • [fix][broker] Fix normal topic named ends with healthcheck becomes system topic issue #14671
  • [fix][broker] Fix parameter saslJaasBrokerSectionName in broker.conf #15110
  • [fix][broker] Fix potential to add duplicated consumer #15051
  • [fix][broker] Fix precision issue and initial value for Consumer#avgMessagesPerEntry #14666
  • [fix][broker] Fix problem at RateLimiter#tryAcquire #15306
  • [fix][broker] Fix producerFuture not completed in ServerCnx#handleProducer #14467
  • [fix][broker] Fix race condition between timeout and completion in OpAddEntry #15233
  • [fix][broker] Fix race condition in updating lastMarkDeleteEntry field #15031
  • [fix][broker] Fix rewind failed when redeliverUnacknowledgedMessages #15046
  • [fix][broker] Fix topic policy reader close bug #14897
  • [fix][broker] Fix typo in enum name and handle closing of the channel properly since writeAndFlush is asynchronous #15384
  • [fix][broker] Fix when nextValidLedger is null caused NPE #13975
  • [fix][broker] Fix wrong prompt exception when getting the non-persistent topic list without GET_BUDNLE permission #14638
  • [fix][broker] Fix wrong state for non-durable cursor #14869
  • [fix][broker] Fix wrong unit of NIC speed on Linux #15770
  • [fix][broker] Fix 404 error msg not being returned correctly using http lookup #14677
  • [fix][broker] Follow up on race condition fixes in ManagedCursorImpl #15067
  • [fix][broker] Remove the loadbalance/bundle-data node #13164
  • [fix][broker] Return if reset in progress #14978
  • [fix][broker] Use dispatchRateLimiterLock to update dispatchRateLimiter #15601
  • [fix][broker] When skipping updating mark delete position, execute callback with executor to prevent deadlock #15971
  • [fix][broker] Expose configurationMetadataStore and localMetadataStore #15661
  • [fix][broker] Filter the virtual NIC with relative path #14829
  • [fix][broker] Fix MetadataStoreException$NotFoundException while doing topic lookup #15633
  • [fix][broker] Fix calculation in getNumberOfEntriesInStorage #15627
  • [fix][broker] Fix error log miss stack trace when create tenant fail #14366
  • [fix][broker] Fix resource group does not report usage #15292
  • [fix][broker] Fix duplicated delayed messages when all consumers disconnect #14740
  • [fix][broker] Fix the pid occupied check when using pulsar-daemon start or stop process #14701
  • [fix][broker] Fix potential NPE in Replicator #15003
  • [improve][broker] Add log when updating namespace policies with error #14850
  • [improve][broker] Add publishRateLimitedTimes to topic metrics #15739
  • [improve][broker] Avoid using blocking calls for the async method checkTopicOwnership #15023
  • [improve][broker] Cancel offload tasks when managed ledger closed #14545
  • [improve][broker] Close connection if a ping or pong message cannot be sent #15382
  • [improve][broker] Configure DLog Bookie, Pulsar, and Admin clients via pass-through config #15818
  • [improve][broker] Full-support SSL provider, ciphers, and protocols for broker service and proxy service #14569
  • [improve][broker] Ignore the print the log that the topic does not exist #13535
  • [improve][broker] Optimize RawReader#create when using Compactor #14447
  • [improve][broker] Optimize find nics process #14340
  • [improve][broker] Optimize memory usage: support to shrink for pendingAcks map #14515
  • [improve][broker] Provide an accurate error message when set autoTopicCreation #14684
  • [improve][broker] Reduce unnecessary expansions for ConcurrentLong map and set #14562
  • [improve][broker] Set splitNamespaceBundle with readonly=false #14680
  • [improve][broker] Skip unnecessary DNS resolution when creating AuthenticationDataHttp instance #15221
  • [improve][broker] Support advertised listeners for HTTP and HTTPS services #14839
  • [improve][broker] Support shrink for ConcurrentSortedLongPairSet #15354
  • [improve][broker] Support shrink for map or set #14663
  • [improve][broker] Support shrink in ConcurrentLongHashMap #14497
  • [improve][broker] Switch to rely on Netty for Hostname Verification #15824
  • [improve][broker] Use shrink map for message redelivery #15342
  • [improve][broker] Use tlsCertRefreshCheckDurationSec instead of 0 for refresh value #15075
  • [improve][broker] Add metrics for pulsar web service thread pool #15741
  • [improve][broker] Allow pulsar_tool_env.sh PULSAR_MEM to be Overridden #15868
  • [improve][broker] Ignore case when obfuscating passwords in configuration scripts #15077

Transaction

  • [fix][txn] Close the transaction buffer when deleting topics #14895
  • [fix][txn] Fix potentially unfinishable future. #15208
  • [fix][txn] Fix potentially unfinished CompletableFuture #14973
  • [fix][txn] Fix transaction PendingAck lowWaterMark #15530
  • [fix][txn] Fix transaction REST API redirect issue #15017
  • [fix][txn] Fix transaction admin redirect get 500 due to getCause #14965
  • [fix][txn] Fix transaction pendingAckStore asyncMarkDelete #14974
  • [fix][txn] Make transaction stats consistent at end txn #15472
  • [fix][txn] Properly close transaction-buffer-sub non durable cursor #14900
  • [fix][txn] Topic transaction buffer recover don't close reader when throw RuntimeException #15361
  • [fix][txn] TransactionMetadataService don't connect again if store exist #15114
  • [fix][txn] Avoid too many ServiceUnitNotReadyException for transaction buffer handler #14894
  • [fix][txn] Fix NPE of TransactionMetaStoreHandler #15840
  • [fix][txn] Fix cannot enable transaction when is allow auto update schema enabled=fasle #14809
  • [fix][txn] Fix pending ack is recovering throw CursorAlreadyClosedxception #14781
  • [fix][txn] Fix some exception handle in transaction buffer #14808
  • [fix][txn] Fix transaction buffer no snapshot close recover reader #14830
  • [fix][txn] Fix transaction buffer recover BrokerMetadataException close topic #14709
  • [fix][txn] Fix transaction buffer recover reader and writer fail #14801
  • [fix][txn] Fix transaction buffer recover throw cursor already close #14807
  • [fix][txn] Fix transaction log recover throw cursor already close #14810
  • [fix][txn] Fix transaction pending ack store managed ledger WriteFail state #14738
  • [fix][txn] Fix transaction producer stuck problem #15061
  • [fix][txn] Fix transaction component recover fillQueue #15418
  • [fix][txn] Fix transasction ack batch message #15875
  • [improve][txn] Avoid creating multiple future and exception handlers #15089
  • [improve][txn] Improve transaction perf logs #14816
  • [improve][txn] Optimize topic lookup when TC end tx #14991
  • [improve][txn] Optimize transaction lowWaterMark to clean useless data faster #15592
  • [improve][txn] Support configurable transactionBufferClientOperationTimeoutInMills #15011

Security

  • [fix][auth] Add timeout of sync methods and avoid call sync method for AuthoriationService #15694
  • [fix][auth] Fix debug log authenticate role error #14784
  • [fix][auth] Fix grant all permissions but can't list topic #15501
  • [fix][auth] Fix handling single role and non-jwt-token in MultiRolesTokenAuthorizationProvider #14857
  • [fix][auth] Generate correct well-known OpenID configuration URL #15928
  • [fix][auth] Role with namespace produce authz can also get topics #15740
  • [improve][auth] Add KeyStore support in WebSocket, Function Worker HTTPS Servers #15084
  • [improve][auth] Allow to config web server's cipher and protocols #13354
  • [improve][auth] Full-support set SSL provider, ciphers, and protocols #13740
  • [improve][auth] Improve skipping of DNS resolution when creating AuthenticationDataHttp instance #15228
  • [improve][auth] Optimize the logic of allowing namespace operation #15731
  • [improve][auth] Remove sensitive msg from consumer/producer stats log #15483

Admin

  • [fix][admin] Fix NPE in PulsarAdminBuilder when the service is not set #14769
  • [fix][admin] Fix pulsar-admin not prompting message when there is a 500 error #14856
  • [fix][admin] Fix reach max tenants error if the tenant already exists #15932
  • [fix][admin] Fix typo in validation message #16021
  • [fix][admin] Remove the trust certs check #14764

Proxy

  • [fix][proxy] Fix proxy connection leak when inbound connection closes while connecting is in progress #15366
  • [fix][proxy] Log warning when opening connection to broker fails #14710
  • [fix][proxy] Remove unnecessary blocking DNS lookup in LookupProxyHandler #15415
  • [fix][proxy] Fix DNS server denial-of-service issue when DNS entry expires #15403
  • [improve][proxy] Configure Netty DNS resolver to match JDK DNS caching setting, share DNS resolver instance in Proxy #15219
  • [improve][proxy] Refactor Proxy code and fix connection stalling by switching to auto read mode #14713

Pulsar SQL

  • [fix][sql] Fix the decimal type error convert in json schema #15687
  • [improve][sql] Add Java version trim agent for presto 332 #15236
  • [improve][sql] Pulsar SQL support for Decimal data type #15153

Function

  • [fix][function] Pass configured metricsPort to k8s runtime #14502
  • [fix][function] Check executor null when close the FileSource #15247
  • [fix][function] Fix pulsar-managed runtimes failed start function with package URL from package management service #14814
  • [fix][function] Fix some IOExceptions when create functions from package URL #14553
  • [fix][function] Handle NPE when getLeader returns null #15058
  • [fix][function] Provide default error handler for function log appender #15728
  • [fix][function] Refine file io connector #15250

Connector

  • [fix][connector] Pass client builder if no service URL is provided to Debezium connector #12145
  • [fix][connector] Throw exceptions when Kafka offset backing store failed to start #14491

Tiered Storage

  • [fix][tiered-storage] Fix NoClassDefFoundError: com/google/inject/AbstractModule in pulsar-io/batch-data-generator and Jcloud offloader #14150
  • [improve][tiered-storage] Add debug information #14907
  • [improve][tiered-storage] Add pure S3 provider for the offloader #15710
  • [improve][tiered-storage] Reduce CPU usage when offloading the ledger #15063
  • [improve][tiered-storage] Upgrade JClouds to 2.5.0 #15649

Dependencies

  • Add suppression for Kotlin stdlib CVE-2022-24329 - part 2 #14715
  • Add suppression for Kotlin stdlib CVE-2022-24329 #14629
  • Bump pyyaml from 5.3.1 to 5.4.1 to solve CVE-2020-14343 #15989
  • Fix false positive google-http-client-gson-1.41.0.jar #15651
  • Java version trim agent presto332 branch2.9 #15326
  • Remove --illegal-access errors resulting from Google Guice (upgrade to 5.0.1 and JClouds to 2.4.0) #13810
  • Remove --illegal-access errors resulting from Google Guice - Pulsar IO, Offloaders and Pulsar SQL - Bump Guice to 5.1.0 #14300
  • Upgrade BookKeeper to 4.14.5 (2.8, 2.9, 2.10 branches) #15581
  • Upgrade Hadoop to 3.3.3 to get rid of CVE-2022-26612 #15660
  • Upgrade Netty Reactive Streams to 2.0.6 #15990
  • Upgrade Netty to 4.1.76.Final, Netty Tcnative, grpc and protobuf #15212
  • Upgrade Netty to 4.1.77.Final and netty-tcnative to 2.0.52.Final #15646
  • Upgrade jackson and jackson-databind (2.13.2.1) to get rid of CVE-2020-36518 #14871
  • Use grpc-bom to align grpc library versions #15234
  • Remove log4j for CVE-2022-23307 #15109