Skip to content

v3.3.0

Compare
Choose a tag to compare
@coderzc coderzc released this 05 Jun 16:26
· 575 commits to master since this release
v3.3.0

PIP

  • PIP-315: Configurable max delay limit for delayed delivery (#21798)
  • PIP-321 Introduce allowed-cluster at the namespace level (#21648)
  • PIP-324: Alpine Docker images (#21716)
  • PIP-325: Add command to abort transaction (#21731)
  • PIP-326: Create a BOM to ease dependency management (#21747)
  • PIP-329: Strategy for maintaining the latest tag to Pulsar docker images (#21872)
  • PIP-330: getMessagesById gets all messages (#21873)
  • PIP 342: Support OpenTelemetry metrics in Pulsar client (#22178)
  • PIP-343: Use picocli instead of jcommander (#22181)
  • PIP-344 Correct the behavior of the public API pulsarClient.getPartitionsForTopic(topicName) (#22182)
  • PIP-335: Oxia metadata plugin (#22009)
  • PIP-339: Introducing the --log-topic Option for Pulsar Sinks and Sources (#22071)

Broker

  • [admin][broker] Fix force delete subscription not working (#22423)
  • [cleanup][admin] Remove unused methods in PersistentTopicsBase (#22424)
  • [cleanup][broker] Remove unused NamespaceBundleFactory parameter when creating OwnershipCache (#22482)
  • [cleanup][broker]∂ fix doc for TransactionBuffer#isTxnAborted (#21956)
  • [cleanup][broker] fix return value of TransactionTimeoutTrackerImpl#addTransaction (#22020)
  • [cleanup][broker] remove useless code comment (#22459)
  • [cleanup][meta] Remove com.beust.jcommander.internal import (#22294)
  • [cleanup][ml] ManagedCursor clean up. (#22246)
  • [cleanup][test] remove useless TestAuthorizationProvider2 (#22595)
  • [feat][admin] Enable Gzip Compression by Default in Admin Client (#22464)
  • [feat][admin] PIP-330: getMessagesById gets all messages (#21918)
  • [feat][broker] Implementation of PIP-323: Complete Backlog Quota Telemetry (#21816)
  • [feat][broker] PIP-264: Add Java runtime metrics (#22616)
  • [feat][broker] PIP-264: Add topic messaging metrics (#22467)
  • [feat][misc] Add Pulsar BOM (Bill of Materials) (#21871)
  • [feat][misc] PIP-264: Implement topic lookup metrics using OpenTelemetry (#22058)
  • [feat][misc] PIP-320: Add OpenTelemetry scaffolding (#22010)
  • [fix] Fix Reader can be stuck from transaction aborted messages. (#22610)
  • [fix] Fixed implicit conversions from long -> int (#22055)
  • [fix] Include swagger annotations in shaded client lib (#22570)
  • [fix] Restored method as deprecated in AbstractMetadataStore (#21950)
  • [fix] Test was leaving client instance to null (#22631)
  • [fix][admin] Clearly define REST API on Open API (#22783)
  • [fix][admin] Clearly define REST API on Open API for Namesaces@v2 (#22775)
  • [fix][admin] Clearly define REST API on Open API for Topics (#22782)
  • [fix][admin] Fix can't delete tenant for v1 (#22550)
  • [fix][admin] Fix deprecated check (#22653)
  • [fix][admin] Fix namespace admin api exception response (#22587)
  • [fix][admin][part-1]Clearly define REST API on Open API (#22774)
  • [fix][broker] Add the missed opentelemetry-sdk-testing dependency to tests of pulsar-broker-auth-sasl (#22665)
  • [fix][broker] Avoid being stuck when closing the broker with extensible load manager (#22573)
  • [fix][broker] Avoid consumers receiving acknowledged messages from compacted topic after reconnection (#21187)
  • [fix][broker] Avoid execute prepareInitPoliciesCacheAsync if namespace is deleted (#22268)
  • [fix][broker] Avoid expired unclosed ledgers when checking expired messages by ledger closure time (#22335)
  • [fix][broker] Check cursor state before adding it to the waitingCursors (#22191)
  • [fix][broker] Check the broker is available for the SLA monitor bundle when the ExtensibleLoadManager is enabled (#22485)
  • [fix][broker] Close dispatchers stuck due to mismatch between dispatcher.consumerList and dispatcher.consumerSet (#22270)
  • [fix][broker] Continue closing even when executor is shut down (#22599)
  • [fix][broker] Create new ledger after the current ledger is closed (#22034)
  • [fix][broker] Delete compacted ledger when topic is deleted (#21745)
  • [fix][broker] Disable system topic message deduplication (#22582)
  • [fix][broker] Do not migrate internal topics during Blue-Green Migration when ExtensibleLoadBalancer is used (#22478)
  • [fix][broker] Enabling batch causes negative unackedMessages due to ack and delivery concurrency (#22090)
  • [fix][broker] Expire messages according to ledger close time to avoid client clock skew (#21940)
  • [fix][broker] Fix BufferOverflowException and EOFException bugs in /metrics gzip compression (#22576)
  • [fix][broker] Fix NPE causing dispatching to stop when using Key_Shared mode and allowOutOfOrderDelivery=true (#22533)
  • [fix][broker] Fix OpReadEntry.skipCondition NPE issue (#22367)
  • [fix][broker] Fix PersistentSubscription duplicate implementation interface Subscription (#22359)
  • [fix][broker] Fix Replicated Topic unload bug when ExtensibleLoadManager is enabled (#22496)
  • [fix][broker] Fix ResourceGroup report local usage (#22340)
  • [fix][broker] Fix ResourceGroups loading (#21781)
  • [fix][broker] Fix String wrong format (#21829)
  • [fix][broker] Fix a deadlock in SystemTopicBasedTopicPoliciesService during NamespaceEventsSystemTopicFactory init (#22528)
  • [fix][broker] Fix break change: could not subscribe partitioned topic with a suffix-matched regexp due to a mistake of PIP-145 (#21885)
  • [fix][broker] Fix broken topic policy implementation compatibility with old pulsar version (#22535)
  • [fix][broker] Fix broker not starting when both transactions and the Extensible Load Manager are enabled (#22139)
  • [fix][broker] Fix can not subscribe partitioned topic with a suffix-matched regexp (#22025)
  • [fix][broker] Fix compaction/replication data loss when expire messages (#21865)
  • [fix][broker] Fix configurationMetadataSyncEventTopic is marked supporting dynamic setting, but not implemented (#22684)
  • [fix][broker] Fix consumer stops receiving messages when with large backlogs processing (#22454)
  • [fix][broker] Fix deadlock while skip non-recoverable ledgers. (#21915)
  • [fix][broker] Fix getMessageById throws 500 (#21919)
  • [fix][broker] Fix hash collision when using a consumer name that ends with a number (#22053)
  • [fix][broker] Fix invalid condition in logging exceptions (#22412)
  • [fix][broker] Fix issue of field 'topic' is not set when handle GetSchema request (#22377)
  • [fix][broker] Fix issue with GetMessageIdByTimestamp can't find match messageId from compacted ledger (#21600)
  • [fix][broker] Fix leader broker cannot be determined when the advertised address and advertised listeners are configured (#21894)
  • [fix][broker] Fix message drop record in producer stat (#22458)
  • [fix][broker] Fix metrics pulsar_topic_load_failed_count is 0 when load non-persistent topic fails and fix the flaky test testBrokerStatsTopicLoadFailed (#22580)
  • [fix][broker] Fix nothing changed after removing dynamic configs (#22673)
  • [fix][broker] Fix potential NPE when disabling the liveness check (#21840)
  • [fix][broker] Fix reader stuck when read from compacted topic with read compact mode disable (#21969)
  • [fix][broker] Fix returns wrong webServiceUrl when both webServicePort and webServicePortTls are set (#21842)
  • [fix][broker] Fix schema deletion error when deleting a partitioned topic with many partitions and schema (#21977)
  • [fix][broker] Fix thread safety of loadSheddingTask and loadResourceQuotaTask fields (#22660)
  • [fix][broker] Fix typo (#21843)
  • [fix][broker] Fix typo in CompactedTopicImpl. (#22235)
  • [fix][broker] Fix typos in Consumer class (#22532)
  • [fix][broker] Fix typos in PersistentTopic class (#22364)
  • [fix][broker] Fix typos in UniformLoadShedder class (#21907)
  • [fix][broker] Fix write all compacted out entry into compacted topic (#21917)
  • [fix][broker] Fix wrong double-checked locking for readOnActiveConsumerTask in dispatcher (#22279)
  • [fix][broker] Make ExtensibleLoadManagerImpl.getOwnedServiceUnits async (#22727)
  • [fix][broker] One topic can be closed multiple times concurrently (#17524)
  • [fix][broker] Optimize /metrics, fix unbounded request queue issue and fix race conditions in metricsBufferResponse mode (#22494)
  • [fix][broker] Part-1: Replicator can not created successfully due to an orphan replicator in the previous topic owner (#21946)
  • [fix][broker] Part-2: Replicator can not created successfully due to an orphan replicator in the previous topic owner (#21948)
  • [fix][broker] Prevent long deduplication cursor backlog so that topic loading wouldn't timeout (#22479)
  • [fix][broker] Reader stuck after call hasMessageAvailable when enable replicateSubscriptionState (#22572)
  • [fix][broker] Replication stopped due to unload topic failed (#21947)
  • [fix][broker] Restore the broker id to match the format used in existing Pulsar releases (#21937)
  • [fix][broker] Return getOwnerAsync without waiting on source broker upon Assigning and Releasing and handle role change during role init (#22112)
  • [fix][broker] Sanitize values before logging in apply-config-from-env.py script (#22044)
  • [fix][broker] Set ServiceUnitStateChannel topic compaction threshold explicitly, improve getOwnerAsync, and fix other bugs (#22064)
  • [fix][broker] Skip topic.close during unloading if the topic future fails with ownership check, and fix isBundleOwnedByAnyBroker to use ns.checkOwnershipPresentAsync for ExtensibleLoadBalancer (#22379)
  • [fix][broker] Subscription stuck due to called Admin API analyzeSubscriptionBacklog (#22019)
  • [fix][broker] Support OIDC providers with JWK without alg field set in keys (#22421)
  • [fix][broker] Support lookup options for extensible load manager (#22487)
  • [fix][broker] Support running docker container with gid != 0 (#22081)
  • [fix][broker] Unify topic-level policies enable judgment conditions (#19501)
  • [fix][broker] Update TransferShedder underloaded broker check to consider max loaded broker's msgThroughputEMA and update IsExtensibleLoadBalancerImpl check (#22321)
  • [fix][broker] Update topic partition failed when config maxNumPartitionsPerPartitionedTopic<0 (#22397)
  • [fix][broker] Update topic policies as much as possible when some ex was thrown (#21810)
  • [fix][broker] add timeout for health check read. (#21990)
  • [fix][broker] avoid offload system topic (#22497)
  • [fix][broker] correct compaction phase one timeout meaning (#21908)
  • [fix][broker] fix mismatch between dispatcher.consumerList and dispatcher.consumerSet (#22283)
  • [fix][broker] fix the wrong value of BrokerSrevice.maxUnackedMsgsPerDispatcher (#21765)
  • [fix][broker] print non log when delete partitioned topic failed (#22153)
  • [fix][broker]Fix NonPersistentDispatcherMultipleConsumers ArrayIndexOutOfBoundsException (#21856)
  • [fix][broker]Support setting autoSkipNonRecoverableData dynamically in expiryMon… (#21991)
  • [fix][broker][admin] Fix cannot update properties on NonDurable subscription. (#22411)
  • [fix][misc] Make ConcurrentBitSet thread safe (#22361)
  • [fix][misc] NPE during standalone shutdown (#22636)
  • [fix][misc] Rename all shaded Netty native libraries (#22415)
  • [fix][ml] Fix NPE of getValidPositionAfterSkippedEntries when recovering a terminated managed ledger (#22552)
  • [fix][ml] Fix retry mechanism of deleting ledgers to invalidate (#21869)
  • [fix][ml] Mark delete stuck due to switching cursor ledger fails (#22662)
  • [fix][ml] No rollover inactive ledgers when metadata service invalid (#22284)
  • [fix][ml]Expose ledger timestamp (#22338)
  • [fix][offload] Break the fillbuffer loop when met EOF (#22722)
  • [fix][offload] Fix OOM in tiered storage, caused by unbounded offsets cache (#22679)
  • [fix][offload] Fix Offload readHandle cannot close multi times. (#22162)
  • [fix][offload] Increase file upload limit from 2048MiB to 4096MiB for GCP/GCS offloading (#22554)
  • [fix][sec] Revert "[fix][sec] Add a check for the input time value (#22023)" (#22243)
  • [fix][sec] Add a check for the input time value (#22023)
  • [fix][sec] Dismiss warning about MD5 since it's sufficient for these use cases (#22282)
  • [fix][sec] Go Functions security updates (#21844)
  • [fix][sec] implicit narrowing conversion in compound assignment (#22074)
  • [fix][storage] ReadonlyManagedLedger initialization does not fill in the properties (#22630)
  • [fix][txn] Get previous position by managed ledger. (#22024)
  • [fix][txn]Fix TopicTransactionBuffer potential thread safety issue (#22149)
  • [fix][txn]Handle exceptions in the transaction pending ack init (#21274)
  • [fix][ws] Check the validity of config before start websocket service (#22231)
  • [improve] Added CodeQL static scanner (#22037)
  • [improve] Make the config metricsBufferResponse description more effective (#22490)
  • [improve] PIP-335: Pulsar with Oxia integration test (#22045)
  • [improve] PIP-342: OTel client metrics support (#22179)
  • [improve] Removed unnecessary native libraries from Docker images (#22230)
  • [improve] Retry re-validating ResourceLock with backoff after errors (#22617)
  • [improve] Run Trivy image scanner with the current image (#22386)
  • [improve] Update Oxia client to 0.1.6 (#22525)
  • [improve][admin] Align the auth and check it at the first place for topic related API (#22507)
  • [improve][admin] Add authorization test for schema and align auth for transaction (#22399)
  • [improve][admin] Align the auth and check it at the first place for topic related API (#22342)
  • [improve][admin] Check if the topic existed before the permission operations (#22547)
  • [improve][admin] Expose the offload threshold in seconds to the amdin (#22101)
  • [improve][admin] Fix the createMissingPartitions doesn't response correctly (#22311)
  • [improve][broker] Add an error log to troubleshoot the failure of starting broker registry. (#22065)
  • [improve][broker] Add createTopicIfDoesNotExist option to RawReader constructor (#22264)
  • [improve][broker] Add fine-grain authorization to ns/topic management endpoints (#22305)
  • [improve][broker] Add fine-grain authorization to retention admin API (#22163)
  • [improve][broker] Add logging to leader election (#22645)
  • [improve][broker] Add logs to getInternalStats for quickly locate problem when schema ledger is lost (#22233)
  • [improve][broker] Add missing configuration keys for caching catch-up reads (#22295)
  • [improve][broker] Add topic name to emitted error messages. (#22506)
  • [improve][broker] Apply loadBalancerDebugModeEnabled in LeastResourceUsageWithWeight (#22549)
  • [improve][broker] Avoid repeated Read-and-discard when using Key_Shared mode (#22245)
  • [improve][broker] Cache the internal writer when sent to system topic. (#22099)
  • [improve][broker] Change log level to reduce duplicated logs (#22147)
  • [improve][broker] Close TopicPoliciesService to allow Pulsar broker graceful shutdown (#22589)
  • [improve][broker] Consistently add fine-grain authorization to REST API (#22202)
  • [improve][broker] Create partitioned topics automatically when enable topic level replication (#22537)
  • [improve][broker] Deprecate unused enableNamespaceIsolationUpdateOnTime config (#22449)
  • [improve][broker] Disable JFR metric reporting in OpenTelemetry (#22669)
  • [improve][broker] Do not close the socket if lookup failed due to LockBusyException (#21993)
  • [improve][broker] Do not print an Error log when responding to HTTP-404 when calling Admin API and the topic does not exist. (#21995)
  • [improve][broker] Do not retain the data in the system topic (#22022)
  • [improve][broker] Do not try to open ML when the topic meta does not exist and do not expect to create a new one. #21995 (#22004)
  • [improve][broker] Don't log brokerClientAuthenticationParameters and bookkeeperClientAuthenticationParameters by default (#22395)
  • [improve][broker] Don't rollover empty ledgers based on inactivity (#21893)
  • [improve][broker] Don't use forkjoin pool by default for deleting partitioned topics (#22598)
  • [improve][broker] Exclude producers for geo-replication from publishers field of topic stats (#22556)
  • [improve][broker] Improve Gzip compression, allow excluding specific paths or disabling it (#22370)
  • [improve][broker] Improve NamespaceUnloadStrategy error message (#21880)
  • [improve][broker] Include runtime dependencies in server distribution (#22001)
  • [improve][broker] Make BrokerSelectionStrategy pluggable (#22553)
  • [improve][broker] Optimize gzip compression for /metrics endpoint by sharing/caching compressed result (#22521)
  • [improve][broker] Optimize web interface deleteDynamicConfiguration return error message (#22356)
  • [improve][broker] PIP-299-part-1: Stop dispatch messages if the individual acks will be lost in the persistent storage (#21423)
  • [improve][broker] PIP-299-part-2: add config dispatcherPauseOnAckStatePersistentEnabled (#21370)
  • [improve][broker] PIP-299-part-3: Add dynamic config support: dispatcherPauseOnAckStatePersistentEnabled (#21837)
  • [improve][broker] PIP-299-part-4: Add topic-level policy: dispatcherPauseOnAckStatePersistent (#21874)
  • [improve][broker] PIP-299-part-5: Add namespace-level policy: dispatcherPauseOnAckStatePersistent (#21926)
  • [improve][broker] PIP-307: Add feature flag config option (#21866)
  • [improve][broker] PIP-307: Add monitoring metrics for graceful closure of producers/consumers (#21854)
  • [improve][broker] Propagate cause exception in TopicBusyException when applicable (#22596)
  • [improve][broker] Recover susbcription creation on the broken schema ledger topic (#22469)
  • [improve][broker] Reduce ResourceGroup log (#21957)
  • [improve][broker] Reduce the duplicated null check for LeaderElectionService (#22465)
  • [improve][broker] Remove the atomicity on active consumer of a dispatcher (#22285)
  • [improve][broker] Repeat the handleMetadataChanges callback when configurationMetadataStore equals localMetadataStore (#22519)
  • [improve][broker] Servlet support response compression (#21667)
  • [improve][broker] Skip loading the NAR packages if not configured (#21867)
  • [improve][broker] Support X-Forwarded-For and HA Proxy Protocol for resolving original client IP of http/https requests (#22524)
  • [improve][broker] Support create RawReader based on configuration (#22280)
  • [improve][broker] backlog quota exceed limit log replaced with debug (#22488)
  • [improve][broker] defer the ownership checks if the owner is inactive (ExtensibleLoadManager) (#21811)
  • [improve][broker] perf: Reduce stickyHash calculations of non-persistent topics in SHARED subscriptions (#22536)
  • [improve][doc] Improve doc for maxTotalReceiverQueueSizeAcrossPartitions and receiverQueueSize of ConsumerBuilder (#21841)
  • [improve][log] Print source client addr when enabled haProxyProtocolEnabled (#22686)
  • [improve][meta] Log a warning when ZK batch fails with connectionloss (#22566)
  • [improve][misc] Add mandatory checkbox about release policy in the issue template (#22267)
  • [improve][misc] Include native epoll library for Netty for arm64 (#22319)
  • [improve][misc] Remove the call to sun InetAddressCachePolicy (#22329)
  • [improve][misc] Specify /pulsar/data as the home dir for the user in the Alpine based image (#22447)
  • [improve][ml] Filter out deleted entries before read entries from ledger. (#21739)
  • [improve][offload] Apply autoSkipNonRecoverableData configuration to tiered storage (#22531)
  • [improve][offload] Replace usage of shaded class in OffsetsCache (#22683)
  • [improve][proxy] Add a check for brokerServiceURL that does not support multi uri yet (#21972)
  • [improve][storage] Periodically rollover Cursor ledgers (#22622)
  • [improve][pip] PIP-339: Introducing the --log-topic Option for Pulsar Sinks and Sources (#22071)
  • [improve][txn] Add command to abort transaction (#21630)
  • [improve][ws] Add memory limit configuration for Pulsar client used in Websocket proxy (#22666)
  • [improve][pip] PIP-324: Alpine image (#22054)

Pulsar IO and Pulsar Functions

  • [bug][fn] Prevent putstate uses empty values (#22127)
  • [fix][fn] Add missing version field back to querystate API (#21966)
  • [fix][fn] Prevent create state table from API calls for non-exists instances (#22107)
  • [fix][fn] Throw 404 RestException when state key not found (#21921)
  • [fix][fn] Use unified PackageManagement service to download packages (#21955)
  • [fix][fn] fix broken function-go test (#22260)
  • [fix][fn]make sure the classloader for ContextImpl is functionClassLoader in different runtimes (#22501)
  • [improve][fn] Add configuration for connector & functions package url sources (#22184)
  • [improve][fn] Add missing "exception" argument to some log.error (#22140)
  • [improve][fn] Expose RuntimeFlags as CLI option for Pulsar Functions and Connectors (#22514)
  • [improve][fn] Optimize Function Worker startup by lazy loading and direct zip/bytecode access (#22122)
  • [improve][fn] Pass FunctionDetails to Go instance (#22350)
  • [improve][fn] Show the class name of exceptions for pulsar functions (#21833)
  • [feat][io] AzureDataExplorer/Kusto Sink for Pulsar (#22006)
  • [fix][io] CompressionEnabled didn't work on elasticsearch sink (#22565)
  • [fix][io] Fix es index creation (#22654)
  • [fix][io] Kafka Source connector maybe stuck (#22511)
  • [improve][io]: Add validation for JDBC sink not supporting primitive schema (#22376)

CLI

  • [cleanup][cli] Cleanup jcommander (#22337)
  • [improve][cli] CmdConsume print publishTime And eventTime info. (#22308)
  • [improve][cli] PIP-343: Refactor pulsar-perf to subcommand (#22388)
  • [improve][cli] PIP-343: Use picocli instead of jcommander in bin/pulsar (#22288)
  • [improve][cli] PIP-343: Use picocli instead of jcommander in pulsar-client-tools (#22209)
  • [improve][cli] PIP-343: Use picocli instead of jcommander in pulsar-function (#22331)
  • [improve][cli] PIP-343: Use picocli instead of jcommander in pulsar-perf (#22303)
  • [improve][cli] Remove cli unnecessary code (#22161)
  • [improve][cli] error out when --destinationBroker is set when --bundle is empty (#21879)
  • [fix][cli] Fix help option (#22408)
  • [fix][cli] Fix the bug when set-retention specified size with -T (#22150)
  • [fix][cli] Fix typos in CmdSinks class (#22358)
  • [fix][cli] Remove defaultValue of tenant/namespace for CmdFunctions (#22764)

Client

  • [feat][client] Introduce Refresh API in the TableView (#21417)
  • [fix][client] Consumer lost message ack due to race condition in acknowledge with batch message (#22353)
  • [fix][client] Do no retrying for error subscription not found when disabled allowAutoSubscriptionCreation (#22164)
  • [fix][client] Fix Consumer should return configured batch receive max messages (#22619)
  • [fix][client] Fix ConsumerBuilderImpl#subscribe silent stuck when using pulsar-client:3.0.x with jackson-annotations prior to 2.12.0 (#21985)
  • [fix][client] Fix DLQ producer name conflicts when multiples consumers send messages to DLQ (#21890)
  • [fix][client] Fix client side memory leak when call MessageImpl.create and fix imprecise client-side metrics: pendingMessagesUpDownCounter, pendingBytesUpDownCounter, latencyHistogram (#22393)
  • [fix][client] Fix messages in the batch container timed out unexpectedly (#21889)
  • [fix][client] Fix multi-topics consumer could receive old messages after seek (#21945)
  • [fix][client] Fix wrong results of hasMessageAvailable and readNext after seeking by timestamp (#22363)
  • [fix][client] GenericProtobufNativeSchema not implement getNativeSchema method. (#22204)
  • [fix][client] Messages lost due to TopicListWatcher reconnect (#21853)
  • [fix][client] Unclear error message when creating a consumer with two same topics (#22255)
  • [fix][client] fix Reader.hasMessageAvailable might return true after seeking to latest (#22201)
  • [fix][client] fix huge permits if acked a half batched message (#22091)
  • [fix][client]Fixed getting an incorrect maxMessageSize value when accessing multiple clusters in the same process (#22306)
  • [improve][client] Mention partitioning in failover priorityLevel javaDoc (#21980)
  • [improve][client] add physicalAddress as part of connection pool key (#22196)

Library updates

  • [fix] Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /pulsar-function-go/examples (#22262)
  • [fix] Bump golang.org/x/net from 0.17.0 to 0.23.0 in /pulsar-function-go (#22540)
  • [fix] Bump org.apache.solr:solr-core from 8.11.1 to 8.11.3 in /pulsar-io/solr (#22047)
  • [fix] Upgrade Alpine packages at build time to fix CVE-2023-4236 (#22763)
  • [fix] Upgrade jose4j to 0.9.4 (#22273)
  • [fix][broker] upgrade jclouds 2.5.0 -> 2.6.0 (#22220)
  • [fix][sec] Upgrade Bouncycastle to 1.78 (#22509)
  • [fix][sec] Upgrade Debezium oracle connector version to avoid CVE-2023-4586 (#22641)
  • [fix][sec] Upgrade Jetty to 9.4.54.v20240208 to address CVE-2024-22201 (#22144)
  • [fix][sec] Upgrade Zookeeper to 3.9.2 to address CVE-2024-23944 (#22275)
  • [fix][sec] Upgrade aws-sdk.version to avoid CVE-2024-21634 (#22633)
  • [fix][sec] Upgrade commons-compress to 1.26.0 (#22086)
  • [fix][sec] Upgrade elasticsearch-java version to avoid CVE-2023-4043 (#22640)
  • [improve] Upgrade to Oxia client 0.2.0 (#22663)
  • [improve][misc] Upgrade to Bookkeeper 4.17.0 (#22551)
  • [improve][misc] Upgrade to Bookkeeper 4.16.5 (#22484)
  • [improve][bk] Upgrade BookKeeper dependency to 4.16.4 (#21983)
  • [improve][build] Upgrade Lombok to 1.18.32 for Java 22 support (#22425)
  • [improve][build] Upgrade OTel library versions (#22649)
  • [improve][build] Upgrade OWASP Dependency check version to 9.1.0 (#22530)
  • [improve][ci] Upgrade GitHub Actions versions to fix deprecation warning (#21978)
  • [improve][ci] Upgrade Gradle Enterprise maven extension version (#22096)
  • [improve][ci] Upgrade codecov-action version (#22123)
  • [improve][ci] Upgrade deprecated GitHub Actions to supported versions (#22620)
  • [improve][ci] Upgrade pulsar-client-python to 3.4.0 to avoid CVE-2023-1428 (#21899)
  • [improve][ci] Upgrade to actions/upload-artifact@v4 (#21836)
  • [improve][misc] Upgrade Netty version to 4.1.105.Final (#21923)
  • [improve][misc] Upgrade checkstyle to 10.14.2 (#22291)
  • [improve][misc] Upgrade jersey to 2.41 (#22290)
  • [improve][misc] Upgrade log4j2 to 2.23.1 (#22327)
  • [improve][misc] Upgrade slf4j to 2.0.13 (#22391)
  • [improve][misc] Upgrade to Netty 4.1.108 and tcnative 2.0.65 (#22369)
  • [improve][build] Use slf4j-bom to align slf4j versions (#22646)

Tests & CI

  • [feat][ci] Add Trivy container scan Github workflow (#22063)
  • [fix][ci] Don't allow merging PR without successful result (#22563)
  • [fix][ci] Fix OWASP dep check GH actions workflow (#21831)
  • [fix][ci] Fix labeler GitHub Actions workflow, adapt to v5 configuration format (#22628)
  • [fix][ci] Fix labels for flaky test GitHub issue template (#22434)
  • [fix][ci] Fix snappy-java native lib fails to load in x86 alpine (#22804)
  • [fix][ci] Tolerate mount option change failing in CI (#22241)
  • [improve][ci] Disable test that causes OOME until the problem has been resolved (#22586)
  • [improve][ci] Improve OWASP dependency checks (#21817)
  • [improve][ci] Only run CodeQL when the PR contains changes to non-test java code (#22146)
  • [improve][ci] Require all conversations on code to be resolved before merging PRs (#21832)
  • [improve][ci] Run CodeQL within Pulsar CI workflow as mandatory check (#22132)
  • [improve][ci] Run OWASP dependency check for offloaders and pulsar-io even when main check fails (#21826)
  • [improve][ci] Switch JDK distribution from temurin to corretto (#22238)
  • [improve][ci] revisit tune-runner-vm action, drop tuning for docker (#22448)
  • [fix][test] Clear MockedPulsarServiceBaseTest fields to prevent test runtime memory leak (#22659)
  • [fix][test] Clear fields in test cleanup to reduce memory consumption (#22583)
  • [fix][test] Fix NPE in BookKeeperClusterTestCase tearDown (#22493)
  • [fix][test] Fix Thread.getThreadGroup().getName() NPE (#22070)
  • [fix][test] Fix flaky ManagedLedgerErrorsTest.recoverAfterZnodeVersionError (#22368)
  • [fix][test] Fix flaky RGUsageMTAggrWaitForAllMsgsTest (#22252)
  • [fix][test] Fix flaky test BrokerServiceAutoSubscriptionCreationTest (#22190)
  • [fix][test] Fix flaky test ManagedLedgerTest.testGetNumberOfEntriesInStorage (#22344)
  • [fix][test] Fix flaky test ReplicatorTest (#22594)
  • [fix][test] Fix flaky test testPerTopicExpiredStat (#22018)
  • [fix][test] Fix test code create namespace conflict (#21941)
  • [fix][test] Fix test testAsyncFunctionMaxPending (#22121)
  • [fix][test] Fix test testTransactionBufferMetrics (#22117)
  • [fix][test] Fix the flaky tests of ManagedLedgerImplUtilsTest (#22611)
  • [fix][test] Fix the tests with same namespace name (#22240)
  • [fix][test] Fix thread leak in InjectedClientCnxClientBuilder and EnableProxyProtocolTest (#21878)
  • [fix][test] Fix thread leak in TopicPoliciesAuthZTest (#22257)
  • [fix][test] Flaky-test: ManagedLedgerTest.testTimestampOnWorkingLedger (#22600)
  • [fix][test] Flaky-test: testMessageExpiryWithTimestampNonRecoverableException and testIncorrectClientClock (#22489)
  • [fix][test] Make base test class method protected so that it passes ReportUnannotatedMethods validation (#21976)
  • [fix][test] Move ExtensibleLoadManagerImplTest to flaky tests (#22495)
  • [fix][test] SchemaMap in AutoConsumeSchema has been reused (#22500)
  • [fix][test] fix flaky test shouldProvideConsistentAnswerToTopicLookupsUsingAdminApi (#22249)
  • [fix][test] fix test testSyncNormalPositionWhenTBRecover (#22120)
  • [improve][test] Add operation authentication test for namespace API (#22398)
  • [improve][test] Add policy authentication test for namespace API (#22593)
  • [improve][test] Add topic operation checker for topic API (#22468)
  • [improve][test] Add topic policy test for topic API (#22546)
  • [improve][test] Clear fields in AuthZTest classes at cleanup (#22661)
  • [improve][test] Don't configure Mockito spying for MultiBrokerTestZKBaseTest (#22250)
  • [improve][test] Move ShadowManagedLedgerImplTest to flaky tests (#22526)
  • [improve][test] Move most flaky tests to flaky group (#22433)
  • [improve][test] Reduce AdvertisedListenersMultiBrokerLeaderElectionTest flakiness (#22258)
  • [improve][test] Reduce logging overhead in tests (#22251)
  • [improve][test] Remove redudant test code (#21999)
  • [improve][test] Replace usage of curl in Java test and fix stream leaks (#22463)- [fix][test] Clear MockedPulsarServiceBaseTest fields to prevent test runtime memory leak (#22659)
  • [fix][test] Clear fields in test cleanup to reduce memory consumption (#22583)
  • [fix][test] Fix NPE in BookKeeperClusterTestCase tearDown (#22493)
  • [fix][test] Fix Thread.getThreadGroup().getName() NPE (#22070)
  • [fix][test] Fix flaky ManagedLedgerErrorsTest.recoverAfterZnodeVersionError (#22368)
  • [fix][test] Fix flaky RGUsageMTAggrWaitForAllMsgsTest (#22252)
  • [fix][test] Fix flaky test BrokerServiceAutoSubscriptionCreationTest (#22190)
  • [fix][test] Fix flaky test ManagedLedgerTest.testGetNumberOfEntriesInStorage (#22344)
  • [fix][test] Fix flaky test ReplicatorTest (#22594)
  • [fix][test] Fix flaky test testPerTopicExpiredStat (#22018)
  • [fix][test] Fix test code create namespace conflict (#21941)
  • [fix][test] Fix test testAsyncFunctionMaxPending (#22121)
  • [fix][test] Fix test testTransactionBufferMetrics (#22117)
  • [fix][test] Fix the flaky tests of ManagedLedgerImplUtilsTest (#22611)
  • [fix][test] Fix the tests with same namespace name (#22240)
  • [fix][test] Fix thread leak in InjectedClientCnxClientBuilder and EnableProxyProtocolTest (#21878)
  • [fix][test] Fix thread leak in TopicPoliciesAuthZTest (#22257)
  • [fix][test] Flaky-test: ManagedLedgerTest.testTimestampOnWorkingLedger (#22600)
  • [fix][test] Flaky-test: testMessageExpiryWithTimestampNonRecoverableException and testIncorrectClientClock (#22489)
  • [fix][test] Make base test class method protected so that it passes ReportUnannotatedMethods validation (#21976)
  • [fix][test] Move ExtensibleLoadManagerImplTest to flaky tests (#22495)
  • [fix][test] SchemaMap in AutoConsumeSchema has been reused (#22500)
  • [fix][test] fix flaky test shouldProvideConsistentAnswerToTopicLookupsUsingAdminApi (#22249)
  • [fix][test] fix test testSyncNormalPositionWhenTBRecover (#22120)
  • [improve][test] Add operation authentication test for namespace API (#22398)
  • [improve][test] Add policy authentication test for namespace API (#22593)
  • [improve][test] Add topic operation checker for topic API (#22468)
  • [improve][test] Add topic policy test for topic API (#22546)
  • [improve][test] Clear fields in AuthZTest classes at cleanup (#22661)
  • [improve][test] Don't configure Mockito spying for MultiBrokerTestZKBaseTest (#22250)
  • [improve][test] Move ShadowManagedLedgerImplTest to flaky tests (#22526)
  • [improve][test] Move most flaky tests to flaky group (#22433)
  • [improve][test] Reduce AdvertisedListenersMultiBrokerLeaderElectionTest flakiness (#22258)
  • [improve][test] Reduce logging overhead in tests (#22251)
  • [improve][test] Remove redudant test code (#21999)
  • [improve][test] Replace usage of curl in Java test and fix stream leaks (#22463)

Other

  • [fix][build] Add curl command for pulsar image (#22732)
  • [fix][build] Add special handling for pulsar-bom in set-project-version.sh (#22272)
  • [fix][build] Fix CVE-2024-2511 by upgrading to OpenSSL in docker image (#22731)
  • [fix][build] Fix building java-test-image without setting IMAGE_JDK_MAJOR_VERSION (#22095)
  • [fix][build] Fix potential insufficient protostuff-related configs (#21629)
  • [fix][build] Fix ps command (#22451)
  • [fix][build] Fix pulsar-client-python installation on ARM arch (#22733)
  • [fix][build] Fix the errorprone maven profile (#21834)
  • [fix][build] Fix typo in rename script for windows cmd (#22426)
  • [fix][build] Fixed creation of packages-storage directory in docker image (#22730)
  • [fix][build] Remove duplicate mapping key in docker-compose yaml file (#21979)
  • [improve][build] Bump version to 3.3.0-SNAPSHOT (#21818)
  • [improve][build] Update copyright date (#21830)

A special thanks to the following contributors who contributed to Pulsar 3.3.0:

@freeznet, @dragosvictor, @poorbarcode, @merlimat, @jiangpengcheng, @heesung-sn, @crossoverJie, @mattisonchao, @hanmz, @nikhilerigila09, @izumo27, @pgier, @sherlock-lin, @yaalsn, @thetumbled, @chenhongSZ, @mukesh154, @hangc0276, @gvanyao, @nodece, @Denovo1998, @coderzc, @zhangqian321, @eolivelli, @rdhabalia, @lhotari, @Shawyeok, @BewareMyPower, @dao-jun, @massakam, @teet-vaher-sympower, @Demogorgon314, @Technoboy-, @AnonHxy, @codelipenghui, @liangyepianzhou, @zymap, @jianyun8023, @shibd, @dlg99, @onobc, @nicoloboschi