Skip to main content

Apache Pulsar 2.8.2

2021-12-20​

Security​

  • Upgrade to Log4J 2.17.0 to mitigate CVE-2021-45105 #13392
  • Upgrade Netty to 4.1.72 - CVE-2021-43797 #13328
  • Bump log4j to 2.15.0 #13226
  • Revert new AuthorizationProvider method #13133
  • Support CLEAR_BACKLOG namespace op after enable auth #12963
  • Upgrade netty to 4.1.68.Final #12218
  • Support disabling non-TLS service ports #11681
  • Upgrade Jetty to 9.4.43.v20210629 #11660

Broker​

  • Fix and improve topic ownership assignment #13069
  • Fix LeaderElectionService.getCurrentLeader and add support for empheralOwner in MockZooKeeper #13066
  • Do not reuse the Failed OpAddEntry object which leads to the bundle unloading timeout. #12993
  • Remove readerCaches and close reader when exception occurs in SystemTopicBasedTopicPoliciesService #12873
  • Fix TopicPoliciesCacheNotInitException issue. #12773
  • Support UNSUBSCRIBE namespace op after enabling auth #12742
  • Fix race condition in PersistentTopic#addReplicationCluster #12729
  • Even if always compatible is set, consumers cannot be created #12721
  • Fix the incorrect total size when BrokerEntryMetadata is enabled #12714
  • Fix lost compaction data due to compaction properties missed during reset-cursor #12698
  • Fix TestRunMain test #12675
  • Support GET_METADATA topic op after enabling auth #12656
  • Fix false positive ownership check in OwnershipCache#checkOwnership #12650
  • Optimize exception information for schemas #12647
  • Add @Test annotation to test methods #12640
  • Support retry when creating reader of Topic Policies #12622
  • Fix String should use equals but not ==. #12619
  • Fix 12614, waitingForPingResponse needs to be modified with volatile for concurrent sence #12615
  • Cleanup ProxyPublishConsumeTest #12607
  • Avoid passing OpAddEntry across a thread boundary in asyncAddEntry #12606
  • Do not move the non-durable cursor position when trimming ledgers while topic with compaction #12602
  • Allow GetTopicsOfNamespace op with consume permission #12600
  • Allow configuring schema compatibility policy for system topics #12598
  • Cleanup already deleted namespace topics. #12597
  • Fix additional servlets NAR might extract to null directory #12585
  • Fix log typo in NamespaceService#checkHeartbeatNamespace #12582
  • Add OpAddEntry to pendingAddEntries after the state check #12570
  • Cancel scheduled tasks when deleting ManagedLedgerImpl #12565
  • Add git branch information for PulsarVersion #12541
  • Websocket should pass the encryption context to consumers #12539
  • The count of topics on the bundle is less than 2,skip split #12527
  • Fix the reader skips compacted data which original ledger been removed #12522
  • Fix messageDedup delete inactive producer name #12493
  • Optimize the code: remove extra spaces #12470
  • Future completed twice in the method of impl.MLPendingAckStore#closeAsync #12362
  • Fix the race of delete subscription and delete topic #12240
  • Disable stats recorder for built-in PulsarClient #12217
  • Fix delete authentication policies when deleting topics. #12215
  • Optimize the memory usage of Cache Eviction #12045
  • Avoid adding duplicated BrokerEntryMetadata #12018
  • Fix update ledger list to znode version mismatch failed, ledger not delete #12015
  • Fix messages in TopicPolicies will never be cleaned up #11928
  • Fix returned wrong hash ranges for the consumer with the same consumer name #12212
  • Add Key_Shared metadata to topic stats #11839
  • Fix build from submodules (broker, transaction coordinator) #11795
  • Add method to clear up transaction buffer snapshot #11934
  • Increase the test stability of transactionTest #11541
  • Add maven.restlet.org repository #13248
  • Fix and improve topic ownership assignment (#13069) #13117
  • Evaluate the current protocol version once #13045
  • Revert "Set default root log level to debug" and make PULSAR_LOG_ROOT_LEVEL default to PULSAR_LOG_LEVEL #12941
  • Catch exceptions in scheduled tasks to prevent unintended cancellation #12853
  • Fix producer getting incorrectly removed from topic's producers map #12846
  • Synchronize updates to the inactiveProducers map in MessageD… #12820
  • Close connection after receiving unexpected SendCommand #12780
  • Fix namespace policy override ignored when creating subscription #12699
  • Update lombok to 1.18.22 #12466
  • Fix skips compacted data for reader/consumer #12464
  • Remove data race in MultiTopicsConsumerImpl to ensure correct message order #12456
  • Fix the retry topic's REAL_TOPIC & ORIGIN_MESSAGE_ID property #12451
  • Change the producer fence error log to debug level #12447
  • Reduce the readFailureBackoff time #12444
  • Fix wrong property name in NamespaceIsolationDataImpl#secondary #12433
  • Optimize SecurityUtility code flow #12431
  • Fix compactor skips data from last compacted Ledger #12429
  • Remove redundant code #12424
  • Fix some tests not enabled in integration tests #12417
  • Use weak ref to ClientConnection for timeout task #12409
  • Fix cherry-pick issue #12397
  • Fix the null point caused by deleting the system topic policy #12367
  • Update delete inactive topic configuration documentation #12350
  • Add log to print exception stack. #12345
  • Avoid potentially blocking calls to metadata on critical threads #12339
  • Fix NPE when removing cursor #12297
  • Print log when configuration is failed to load #12280
  • Fix incorrect returned last message ID while the lastConfirmedEntry with negative entry ID #12277
  • Fix TTL expiry does not take effect #12266
  • The loadbalancer should avoid offload the heartbeat namespace #12252
  • Fix typo of the returned last message ID when the last message ID is from compacted ledger #12237
  • Add support for splitting topics and partition labels in Prometheus #12225
  • Fix lost message issues 12221 #12223
  • Allow to config pulsar client allocator out of memory policy #12200
  • Remove redundant parameters #12188
  • Fix incorrect logger numbers in tests #12168
  • Return the last position of the compacted data while the original data has been deleted #12161
  • Improve exceptions thrown when handling the schema resource #12155
  • Fix prefix setting in JWT authn and avoid multi calls for the getProperty #12132
  • Fix used after recycle issue in OpAddEntry #12103
  • Bugfix: Fix rackaware placement policy init error #12097
  • Fix wrong key-hash selector used for new consumers after all the previous consumers disconnected #12035
  • Fix cherry-pick issue on branch-2.8 #11982
  • Remove unused variable and unnecessary box in NamespaceBundleFactory #11975
  • Print position info when can't find next valid position. #11969
  • Fix NPE ZkBookieRackAffinityMapping #11947
  • Avoid to infinitely split bundle #11937
  • Improved logic for pausing replicated subscription snapshots when no traffic #11922
  • Fix ZKSessionTest.testReacquireLocksAfterSessionLost #11886
  • Schema compatibility strategy in broker level. #11856
  • Use TestRetrySupport for BaseMetadataStoreTests to cleanup state between retries #11771
  • Remove replace_maven-wagon-http-version.sh script #11718
  • Check null or empty instead of catch NPE #11655
  • Avoid duplicate deletion of schema #11640
  • Fix subscribeRateLimiter cannot be disabled #11614
  • Fix race condition in concurrent schema deletion #11606
  • Use get instead of join to avoid getting stuck #11597
  • Avoid to cal getMaximumRolloverTimeMs everytime #11513
  • Fix improper class/method/field modifiers #10837
  • Support max-connection and max-connection-per-IP #10754
  • Allow Integration Tests Jar to be deployed to Maven central #12292

Functions​

  • K8s runtime: force deletion to avoid hung function worker during connector restart #12504
  • Fix k8s pulsar functions containers not exposing metrics port for scraping #12065
  • Enable protobuf-native schema support for function #11868
  • Pass SubscriptionPosition from FunctionDetails to FunctionConfig / SinkConfig #11831
  • Reorganize the context hierarchy for functions #10631
  • Remove the deprecated API usage in HDFS #12080
  • Stop OffsetStore when stopping the connector #12457
  • Support set subscription position #11990
  • Sync to the latest function proto #11853
  • Fix classloader leaks #12973
  • Add missing dependency #12246
  • ConcurrentHashMap should be used for caching producers #11820
  • Support KEY_BASED batch builder for Java based functions and sources #11706

Pulsar Admin​

  • Print topic internal info as formatted JSON #12709
  • Fix last exit code storage #12581
  • Fix the issue of failing to update partitions of topics #11683
  • Perfect judgment conditions of pulsar-admin #12315
  • Fix log level config for pulsar-admin, pulsar-client and pulsar-perf #12915
  • Modify exception of set-properties for namespace #12436
  • Get schema validation enforce add applied #12349

Tiered Storage​

  • Add retry to tolerate the offload index file read failure #12452
  • Fix the read performance issue in the offload readAsync #12443
  • Fix FileSystemManagedLedgerOffloader can not clean up outdated ledger #12309
  • Fix the potential race condition in the BlobStore readhandler #12123

Pulsar SQL​

  • Handle message null schema version in PulsarRecordCursor #12809
  • Pulsar SQL support query big entry data #12448

CLI​

  • Enable CLI to publish non-batched messages #12641
  • Make it possible to disable poolMessages #12108
  • Add total messages when periodic printing throughput #12084
  • Make it possible to disable poolMessages #12090

Unit Test​

  • Broker resource group test optimize fail msg #12438
  • Fix windows test path problem #12398
  • Make AuthenticationTokenTest to run on windows #12329
  • Use correct line separator instead of \n #12143

BookKeeper​

  • Add readWorkerThreadsThrottlingEnabled to conf/bookkeeper.conf #12666
  • UseV2WireProtocol for bookkeeper autorecovery #12311

Proxy​

  • Reduce the severity of log "refreshing key manager" in KeyManagerProxy #12594
  • Set default HTTP proxy request timeout #11971
  • Set default httpProxyTimeout to 5 minutes #12299
  • Fix Pulsar Proxy to re-use authentication instance #12245
  • Fix NPE in ProxyConnection with no auth data #12111
  • Fix ProxyConnection to check for existence of auth_data field #12057