Apache Pulsar v2.5.1 Release Notes

Release Date: 2020-05-11 // almost 4 years ago
  • 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
    • ๐Ÿ›  [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
    • ๐Ÿ›  [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
    • ๐Ÿ‘ป [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 SchemaDefinitionBuilderImpl.java #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
    Adaptors
    • [Adaptor] Skip javadoc task for pulsar-client-kafka-compact modules #5836
    • [Flink-Connector] Get PulsarClient from cache should always return an open instance #6436