github apache/pulsar v2.8.4

latest releases: v3.3.2, v3.0.7, v3.3.2-candidate-1...
2 years ago

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

IO

  • [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](#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

Java Client

  • [improve][java] Improve consumer listener logic #13273
  • [fix][java] Fix ConsumerBuilderImpl#subscribeAsync blocks calling thread #14614
  • [fix][java] Fix partitionsAutoUpdateFuture never completes #14625
  • [fix][java] Fix race condition in consumer redelivery #14687
  • [improve][java] Process maxRedeliverCount is 0 of DeadLetterPolicy #14706
  • [improve][java] Avoid timer task run before previous subscribe complete #14818
  • [fix][java] Fix potentially unfinished CompletableFuture in doReconsumeLater #14947
  • [fix][java] ConsumerBuilderImpl can not set null to deadLetterPolicy. #14980
  • [improve][java] Add test to ensure the message order in listener callbacks #15049
  • [fix][java] Fix performance regression with message listener #15162
  • [fix][java] Fix wrong behavior of deduplication for key based batching #15413
  • [improve][java] improve logic when ACK grouping tracker checks duplicated message id #15465
  • [fix][java] Remove consumer when close consumer command is received #15761
  • [fix][java] Fix conversion of TimestampMillisConversion has no effect when Jsr310Conversion is enabled #15863
  • [fix][java] Remove producer when close producer command is received #16028
  • [fix][java] Fix thread safety issue of LastCumulativeAck #16072
  • [improve][java] Send CloseConsumer on client timeout #16616
  • [fix][java] Fix ReconsumeLater will hang up if retryLetterProducer exception #16655
  • [fix][java] Fix load trust certificate #16789
  • [fix][java] Remove redundant check for chunked message TotalChunkMsgSize in ConsumerImpl #16797
  • [fix][java] Forget to update memory usage when message is invalid #16835
  • [fix][java] Fix PatternTopicsChangedListener blocked when topic removed #16842
  • [fix][java] Fix MaxQueueSize semaphore release leak in createOpSendMsg #16915

C++ Client

  • [improve][cpp] Expose getLastMessageId in the Reader API #11723
  • [fix][cpp] Fix hasMessageAvailable returns wrong value for last message #13883
  • [fix][cpp] Fix thread safety issue for multi topic consumer #14380
  • [fix][cpp] Fix wrong unit of Access Token Response's expires_in field #14554
  • [fix][cpp] Handle exception in creating socket when fd limit is reached #14587
  • [cleanup][cpp] Add braces around initialization of subobject #14735
  • [fix][cpp] Fix producer is never destructed until client is closed #14797
  • [fix][cpp] Fix flaky tests about reference count #14854
  • [fix][cpp] Fix segmentation fault when creating socket failed #14834
  • [fix][cpp] Fix the race condition of connect timeout task #14823
  • [fix][cpp] Fix send callback might not be invoked in key-based batching #14898
  • [fix][cpp] Fix connection is not closed when broker closes the connection to proxy #15009
  • [fix][cpp] Fix single message metadata not set correctly #15072
  • [fix][cpp] Fix UnknownError might be returned for a partitioned producer #15161
  • [improve][cpp] Remove the flaky and meaningless tests #15271
  • [improve][cpp] Wait until event loop terminates when closing the Client #15316
  • [fix][cpp] Avoid race condition causing double callback on close #15508
  • [fix][cpp] Generate correct well-known OpenID configuration URL #15928
  • [fix][cpp] Rename function name: pulsar_producer_configuration_set_crypto_failure_action #16031
  • [cleanup][cpp] Clean up C++ client curl configuration #16064
  • [fix][cpp] Fix the close of Client might stuck or return a wrong result #16285
  • [improve][cpp] Fix flaky C++ ClientTest.testWrongListener #16510

Python Client

  • [fix][python] Fix generated Python protobuf code not compatible with latest protobuf package #15846

WebSocket Client

  • [fix][ws] Fix MultiTopicReader#getConsumer ClassCastException 15534

Don't miss a new pulsar release

NewReleases is sending notifications on new releases.