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

Changelog History
Page 1

  • v2.7.0

    November 30, 2020
  • v2.7.0-candidate

    November 22, 2020
  • v2.6.2 Changes

    November 09, 2020

    🚀 The following lists fixes and enhancements in the 2.6.2 release.


    [Broker] Catch throwable when start pulsar 7221
    ⚡️ [Broker] Protobuf-shaded package can not update version 7228
    [Broker] Check for null arguments in Namespaces Rest API 7247
    [Broker] Handle SubscriptionBusyException in resetCursor api 7335
    [Broker] Converted the namespace bundle unload into async operation 7364
    ⚡️ [Broker] Update Jersey to 2.31 7515
    [Broker] Stop to dispatch when skip message temporally since Key_Shared consumer stuck on delivery 7553
    [Broker] Fix bug where producer for geo-replication is not closed when topic is unloaded 7735
    [Broker] Make resetting cursor in REST API asynchronous 7744
    [Broker] Reestablish namespace bundle ownership from false negative releasing and false positive acquiring 7773
    🔧 [Broker] make pulsar executor pool size configurable 7782
    [Broker] Redirect Get message by id request when broker not serve for the topic 7786
    🔧 [Broker] Make zk cache executor thread pool size configurable 7794
    [Broker] Implement toString() method for TopicMessageIdImpl class 7807
    [Broker] Fix pending batchIndexAcks bitSet batchSize in PersistentAcknowledgmentsGroupingTracker 7828
    [Broker] Fix deadlock when adding consumer 7841
    [Broker] Split message ranges by ledger ID and store them in individualDeletedMessages 7861
    [Broker] Fix pulsar metrics providing wrong information 7905
    [Broker] Don't fail the health check request when trying to delete the previous subscription 7906
    🔧 [Broker] Add configuration to set number of channels per bookie 7910
    [Broker] Fix publish buffer of one ServerCnx calculated multi-times when check broker's publish buffer 7926
    ✏️ [Broker] Add some logging to improve Authentication debugging and Fix typos in code "occured" -> "occurred" 7934
    [Broker] Fix NPE when acknowledge messages at the broker side 7937
    [Broker] Fix the wrong issuer url concatenate 7980
    ⬆️ [Broker] Upgrade the snakeyaml version to 1.26 7994
    📦 [Broker] Exclude vertx from bookkeeper-http package 7997
    [Broker] Check null point before setting auto read 7999
    [Broker] Fix IndexOutOfBoundsException in the KeyShared subscription when dispatching messages to consumers 8024
    ⬆️ [Broker] Upgrade jetty-util version to 9.4.31 8035
    [Broker] Add replicated check to checkInactiveSubscriptions 8066
    [Broker] Add get-last-message-id admin for v1 api 8081
    [Broker] Fix client lookup hangs when broker restarts 8101
    [Broker] Should not cache the owner that does not belong to current server 8111
    👍 [Broker] Support to specify multi ipv6 hosts in brokerServiceUrl 8120
    👻 [Broker] Intercept messages to consumers and add intercept exception 8129
    [Broker] Add ChannelFutures utility class to pulsar-common 8137
    👍 [Broker] Support Disable Replicated Subscriptions 8144
    [Broker] Fix error code returned to client when service unit is not ready 8147
    [Broker] Skip intercepting multipart requests 8156
    🔧 [Broker] Enable intercept filters only when interceptors are configured 8157
    [Broker] Clean inactive non-persistent subscriptions 8166
    [Broker] Add a new state for namespace-level TTL 8178
    [Broker] Fix peek messages failed with subscriptionName not exist 8182
    👻 [Broker] Fix pulsar service close exception 8197
    [Broker] Use ThreadPoolExecutor instead of EventLoop 8208
    📇 [Broker] Close ZK connections at end of metadata setup 8228
    📇 [Broker] Delete associated ledgers before deleting cluster metadata 8244
    [Broker] Fix stuck lookup operations when the broker is starting up 8273
    [Broker] Fix Broker enters an infinite loop in ManagedLedgerImpl.asyncReadEntries 8284
    [Broker] Fix message TTL on Key_Shared subscription and Fix ordering issue when replay messages 8292
    ⚡️ [Broker] Fix race condition in updating readPosition in ManagedCursorImpl 8299
    [Broker] Refresh ZooKeeper-data cache in background to avoid deadlock and blocking IO on ZK thread 8304
    ⬆️ [Broker] Upgrade hdfs2 version to 2.8.5 8319
    ⬆️ [Broker] Upgrade solr version to 8.6.3 8328
    [Broker] Fix deadlock that occurred during topic ownership check 8406


    [Proxy] Add advertisedAddress config field to ProxyConfiguration 7542
    [Proxy] Fix deadlock in pulsar proxy 7690
    ⚡️ [Proxy] Handle NPE while updating proxy stats 7766
    👻 [Proxy] Fix the null exception when starting the proxy service 8019
    🔌 [Proxy] Add proxy plugin interface to support user defined additional servlet 8067

    Pulsar SQL

    ⬆️ [Pulsar SQL] Upgrade Presto version to 332 7194
    [Pulsar SQL] Replace com.ning.asynchttpclient with org.asynchttpclient 8099

    Java Client

    👍 [Java Client] Support input-stream for trustStore cert 7442
    [Java Client] Avoid subscribing the same topic again 7823
    ⚡️ [java Client] Add autoPartitionsUpdateInterval for producer and consumer 7840
    [Java Client] Avoid resolving address for sni-host + thread-safe connection creation 8062
    [Java Client] Websocket interface decode URL encoding 8072
    [Java Client] Always use SNI for TLS enabled Pulsar Java broker client 8117
    ⏱ [Java Client] Improve timeout handling in ClientCnx to cover all remaining request types (GetLastMessageId, GetTopics, GetSchema, GetOrCreateSchema) 8149
    [Java Client] Fix ConsumerImpl memory leaks 8160
    [Java Client] Fix issue where paused consumer receives new message when reconnecting 8165
    🔨 [Java Client] Improve refactored client connection code 8177
    🔧 [Java Client] Add log level configuration in pulsar-client 8195
    🚚 [Java Client] Remove unnecessary locks 8207
    ⚡️ [Java Client] Fix AutoUpdatePartitionsInterval setting problem 8227
    [Java Client] Add read position when joining in the consumer stats 8274
    👍 [Java Client] Support reset cursor to a batch index of the batching message 8285
    👍 [Java Client] Support exclude the message when reset cursor by message ID 8306
    ⏱ [Java Client] Increasing timeout for pulsar client io threads to shutdown 8316
    👍 [Java Client] Support cancelling message & batch futures returned from Reader & Consumer 8326
    [Java Client] Disable batch receive timer for Readers 8381
    [Java Client] Fix pause does not work for new created consumer 8387

    CPP Client

    👀 [CPP Client] Wait for all seek operations completed 7216
    [CPP Client] Ensure parallel invocations of MultiTopicsConsumerImpl::subscribeAsync with the same topic name do not produce an error. 7691
    👻 [CPP Client] Throw std::exception types 7798
    [CPP Client] Make clear() thread-safe 7862
    👍 [CPP Client] Support key based batching 7996
    🔧 [CPP Client] The token endpoint should get from the well-known configuration 8006
    🏗 [CPP Client] Add Snappy library to Docker images for building C++ packages 8086
    ⏱ [CPP Client] Add epoch for C++ client HandleBase to handle create producer timeout 8191
    [CPP Client] Fix some pending requests may never complete when broker's down 8232
    [CPP Client] Client is allocating buffer bigger than needed 8283
    [CPP Client] Client back-pressure is done on batches rather than number of messages 8331
    [CPP Client] Fix message id error when subscribing a single partition 8341

    Python Client

    0️⃣ [Python Client] Add python schema field default value 8122
    [Python Client] Expose schema version (of writerSchema) in Message 8173

    Pulsar Functions

    ⚡️ [Pulsar Functions] During Function update, cleanup should only happen for temp files that were generated 7201
    📇 [Pulsar Functions] Have metadata tailer use its own thread for processing 7211
    [Pulsar Functions] Allow kubernetes runtime to customize function instance class path 7844
    [Pulsar Functions] SinkRecord adds an overridden method 8038
    [Pulsar Functions] Set dryrun of KubernetesRuntime is null 8064
    [Pulsar Functions] Allow disabling forwarding source message properties 8158
    🚧 [Pulsar Functions] Missed dryRun on maintenance of secrets 8286

    Pulsar Perf

    👍 [Pulsar Perf] Support setting message key 7989
    🔧 [Pulsar Perf] Make pulsar-perf ioThread number configurable 8090

    Pulsar Admin

    👍 [Pulsar Admin] Support initial namespace of the cluster without startup the broker 7434
    [Pulsar Admin] Fix some params on consumer broken by #4400 (regex, initialSouscriptionPosition) 7795
    [Pulsar Admin] Return more informative error message when trying to create subscription on non-persistent through Rest API or pulsar-admin CLI 7831
    [Pulsar Admin] Add cli command to get last message Id 8082
    👍 [Pulsar Admin] Support delete all data associated with a cluster 8133
    👍 [Pulsar Admin] Support delete schema ledgers when delete topics 8167
    📇 [Pulsar Admin] Add command to delete a cluster's metadata from ZK 8169
    👍 [Pulsar Admin] Support reset cursor to a batch index for Pulsar Admin 8329

    Tiered Storage

    🔨 [Tiered Storage] Refactored JCloud Tiered Storage 6335
    ⚡️ [Tiered Storage] Remove duplicate updates 8198
    [Tiered Storage] Make the field name in OffloadPolicies match with config file 8310

  • v2.6.2-candidate Changes

    November 06, 2020


  • v2.6.1 Changes

    August 21, 2020

    2.6.1 — 2020-08-21

    🚀 The following lists fixes and enhancements in 2.6.1 release.


    • [Broker] Limit batch size to the minimum of the maxNumberOfMessages and maxSizeOfMessages #6865
    • [Broker] Fix hash range conflict issue in Key_Shared with sticky hash range #7231
    • [Broker] Fix the issue that get lookup permission error #7234
    • ⚡️ [Broker] Update Jetty to version 9.4.29 #7235
    • [Broker] Fix readers backlog stats after data is skipped #7236
    • [Broker] Fix the regression in isSupperUser #7241
    • [Broker] Avoid introducing null read position for the managed cursor #7264
    • [Broker] Fix permission operation check on setRetention admin operation #7281
    • [Broker] Fix error in creation of non-durable cursor #7355
    • [Broker] Fix bug related to managedLedger properties #7357
    • [Broker] Add tenant name check in list namespaces function #7369
    • [Broker] Avoid the NPE occurs in method ManagedLedgerImpl.isOffloadedNeedsDelete #7389
    • [Broker] Fix producer stuck issue due to NPE thrown when creating a new ledger #7401
    • [Broker] Avoid NPEs at ledger creation when DNS failures happen #7403
    • 🛰 [Broker] Support decompression payload if needed in KeyShared subscription #7416
    • ⚡️ [Broker] Fix update-cluster cli updates proxy-url #7422
    • 👻 [Broker] Handle NotAllowed Exception at the client side #7430
    • [Broker] Shade jclouds to avoid Gson conflict #7435
    • [Broker] Consumer is registered on dispatcher even if hash range conflicts on Key_Shared subscription #7444
    • [Broker] Add pulsar-client-messagecrypto-bc into pulsar-client dependency to avoid method not found #7447
    • ⚡️ [Broker] Fix update partitions error for non-persistent topic #7459
    • [Broker] Use CGroup CPU usage when present #7475
    • [Broker] Fix ArrayIndexOutOfBoundsException when dispatch messages to consumer #7483
    • [Broker] Get last entry is trying to read entry -1 #7495
    • ⏱ [Broker] Fix timeout opening managed ledger operation #7506
    • ⚡️ [Broker] Fixes the exception that occurred when the geo-replication policy is updated #7514
    • ⚡️ [Broker] Update Jackson to version 2.11.1 and ensure all dependencies are pinned #7519
    • [Broker] Fix protobuf generation on handling repeated long number #7540
    • 🌲 [Broker] Add more logging to the auth operations on failure #7567
    • [Broker] Use Consume/Produce/Lookup interfaces for specific operations in allowTopicOperation #7587
    • 🔧 [Broker] Support configuring DeleteInactiveTopic setting in namespace policy #7598
    • [Broker] Fix NPE when using advertisedListeners #7620
    • [Broker] Fix the issue that deduplication cursor can not be deleted after disabling message deduplication #7656
    • [Broker] Add missing AuthenticationDataSource to canConsumeAsync method call #7694
    • [Broker] Close the previous reader of the health check topic #7724
    • 🌲 [Broker] Change some WebApplicationException log level to debug #7725
    • [Broker] Replay delayed messages in order #7731
    • [Broker] Fix the wrong returned URL for lookup when specify advertised listener #7737
    • [Broker] Fix topic getting recreated immediately after deletion #7524
    • 0️⃣ [Broker] Set default root log level to debug #7789
    • ⏱ [Broker] Fix producer stucks on creating ledger timeout #7319
    • [Broker] AllowTopicOperationAsync should check the original role is super user #7788


    • [Zookeeper] Use hostname for bookie rackawareness mapping #7361

    Pulsar SQL

    • 🔧 [Pulsar SQL] Make Pulsar SQL get correct offload configurations #7701

    Pulsar Schema

    • [Schema] Fix the error that occurs when getting schemaName by partitioned topic name #7708

    Java Client

    • [Java Client] Fix the issue that the HTTP header used in Athenz authentication can not be renamed #7311
    • [Java Client] Add more detail information of retry errors #7341
    • [Java Client] Check NPE when a tombstone (null value) is produced. #7408
    • [Java Client] Fix batch ackset recycled multiple times. #7409
    • 👍 [Java Client] Support Oauth2 authentication #7420
    • ⏱ [Java Client] Ensure the create subscription can be completed when the operation timeout happens #7522
    • [Java Client] Fix race condition on the close consumer while reconnecting to the broker. #7589
    • [Java Client] Fix validation never return false #7593
    • 🔌 [Java Client] Make OAuth2 auth plugin to use AsyncHttpClient #7615
    • 👍 [Java Client] Support to set listener name for client CLI #7621
    • [Java Client] Fix batch index filter issue in Consumer #7654
    • [Java Client] Fix the backward compatibility issues with batch index acknowledgment. #7655
    • [Java Client] Fix the issue that batchReceiveAsync is not completed exceptionally when closing consumer #7661
    • [Java Client] Fix producer stats recorder time unit error #7670
    • [Java Client] Fix shutdown AsyncHttpConnector.delayer #7687

    CPP Client

    • [CPP Client] Fix partition index error in closing callback #7282
    • 🌲 [CPP Client] Reduce log level for ack-grouping tracker #7373
    • 👍 [CPP Client] Support Oauth2 authentication #7467
    • [CPP Client] Fix segment crashes that caused by race condition of timer in cpp client #7572
    • [CPP Client] Fix multitopic consumer segfault on connect error #7588
    • 👍 [CPP Client] Add support to read credentials from file #7606
    • 📜 [CPP Client] Fix the issuer_url parsing failure in oauth2 #7791
    • [CPP Client] Fix reference leak when reader create #7793

    Pulsar Functions

    • 0️⃣ [Pulsar Function] Use fully qualified hostname as default to advertise worker #7360
    • 🚀 [Pulsar Function] Fix the function BC issue introduced in release 2.6.0 #7528
    • 🔒 [Pulsar Function] Improve security setting of Pulsar Functions #7578
    • [Pulsar Function] Differentiate authorization between source/sink/function operations #7466

    Go Function

    • [Go Function] Fix Go instance config port #7322
    • 🚚 [Go Function] Remove timestamp from metrics #7539

    Pulsar Perf

    • 👍 [Pulsar Perf] Supports tlsAllowInsecureConnection in pulsar-perf produce/consume/read #7300
  • v2.6.1-candidate

    August 14, 2020
  • v2.6.0 Changes

    June 17, 2020

    2.6.0 — 2020-06-17

    🔋 Features

    • 👍 [PIP-37] Large message size support #4400
    • [PIP-39] Namespace change events (System Topic) #4955
    • 📇 [PIP-45] Switch ManagedLedger to use MetadataStore interface #5358
    • [PIP 53] Contribute DotPulsar to Apache Pulsar
    • 👍 [PIP-54] Support acknowledgment at batch index level #6052
    • 👍 [PIP-58] Support consumers set custom message retry delay #6449
    • 👍 [PIP-60] Support SNI routing to support various proxy-server #6566
    • [PIP-61] Advertise multiple addresses #6903
    • 👍 [PIP-65] Adapting Pulsar IO Sources to support Batch Sources #7090
    • [Broker] Add threshold shedder strategy and metrics exporter for loadbalancer #6772
    • [Broker] Add consistent hashing in the Key_Shared distribution #6791
    • 🛠 [Broker] Fixed ordering issue in KeyShared subscription dispatcher when adding consumer #7106 #7108 #7188
    • 👍 [Broker] Add support for key hash range reading in Key_Shared subscription #5928
    • [Broker] Allow for schema reader and writer registration on SchemaDefinition #6905
    • 👍 [Broker] Support use null key and null value in KeyValue Schema #7139
    • 👍 [Broker] Support multiple pulsar clusters to use the same bk cluster #5985
    • [Broker] Add a flag to skip broker shutdown on transient OOM #6634
    • 🔧 [Broker] Make zookeeper cache expiry time configurable #6668
    • [Broker] Check replicator periodically to avoid issue due to zookeeper missing watch #6674
    • [Broker] Expose managedLedgerCache, managedLedger, loadBalance metrics to Prometheus #6705
    • ⚡️ [Broker] Optimize consumer fetch messages in case of batch message #6719
    • 🔧 [Broker] Add configuration to limit max partitions for a partitioned topic #6794
    • 0️⃣ [Broker] Change default FlushEntryLogBytes to 256MB to improve bookie io throughput #6915
    • [Broker] Introduce precise topic publish rate limiting #7078
    • [Broker] Expose new entries check delay in the broker.conf 7154
    • [Broker] Add broker interceptor for intercepting all Pulsar command and REST API requests #7143
    • 👀 [Broker] Only close active consumer for Failover subscription when seek() #7141
    • [Broker] Allow to delete topics that are failing to recover #7131
    • 👍 [Broker] Support set netty max frame size in bookkeeper.conf #7116
    • [Broker] Trigger rollover when meeting maxLedgerRolloverTimeMinutes #7111
    • 🛠 [Broker] Cap the dispatcher batch size in bytes to fixed max #7097
    • 👍 [Broker] Support specify managedLedgerMaxSizePerLedgerMbytes in broker.conf #7085
    • [Broker] Allow to grant permissions when the authorization is disabled #7074
    • [Broker] Add messages and bytes counter stats to broker-stats/topics #7045
    • [Broker] Expose new entries check delay in the broker.conf #7154
    • 👍 [Function] Built-in functions support #6895
    • [Function] Add Go Function heartbeat (and gRPC service) for production usage #6031
    • [Function] Add custom property option to functions #6348
    • 🔧 [Function] Separate TLS configuration of function worker and broker #6602
    • 🏗 [Function] Added ability to build consumers in functions and sources #6954
    • 👍 [Function] Support DLQ on sources and sinks #7032
    Pulsar SQL
    • 👍 [SQL] KeyValue schema support #6325
    • 👍 [SQL] Multiple version schema support #4847
    • [SQL] Fix presto SQL does not start metrics service before queue execute #7030
    Pulsar IO
    • ➕ Added ability for sources to publish messages on their own #6941
    • [RabbitMQ] Allow routing key per message to RabbitMQ sink connector #5890
    • [RabbitMQ] Add passive config options #6679
    • ⬆️ [debezium] Upgrade from v0.10.0-Final to v1.0.0-Final #5972
    • 👍 [debezium] Support avro schema for debezium connector #6034
    • 👍 [influxdb2] Add support for influxdb2 in pulsar-influxdb-sink #6601
    • [jdbc] Add jdbc sinks: postgres, mariadb, clickhouse #6835
    Pulsar Proxy
    • [Proxy] Add REST API to get connection and topic stats #6473
    • [Proxy] Add advertised address option #6942
    • [Proxy] Add proxyLogLevel into config #6948
    • [Java Client] Use pure-java Air-Compressor instead of JNI based libraries #5390
    • [Java Client] Change the time unit of patternAutoDiscoveryPeriod to seconds #5950
    • 👍 [Java Client] Support waiting for inflight messages while closing producer #6648
    • 👍 [Java Client] Add support to load TLS certs/key dynamically from input stream #6760
    • 👻 [Java Client] Support return sequence ID when throwing Exception for async send message #6825
    • 0️⃣ [Java Client] Change the default value of maxLookupRedirects of Java client to 20 #7126
    • [Java Client] Limit the number of times lookup requests are redirected #7096
    • 👀 [CPP Client] Support seek by time on partitioned topic #7198
    • [CPP Client] Refresh authentication credentials #7070
    • [CPP Client] Fix Result can't be serialized to string inside the library #7034
    • 👍 [CPP Client] Support zstd and Snappy compression to C API #7014
    • [Python Client] Add deliver_at and deliver_after for the producer #6737
    • 👍 [Admin] Support delete inactive topic when subscriptions caught up #6077
    • 🔧 [Admin] Add configuration to disable auto-creation of subscriptions #6456
    • [Admin] Add maxUnackedMessagesPerSubscription and maxUnackedMessagesPerConsumer on namespaces policies #5936
    • 👍 [Admin] Support get a message by message ID in pulsar-admin #6331
    • 👍 [Admin] Support delete subscription forcefully #6383
    • [Admin] Add subscribe initial position for consumer CLI #6442
    • 👍 [Admin] Support to get managed ledger info of a partitioned topic #6532
    • 👍 [Admin] Support compact all partitions of a partitioned topic #6537
    • 👍 [Admin] Support multi-hosts in PulsarAdmin #6547
    • 👍 [Admin] Support to get internal stats for a partitioned topic #6624
    • 👍 [Admin] Support enable or disable subscription auto-creation at namespace level #6637
    • [Admin] Enable to set the subscription expiration time for each namespace #6851

    🛠 Fixes

    • 🛠 [Broker] Fixed increasing number of partitions with attached readers #7077
    • [Broker] Make ZkBookieRackAffinityMapping work as expected #6917
    • [Broker] Fix backlog and backlog size stats keeps growing #7082
    • [Java Client] Fix connection leak #6524
    • [Java Client] Fix message id compare between MessageId and BatchMessageId #6621
    • [Java Client] Fix memory leak when create producer with not exsits topic #7120 #7124
    • [Java Client] Fix duplicated messages sent to dead letter topic #7021
    • [CPP Client] Fix deadlock of consumer for topics auto discovery #7206
    • [Managed Ledger] Fix NPE on opening non-durable cursors on an empty managed ledger #7133
    • 📜 [Websocket] Fix incorrect topic URL parse #6630
    • [Pulsar SQL] Fix problem with multiple zookeeper address #6947
    • 🐳 [Docker] Do not apply env values to and implicitly 6579
  • v2.6.0-candidate

    June 09, 2020
  • v2.5.2 Changes

    May 19, 2020

    2.5.2 — 2020-05-19

    🛠 Fixes and Enhancements

    • [Broker] Implement AutoTopicCreation by namespace level override #6471
    • [Broker] Add custom deletionLag and threshold for offload policies per namespace #6422
    • [Broker] Invalidate managed ledgers zookeeper cache instead of reloading on watcher triggered #6659
    • [Broker] Retention policy should be respected when there is no traffic #6676
    • 🛠 [Broker] Fixed double delete on a namespace #6713
    • [Broker] fix get batch message from http response, only get the first message#6715
    • [Broker] Fix Deadlock by Consumer and Reader#6728
    • [Broker] avoid backpressure by skipping dispatching if consumer channel is not writable #6740
    • 🚀 [Broker] fix when producing encrypted messages, MessageMetadata objects are not released after they are created. #6745
    • [Broker] Bump netty version to 4.1.48.Final #6746
    • ⏱ [Broker] Increase timeout for loading topics #6750
    • [Broker] Fix wrong cursor state for cursor without consumer #6766
    • 🐎 [Broker] change nondurable cursor to active to improve performance #6769
    • [Broker] register loadbalance znode should attempt to wait until session expired #6788
    • [Broker] Fix some empty message related problems in the compacted topic. #6795
    • [Broker] Avoid creating partitioned topic for partition name #6846
    • 👍 [Broker] Add Tls with keystore type config support #6853
    • [Broker] fix consumer stuck when batchReceivePolicy maxNumMessages > maxReceiverQueueSize #6862
    • [Broker] use originalAuthMethod on originalAuthChecker in Proxy Authentication #6870
    • [Broker] Close producer when the topic does not exists. #6879
    • [Broker] Handle all exceptions from topic.addProducer #6881
    • [Broker] fix topicPublishRateLimiter not effective after restart broker #6893
    • [Broker] Expose pulsar_out_bytes_total and pulsar_out_messages_total for namespace/subscription/consumer. #6918
    • 0️⃣ [Broker] Policy ttlDurationDefaultInSeconds not applying #6920
    • [Broker] Fix pulsar admin thread number explode bug. #6940
    Pulsar Schema
    • 📜 [Schema] Fix long field parse in GenricJsonRecord #6622
    • [Schema] Fix the leak of cursor reset if message encode fails in Avro schema. #6695
    • [Schema] fix Get schema by version can get the deleted schema info #6754 #6754
    • [Schema] Fix serialization of enums with json/avro schemas in python #6808
    • 👍 [Schema] Pulsar SQL Support Avro Schema ByteBuffer Type #6925
    CPP Client
    • ⚡️ [CPP Client] Auto update topic partitions #6732
    • [CPP Client] Subscription InitialPosition is not correctly set on regex consumers. #6810
    • 0️⃣ [CPP Client] Fix message id is always the default value in send callback #6812
    • [CPP Client] Fix message id error if messages were sent to a partitioned topic #6938
    Python Client
    • [Python Client] Fix Python function protobuf missing field#6641
    Pulsar Functions
    • 👍 [Functions] Support function with format: Function<I, CompletableFuture>#6684
    • [Functions] Function endpoint admin/v3/functions/{tenant}/{namespace} always returns 404 #6767
    • [Functions] Ensure that all dangling consumers are cleaned up during failures #6778
    • [Functions] Fix localrunner netty dependency issue #6779
    • ⚡️ [Functions] Fix SerDe validation of function's update #6888
    Tiered Storage
    • [Tiered Storage] Extract common SerDe method in tiered storage to managed-ledger module #6533
    • [Tiered Storage] Make SchemaStorage accessible in Offloader #6567
    • [Tiered Storage] Avoid prefetch too much data causing OutOfMemory, when offloading data to HDFS #6717
    Pulsar IO
    • [IO] JDBC sink does not handle null in schema #6848
  • v2.5.2-candidate

    May 13, 2020