All Versions
Latest Version
Avg Release Cycle
26 days
Latest Release
579 days ago

Changelog History
Page 2

  • v2.5.1 Changes

    May 11, 2020

    2.5.1 โ€” 2020-04-20

    ๐Ÿ”‹ Features

    • PIP-55: Refresh Authentication Credentials #6074
    • ๐Ÿ‘ Namespace level support offloader #6183
    • โฌ†๏ธ Upgrade Avro to 1.9.1 #5938
      • Avro 1.9.1 enables the JSR310 datetimes by default, which might introduce some regression problems if users use generated source code by Avro compiler 1.8.x and contains datetimes fields. It's better to use Avro 1.9.x compiler to recompile.
    • ๐Ÿ‘Œ Support unload all partitions of a partitioned topic #6187
    • ๐Ÿ‘Œ Supports evenly distribute topics count when splits bundle #6241
    • ๐Ÿ‘ KeyValue schema support for pulsar sql #6325
    • โฌ†๏ธ Bump netty version to 4.1.45.Final #6424
    • ๐Ÿ‘Œ Support BouncyCastle FIPS provider #6588
    • ๐Ÿ‘Œ Improve Key_Shared subscription message dispatching performance. #6647
    • โž• Add JSR310 logical type conversion. #6704
    • ๐Ÿ”ง Introduce maxMessagePublishBufferSizeInMB configuration to avoid broker OOM #6178

    ๐Ÿ›  Fixes

    • ๐Ÿ›  [Broker] Fixed NPE occurs when getting partitioned topic stats #6060
    • ๐Ÿ›  [Broker] Fixed zero queue consumer message redelivery #6076
    • ๐Ÿ›  [Broker] Fixed message redelivery for zero queue consumer while using async api to receive messages #6090
    • ๐Ÿ›  [broker] Fixed bug that backlog message that has not yet expired could be deleted due to TTL #6211
    • ๐Ÿšš [Broker] Remove problematic semicolon from conf #6303
    • ๐Ÿ›  [Broker] Fixed broker to specify a list of bookie groups #6349
    • ๐Ÿ›  [Broker] Fixed create consumer on partitioned topic while disable topic auto creation #5572
    • [Broker] Fix maven broken link #6068
    • ๐Ÿ›  [Broker] Fixed java code errors reported by lgtm. #6398
    • ๐Ÿ›  [Broker] Fixed memory leak when running topic compaction. #6485
    • ๐Ÿ›  [Broker] Fixed admin getLastMessageId return batchIndex #6511
    • โšก๏ธ [Broker] Fixed topic with one partition cannot be updated #6560
    • ๐Ÿ›  [Broker] Fixed negative un-ack messages in consumer stats #5929
    • โšก๏ธ [broker] Fixed bug that tenants whose allowed clusters include global cannot be created/updated #6275
    • ๐Ÿ›  [Broker] Fixed log compaction for flow control/empty topic/last deletion #6237
    • โช [Broker] Fixed restore clusterDispatchRate policy for compatibility #6176
    • [Broker] Fix some async method problems at PersistentTopicsBase. #6483
    • [Broker] This "earlier" message should be avoided to emit when reset cursor.#6393
    Managed Ledger
    • ๐Ÿ›  [Managed Ledger] Fixed consumer received duplicated delayed messages upon restart #6404
    Pulsar Proxy
    • ๐Ÿ›  [Proxy] Fixed correct name for proxy thread executor name #6460
    • ๐Ÿ›  [Proxy] Fixed logging for published messages #6474
    • ๐Ÿ‘ท [Proxy] Fixed proxy routing to functions worker #6486
    • ๐Ÿ›  [Zookeeper] Fixed casting in ZooKeeperCache.getDataIfPresent() #6313
    Pulsar Functions
    • ๐Ÿšš [Function] remove future.join() from PulsarSinkEffectivelyOnceProcessor #6361
    Pulsar SQL
    • โœ… [SQL] Fixed integration Pulsar SQL test failed #6279
    ๐Ÿ”’ Security
    • ๐Ÿ›  Fixed publish buffer limit does not take effect #6431
    • ๐Ÿ›  Fixed the bug of authenticationData is't initialized. #6440
    Pulsar Schema
    • ๐Ÿ›  [Schema] Fixed get schema version in HttpLookupService. #6193
    • ๐Ÿ›  [Schema] Fixed avro schema decode error ClassCastException in Pulsar Function #6662
    • ๐Ÿ›  [Schema] Fixed channel write error handling for send get raw schema request #6650
    Java client
    • ๐Ÿ›  [Client] Fixed available permits may be greater than 1 even though queue size is 0. #6106
    • ๐Ÿ›  [Client] Fixed broker client tls settings error #6128
    • ๐Ÿ›  [Client]Fixed hasMessageAvailable() #6362
    • ๐Ÿ›  [Client] Fixed duplicate key to send propertys #6390
    • ๐Ÿ›  [Client] fixed deadlock on send failure #6488
    • ๐Ÿ›  [Client] Fixed NPE while call getLastMessageId #6562
    • ๐Ÿ”ง [Client] Fixed the max backoff configuration for lookups #6444
    C++ client
    • ๐ŸŽ [C++] Fixed static linking on C++ lib on MacOS #5581
    • ๐Ÿ›  [C++] Fixed memory corruption on ExecutorService destructor #6270
    • ๐Ÿ›  [C++] Fixed handling of canceled timer events on NegativeAcksTracker #6272
    • ๐Ÿ›  [C++] Fixed for possible deadlock when closing Pulsar client #6277
    • ๐Ÿ›  [C++] Fixed Unacked Message Tracker by Using Time Partition on C++ #6391
    • ๐Ÿ›  [C++] Fixed Redelivery of Messages on UnackedMessageTracker When Ack Messages . #6498
    Python Client
    • ๐Ÿ“ฆ [Python Client]Fixed the enum34 package not found #6401
    Pulsar Websocket
    • ๐Ÿ›  [Websocket] Fixed Websocket doesn't set the correct cluster data #6102
    ๐Ÿš€ Deployments
    • ๐Ÿ›  [Helm] Autorecovery - Fixed could not find or load main class #6373
    • [Helm]: Start proxy pods when at least one broker pod is running #6158

    โœจ Enhancements

    Pulsar Broker
    • [Broker] close managed-ledgers before giving up bundle ownership to avoid bad zk-version #5599
    • ๐ŸŒ [Broker] Add timeout to search for web service URLs to avoid web threads getting stuck #6124
    • [Broker] Flush the potential duplicated message when add messages to a batch. #6326
    • ๐Ÿ“‡ [Broker] Avoid getting partition metadata while the topic name is a partition name. #6339
    • ๐Ÿ›  [Broker] Fixed create partitioned topic with a substring of an existing topic name. #6478
    • [Broker] Do not retry on authorization failure #6577
    • โšก๏ธ [Broker]Handle BadVersionException thrown by updateSchemaLocator() #6683
    • ๐Ÿ”ง [Broker] Expose bookkeeper expose explicit lac configuration in broker.conf #5822
    • [Broker] Allow to enable/disable delayed delivery for messages on namespace #5915
    • [Broker] Prevent creation of regular topic with the same name as existing partitioned topic #5943
    • [Broker] Reset cursor with a non-exists position #6120
    • 0๏ธโƒฃ [Broker] Use fully qualified hostname as default to advertise brokers #6235
    • โฑ [broker] Timeout API calls in BrokerService #6489
    • [Broker] Start namespace service and schema registry service before start broker. #6499
    • [Broker] Disable channel auto read when publish rate or publish buffer exceeded #6550
    • [Broker] Resume some servercnx method to public #6581
    • [Broker] Enable get precise backlog and backlog without delayed messages. #6310
    • [Broker] Avoid using same OpAddEntry between different ledger handles #5942
    • [Broker] Clean up closed producer to avoid publish-time for producer #5988
    • ๐Ÿ‘ [Broker] Support delete inactive topic when subscriptions caught up #6077
    • ๐ŸŒฒ [Broker] Add a message on how to make log refresh immediately when starting a component #6078
    • [Pulsar Admin] allow tenant admin to manage subscription permission #6122
    • ๐ŸŒฒ [Broker] Output resource usage rate to log on broker #6152
    • [Broker] Creating a topic does not wait for creating cursor of replicators #6364
    • [Broker] Stop increase unacked messages for the consumer with Exclusive/Failover subscription mode. #6558
    • [Broker] Not allow sub auto create by admin when disable topic auto create #6685
    • ๐Ÿ‘ป [Zookeeper] Close ZK before canceling future with exception #6399
    • โฌ†๏ธ [ZooKeeper] Upgrade ZooKeeper to 3.5.7 #6329
    Pulsar IO
    • โœ… [IO] Adds integration test for RabbitMQ #6033
    Pulsar Functions
    • ๐Ÿšš [Function] remove future.join() from PulsarSinkEffectivelyOnceProcessor #6361
    Stats & Monitoring
    • ๐Ÿ”Š [Broker] Add backlogSize in topicStats #5914
    • [Broker] Expose lastConsumedTimestamp and lastAckedTimestamp to consumer stats #6051
    • ๐Ÿ‘Œ Improve backlogSize stats in the topic. #6700
    ๐Ÿ”’ Security
    • Validate tokens for binary connections #6233
    • Create namespace failed when TLS is enabled in PulsarStandalone #6457
    • ๐Ÿ‘‰ Use more granular permissions for topics #6504
    Pulsar Schema
    • [Schema] Independent schema is set for each consumer generated by topic #6356
    • [Schema] Extract an original avro schema from the "$SCHEMA" field using reflection. If it doesn't work, the process falls back generation of the schema from POJO.#6406
    • [Schema] Add verification for #6405
    Java client
    • [Client] Start reader inside batch result in read first message in batch. #6345
    • [Client] Stop shade snappy-java in pulsar-client-shaded #6375
    • โฑ [Client] MultiTopics discovery is broken due to discovery task scheduled twice instead of pendingBatchReceiveTask #6407
    • [Client] Make SubscriptionMode a member of ConsumerConfigurationData #6337
    • [Client] Should set either start message id or start message from roll back duration. #6392
    • [Client] BatchReceivePolicy implements Serializable. #6423
    • ๐Ÿšš [Client] Remove duplicate cnx method #6490
    • [Client] Pulsar Java client: Use System.nanoTime() instead of System.currentTimeMillis() to measure elapsed time #6454
    • โœ… [Client] Make tests more stable by using JSONAssert equals #6247
    • [Client] make acker in BatchMessageIdImpl transient #6064
    C++ client
    • ๐Ÿ [C++] Windows CMake corrections #6336
    • [C++] Avoid calling redeliverMessages() when message list is empty #6480
    • [C++] Improve cpp-client-lib: provide another libpulsarwithdeps.a in dep/rpm #6458
    Python Client
    • ๐Ÿ‘ [Python Client] Support generate pulsar-client for python3.8#6741
    ๐Ÿš€ Deployments
    • [Helm] Explicit statement env-var 'BOOKIE_MEM' and 'BOOKIE_GC' for values-mini.yaml #6340
    • [Helm] Add missing check to dashboard-ingress #6160
    • ๐Ÿ‘‰ Make kubernetes yamls for aws operational #6192
    • Ensure JVM memory and GC options are set for bookie #6201
    • 0๏ธโƒฃ Default functionAuthProvider when running in k8s #6203
    • [Adaptor] Skip javadoc task for pulsar-client-kafka-compact modules #5836
    • [Flink-Connector] Get PulsarClient from cache should always return an open instance #6436
  • v2.5.1-candidate

    April 15, 2020
  • v2.5.0

    January 15, 2020
  • v2.5.0-candidate

    December 09, 2019
  • v2.4.2

    December 04, 2019
  • v2.4.2-candidate Changes

    November 28, 2019


  • v2.4.1 Changes

    September 04, 2019

    2.4.1 โ€” 2019-08-30

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed wrong serialize of batchBuilder in ProducerConfigurationData #4620
    • ๐Ÿ›  Fixed SchemaInfo properties losing when registering schema using admin api #4617
    • ๐Ÿ›  Fixed wrong topic domain returned by get partitioned topic #4613
    • ๐Ÿ›  Fixed pulsar-dashboard wrong count number of bundles #4637
    • ๐Ÿ›  Fixed partitionIndex error in consumer for a single partitioned topic #4591
    • ๐Ÿ›  Fixed deadlock on get-status rest-api call in broker #4616
    • ๐Ÿ›  Fixed deadlock in subscribeAsync demo #4649
    • ๐Ÿ›  Fixed C++ client lookup error over HTTP in standalone #4625
    • ๐Ÿ›  Fixed NPE at managed-ledger when fetch reader internal-stats #4615
    • ๐Ÿ›  Fixed C++ client producer sendAsync() hang when no enough batched message #4657
    • ๐Ÿ›  Fixed issue when submitting NAR via file url #4577
    • ๐Ÿ“‡ Renamed C++ logger enum names to avoid conflicts with compiler macros #4664
    • ๐Ÿ›  Fixed leaking of pulsar-io-influxdb in distribution #4678
    • ๐Ÿ›  Fixed the default port for https and http in admin client #4623
    • ๐Ÿ›  Fixed wrong schema delete when checking compatibility #4669
    • ๐Ÿ›  Fixed docker/ doesn't work for pulsar-all and pulsar-standalone images #4705
    • ๐Ÿ›  Fixed integration-test failure when execute pip3 install pulsar_client #4754
    • โž• Added log folder in pulsa-function-go back #4736
    • ๐Ÿ›  Fixed Pulsar SQL NPE when predicate pushdown for publish_time #4744
    • ๐Ÿ›  Fixed redelivered message logic of partition topic #4653
    • ๐Ÿ›  Fixed C++ log level names in Log4cxxLogger #4735
    • ๐Ÿ›  Fixed go function package not executable #4743
    • โž• Added anonymous role to proxy configuration #4733
    • โž• Added kubernetes namespace to function instance url #4701
    • ๐Ÿ›  Fixed go function not parse conf content first #4746
    • Made PulsarKafkaProducer thread safe #4745
    • ๐Ÿ›  Fixed messages not get acked if there is not sink topic #4815
    • ๐Ÿ›  Fixed bug when function package jar/py/go and runtime is not set #4814
    • ๐Ÿ›  Fixed topic loading in rest-api not time out in zooKeeperOperationTimeoutSeconds #4805
    • ๐Ÿ›  Fixed default retention policy miss upload to zk #4810
    • โž• Added checking function implements correct interface #4844
    • ๐Ÿ›  Fixed retention size policy bug #4825
    • Catch throwable in interceptors of consumer and producer #4860
    • ๐Ÿ›  Fixed first position in managedLedger is ahead of the last #4853
    • ๐Ÿ›  Fixed concurrent access of uninitializedCursors in ManagedLedgerImpl.asyncOpenCursor #4837
    • ๐Ÿ›  Fixed schema not found handling in pulsar-sql #4890
    • ๐Ÿ›  Fixed requests not respect no_proxy env variable in dashboard #4867
    • ๐Ÿ›  Fixed broken replication msg to specific cluster #4930
    • ๐Ÿ›  Fixed dashboard peek parse message error #4918
    • ๐Ÿ›  Fixed StructSchema reader cache loading logic #4962
    • ๐Ÿ›  Fixed fd leakage in FunctionActioner.downloadFile #4970
    • Fixed python function str bytes convert in example #4946
    • ๐Ÿ›  Fixed NPE while cleaning up namespace node #4965
    • ๐Ÿ›  Fixed the getSchema logic in pulsar proxy #4975
    • ๐Ÿ›  Fixed warning by add default loader for latest pyyaml #4974
    • ๐Ÿ›  Fixed snappy compressor compile error in pulsar-client-cpp #4972
    • Reinitialize certain components for externally managed runtimes when moving functions #5007
    • โฌ†๏ธ Upgraded jackson-databind #5011
    • ๐Ÿ›  Fixed the problem of missing dependencies less in docker #5034
    • ๐Ÿ›  Fixed duplicated Prometheus TYPE in broker metrics #4183
    • ๐Ÿ›  Fixed pulsar sink and source state by init state earlier #5046

    โœจ Enhancements

    • Re-factored Component implementation #4541
    • Provided a clock for generating publish timestamp for producers #4562
    • โฌ‡๏ธ Reduced unnecessary track message calls #4595
    • ๐Ÿ‘Œ Supported dynamic configure with escape char #4611
    • โž• Added null check for function/source/sink configs #4627
    • โž• Added delete dynamic config api #4614
    • ๐Ÿ”ง Made broker replication mtls configuration dynamic #4609
    • โž• Added authorization to function worker REST endpoints #4628
    • ๐Ÿ‘Œ Improved and add authorization to function download and upload #4644
    • ๐Ÿ‘ Allowed consumer retrieve the sequence id that the producer set #4645
    • โž• Added perPartition parameter to partitioned-stats API #4639
    • ๐Ÿ‘Œ Supported Pulsar schema for pulsar kafka client wrapper #4534
    • ๐Ÿ‘Œ Supported delete and update event for JDBC Sink #4358
    • โœ… Cleaned up tests in the presto module #4683
    • โž• Added allowAutoTopicCreation to broker.conf and related configuration #4694
    • ๐Ÿ”„ Changed to use classloaders to load Java functions #4685
    • โœ‚ Removed fixed server type check in kerberos #4758
    • ๐Ÿ”„ Changed type of publish_time to timestamp #4757
    • โž• Added read-timeout to admin-request #4762
    • โž• Added checking of deleted schema when adding schema #4731
    • โž• Added strand to C++ client for exclusive control #4750
    • โž• Added support to create partitioned topic with 1 partition #4764
    • โž• Added getters and setters to PulsarService & BrokerService #4709
    • โž• Added configure ack-timeout tick time #4760
    • โž• Added options to rewrite namespace delimiter for pulsar sql #4749
    • ๐Ÿ‘ Made Pulsar SQL supports pulsar's primitive schema #4728
    • โž• Added basic authentication capabilities to Pulsar SQL #4779
    • ๐Ÿ‘Œ Improved SchemaInfoProvider to fetch schema info asynchronously #4836
    • ๐Ÿ‘Œ Supported KeyValue schema use AUTO_CONSUME as key/value schema #4839
    • Provided action type for insert in pulsar-io-jdbc #4862
    • Made partition as internal column in pulsar-sql #4888
    • โž• Added option to disable authentication for proxy /metrics #4921
  • v2.4.1-candidate

    August 28, 2019
  • v2.4.0 Changes

    July 05, 2019


    2.4.0 โ€” 2019-06-30


    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fix possible message loss using peer-cluster feature #3426
    • ๐Ÿ›  Fix pulsar standalone does not read zk port from conf/standalone.conf #3790
    • ๐Ÿ›  Fix some issues of ZkIsolatedBookieEnsemblePlacementPolicy #3917 #3918
    • ๐Ÿ›  Fix NPE when unload non-existent topic #3946
    • ๐Ÿ›  Fix race condition while deleting global topic #4173
    • ๐Ÿ›  Fix deadlock on skip messages #4411
    • ๐Ÿ›  Fix NPE when closing batch during a reconnection #4427
    • ๐Ÿ›  Fix race condition of read-timeout task in managed ledger #4437
    • 0๏ธโƒฃ Disable sticky read by default #4526
    • ๐Ÿ›  Fix race condition between timeout-task and add-call complete #4455

    โœจ Enhancements

    • โšก๏ธ Optimize message replay for large backlog consumer #3732
    • โž• Added support for websocket produce/consume command #3835
    • โž• Added support for TTL config in broker.conf #3898
    • โฌ‡๏ธ Reduce memory used in ClientCnx for pending lookups #4104
    • โฌ‡๏ธ Reduce number of hashmap sections for ledger handles cache #4102
    • โž• Added backlog and offloaded size in Prometheus stats #4150
    • โž• Added support for configure the managed ledger cache eviction frequency #4066
    • โž• Added support to avoid payload copy when inserting into managed ledger cache #4197
    • โž• Added support to cache unack-messageId into OpenRangeSet #3819
    • โž• Added support configure static PulsarByteBufAllocator to handle OOM errors #4196
    • Auto refresh new tls certs for jetty webserver #3645
    • Create non-persistent topic by pulsar-admin/rest api #3625
    • Consumer priority-level in Failover subscription #2954

    ๐Ÿ”’ Security

    • โž• Added support for other algorithms in token auth #4528

    Namespace Policies

    • โž• Added support for tenant based bookie isolation #3933
    • โž• Added support for secondary bookie isolation group at namespace #4458
    • โž• Added support for secondary bookie-isolation-group #4261
    • โž• Added support for replicator rate limit between clusters #4273
    • 0๏ธโƒฃ Disable backlog quota check by default #4320

    Tiered Storage

    • โž• Added support for Pulsar SQL to read data from tiered storage #4045

    Pulsar Schema

    • โž• Added schema versioning to support multi version messages produce and consume #3876 #3670 #4211 #4325 #4548
    • โž• Added TRANSITIVE schema check strategies to support compatibility check over all existing schemas #4214
    • โž• Added schema data validator #4360
    • โž• Added support for delete schema when deleting a topic #3941
    • โž• Added generic record builder #3690

    Pulsar IO

    • โž• Added IO connector for flume source and sink #3597
    • โž• Added IO connector for redis sink #3700
    • โž• Added IO connector for solr sink #3885
    • Hide kafka-connecter details for easy use debezium connector #3825
    • โž• Added IO connector for debezium PostgreSQL source #3924
    • โœจ Enhancements for RabbitMQ source configuration #3937
    • โž• Added IO connector for RabbitMQ sink #3967
    • โž• Added IO connector for InfluxDB sink #4017

    Pulsar functions

    • โž• Added support for authentication #3735 #3874 #4198
    • ๐Ÿ›  Fix NPE when stats manager not initialized #3891
    • โž• Added async state manipulation methods #3798
    • ๐Ÿ›  Fix fail to update functions in effectively-once mode #3993
    • โž• Added labels to function statefulsets and services #4038
    • โž• Added support for set key for message when using function publish #4005
    • ๐Ÿ‘‰ Use negative acknowledge to instead ackTimeout #4103
    • ๐Ÿ›  Fix backward compatibility with 2.2 auth not working #4241

    Java client

    • โž• Added negative acks #3703
    • โž• Added support for backoff strategy configuration #3848
    • โž• Added support for configure TypedMessageBuilder through a Map conf object #4015
    • โž• Added interceptor for negative ack send #3962
    • โž• Added support for seek operate on reader #4031
    • Store key part of KeyValue schema into pulsar message keys #4117
    • โž• Added interceptor for ack timeout #4300
    • โž• Added support for snappy compression #4259
    • โž• Added support for key based batcher #4435

    Python client

    • โž• Added negative acks #3816
    • โž• Added support for snappy compression #4319

    Go client

    • โž• Added negative acks #3817
    • โž• Added support for go schema #3904
    • โž• Added support for snappy compression #4319
    • โž• Added support for Key_Shared subscription #4465

    C++ client

    • โž• Added negative acks #3750
    • ๐Ÿ›  Fix ack timeout when subscribing to regex topic #3897
    • โž• Added support for Key_Shared subscription #4366


    • ๐Ÿ”ง In Kafka client wrapper, added some configurations #3753 #3797 #3843 #3887 #3991
    • In Apache Flink connector, allow to specify a custom Pulsar producer #3894 and client authentication #3949
    • ๐Ÿ‘ In Apache Flink connector, added support for accept ClientConfigurationData, ProducerConfigurationData, ConsumerConfigurationData #4232
    • In Apache Storm connector, fix NPE while emitting next tuple #3991 and some add some enhancements #4280 #4239#4238 #4236 #4495 #4494

    ๐Ÿ‘€ For a complete list of issues fixed, see


  • v2.4.0-candidate Changes

    June 26, 2019