Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
6f1a023
[improve][client] In cases where there is a risk of message loss, adj…
poorbarcode May 24, 2026
e2ae742
[fix][client]Fix checkstyle issue of ConsumerBase.java
poorbarcode May 27, 2026
6891dff
[fix][client] Fix failed to close consumer because of the error: para…
poorbarcode May 25, 2026
59a1bfd
[fix][sec] Upgrade commons-configuration2 to 2.15.0 to address CVE-20…
lhotari May 21, 2026
7fd4287
[improve][misc] Upgrade Netty to 4.1.134 (#25870)
lhotari May 26, 2026
b7b57e0
[fix][fn] Fix Go function runtime to continue after user exceptions a…
Dream95 May 25, 2026
cd7feee
[fix][test] Fix flaky ProducerCleanupTest timer cleanup (#25864)
oneby-wang May 25, 2026
58e03d6
[fix][test] Fix flaky PulsarFunctionTlsTest.testFunctionsCreation() t…
oneby-wang May 30, 2026
5e53836
[fix][broker] Fix compaction cursor reset may lose mark-delete proper…
oneby-wang May 25, 2026
e533a3c
Return 400 for invalid reader messageId query parameter (#25865)
pratt4 May 25, 2026
7e75bb9
[fix][broker] Fix PersistentMessageExpiryMonitor findEntryComplete() …
oneby-wang May 25, 2026
ea9bbae
[fix][bk] Fix NPE in IsolatedBookieEnsemblePlacementPolicy when polic…
Shawyeok May 27, 2026
5e35087
[fix][broker] Fix non-batched null-value messages not removed during …
grishaf May 29, 2026
adaffc9
[improve][client] Best-effort retry for individual/batch-index acks o…
nodece Apr 24, 2026
ecd51a2
[fix][broker] Fix precision loss in DataSketchesSummaryLogger by repl…
zjxxzjwang Apr 29, 2026
462ee2b
[fix][broker] Fix stuck chunks in SharedConsumerAssignor permit track…
merlimat Apr 30, 2026
7ff3067
[fix][client] Fix stale Healthy state in SameAuthParamsLookupAutoClus…
lhotari Mar 23, 2026
7b9afeb
[fix][client] Reset higher-index states on recovery in SameAuthParams…
merlimat May 20, 2026
41a0dda
[fix][test][branch-4.0] Fix PersistentMessageExpiryMonitorTest
lhotari Jun 1, 2026
b06d879
[fix][test] Fix flaky MessagePublishBufferThrottleTest.testBlockByPub…
merlimat Mar 20, 2026
118de6c
[fix][test][branch-4.0] Fix PulsarFunctionTlsTest
lhotari Jun 2, 2026
ae547c6
[fix][test] Fix flaky testMsgDropStat in NonPersistentTopicTest (#25426)
merlimat Mar 30, 2026
3733db2
[improve][broker] PIP-380: Support-setting-up-specific-namespaces-to-…
Demogorgon314 Jun 10, 2025
346bc30
[fix][meta] Fix PulsarZooKeeperClient async addWatch callback retry b…
oneby-wang Jun 2, 2026
6593c77
[fix][meta] Fix ZooKeeper session reconnect race condition in PulsarZ…
oneby-wang Jun 2, 2026
2820ef4
[fix][test] Fix flaky SameAuthParamsLookupAutoClusterFailoverTest.tes…
oneby-wang Jun 2, 2026
1ee0ea7
[improve][fn] make built-in functions reload incremental (#25868)
pratt4 Jun 2, 2026
f053c97
[fix][sec] Upgrade Netty to 4.1.135.Final to address several CVEs (#2…
lhotari Jun 3, 2026
baa63c6
[fix][client] Clean up unacked messages when unsubscribing a topic wi…
Dream95 Jun 3, 2026
41a8708
[improve][proxy][branch-4.0] Restore AdminProxyHandler changes which …
lhotari Jun 3, 2026
016d101
[fix][proxy] Avoid intermittent 502 when admin proxy follows a broker…
lhotari Jun 3, 2026
309fcf8
[fix][client] Prevent duplicate ServiceUrlProvider initialization (#2…
oneby-wang Jun 3, 2026
55fd834
[improve][offload] Coalesce automatic offload triggers to reduce retr…
void-ptr974 Jun 3, 2026
5378869
[fix][test] Stabilize testSecondaryIsolationGroupsBookiesNegative() t…
oneby-wang Jun 3, 2026
27544e1
[improve][misc] Upgrade vert.x to 4.5.28 (#25924)
lhotari Jun 4, 2026
067e432
[improve][functions] Allow customizing Kubernetes service domain suff…
iantowey Jun 3, 2026
77790df
[fix][client] Match logical topic when removing unacked messages (#25…
Dream95 Jun 5, 2026
eb3bf78
[improve][client] Clean up unacked message tracker when topics are re…
Dream95 Jun 5, 2026
2facacd
[fix][client] Preserve equals in FieldParser map values (#25907)
hiSandog Jun 5, 2026
5ad246c
[fix][fn] Fix orphan exclusive producer on creation timeout in Worker…
lhotari Jun 5, 2026
b42a2ec
[improve][misc] Upgrade Jetty to 12.1.10 (#25943)
lhotari Jun 5, 2026
bba285f
[feat][pip] PIP-469: Legacy-aware topic policies backend routing and …
BewareMyPower Apr 27, 2026
a5e33ec
[feat][broker] PIP-469: Legacy-aware topic policies backend routing a…
BewareMyPower May 18, 2026
1885cf1
Fix build failure due to an old version of Caffine
BewareMyPower Jun 8, 2026
500d85c
[fix][broker] Fix tableview divergence in ServiceUnitStateTableViewSy…
lhotari Jun 7, 2026
e5254fd
[fix][test] Fix flaky ExtensibleLoadManagerImplTest by re-serving the…
merlimat Jun 8, 2026
0b27005
[fix][test] Fix flaky ExtensibleLoadManagerImplTest.initializeState b…
lhotari Jun 8, 2026
c2f68c6
[fix][test] Deflake TopicPoliciesTest.setupTestTopic by retrying forc…
lhotari Jun 8, 2026
73dd67e
[improve][misc] Upgrade Apache Commons libraries and Apache Http comp…
lhotari Jun 8, 2026
4b69157
[fix][test][branch-4.0] Backport configurable read/add delays in Puls…
lhotari Jun 12, 2026
59e61eb
[fix][broker] Fix compacted read could be stuck forever or message lo…
BewareMyPower Jun 12, 2026
966c957
[fix][meta] Keep the leader value in the election cycle and make lead…
lhotari Jun 12, 2026
609cbfb
[fix][build][branch-4.0] Upgrade docker/setup-qemu-action to v4.1.0
lhotari Jun 22, 2026
8ad9d84
[fix][broker] Prevent subscribe rate limit from stalling compaction a…
lhotari Jun 13, 2026
4571d0d
[fix][broker] Fix forced topic/namespace deletion hanging or failing …
lhotari Jun 13, 2026
ab89028
[fix][broker] Fix forced topic/namespace deletion still hanging when …
lhotari Jun 14, 2026
d703fd0
[fix][broker] Don't let a stuck or aborted topic policies cache init …
lhotari Jun 14, 2026
195e431
[fix][broker] Fail fast for load balancer misconfigurations instead o…
BewareMyPower Jun 15, 2026
d5ba72b
[improve][fn] Upgrade pulsar-client-python to 3.12.0 (#26033)
lhotari Jun 16, 2026
b70749c
[fix][fn] Make exclusiveLeaderProducer volatile in FunctionMetaDataMa…
SongOf Jun 17, 2026
486ab38
[fix][broker] Run topic policy notifications on the topic-ordered exe…
lhotari Jun 17, 2026
5de8b35
[fix][test] Fix flaky testPrepareInitPoliciesCacheAsyncThrowException…
lhotari Jun 17, 2026
97b9b9a
[fix][broker] Prevent topic policy initialization race with a bufferi…
lhotari Jun 18, 2026
204a7e5
[fix][broker] Avoid blocking metadata read on the IO thread when redi…
merlimat Jun 18, 2026
2e349ed
[fix][proxy] Avoid blocking the proxy IO thread on a cold broker cach…
merlimat Jun 18, 2026
7d796f4
[fix][broker] Avoid blocking the dispatcher close path on delayed-del…
merlimat Jun 18, 2026
8a1b607
[fix][broker] Avoid blocking the bundle-throughput lookup on per-bund…
merlimat Jun 18, 2026
26d95f2
[fix][sec] Upgrade jline to 4.2.1 and picocli to 4.7.7, drop unused j…
lhotari Jun 20, 2026
44eda75
[fix] functions: Run worker leader-election off the consumer event-li…
merlimat Jun 20, 2026
98bed5a
[fix][broker] Fix geo-replication stuck after a failed publish to the…
void-ptr974 Jun 22, 2026
d8a3793
[improve][test]Add test: test/testTopicPartitionCannotBeCreatedAfterT…
poorbarcode Jun 18, 2026
a0e1e28
[fix][test] Make SameAuthParamsLookupAutoClusterFailoverTest less tim…
merlimat May 5, 2026
28ac97e
[fix][client] Run the failover health probe off the Netty event-loop …
merlimat Jun 22, 2026
e3be3e2
[fix][meta] Run ledger-underreplication notification callbacks off th…
merlimat Jun 22, 2026
dc9c894
[fix][broker] Avoid attaching a consumer to a migrated non-persistent…
lhotari Jun 22, 2026
a8c0ba4
[feat][broker] Expose managed ledger properties via topic internal st…
BewareMyPower Jun 23, 2026
591151a
[fix][broker]Do not trigger topic GC if replication is still active (…
poorbarcode Jun 24, 2026
b321014
[fix][sec][branch-4.0] Upgrade Jackson version to 2.18.8 (#26098)
shibd Jun 26, 2026
be4b387
[improve][broker] Trim orphaned bucket snapshots when ledgers are del…
dao-jun Jun 23, 2026
af42891
[fix][broker] Guard BucketDelayedDeliveryTracker.nextDeliveryTime aga…
dao-jun Jun 24, 2026
64088b0
[improve][broker] Improve dispatch performance by summing entry bytes…
void-ptr974 Jun 24, 2026
c915175
[fix][broker] Fix replicator getting stuck under rate limiter throttl…
void-ptr974 Jun 29, 2026
5cdb612
[fix][broker] Forward topic policy updates after init failures (#26110)
Denovo1998 Jun 29, 2026
1fa3098
[fix][test][branch-4.0] Adapt ConfigurationDataUtilsTest to Jackson 2…
lhotari Jun 29, 2026
d92f4c4
Revert "[improve][test]Add test: test/testTopicPartitionCannotBeCreat…
lhotari Jun 29, 2026
3cf56d8
[fix][broker] Fix replication stall when a cursor rewind skips an in-…
lhotari Jun 30, 2026
c797c36
[fix][test] Fix flaky AuditorBookieTest.testBookieClusterRestart (#26…
lhotari Jul 1, 2026
d47c4b3
[fix][test] Fix flaky SchemaServiceTest.testSchemaRegistryMetrics (#2…
merlimat May 1, 2026
29fcd20
[fix][test] Fix flaky PersistentTopicsTest setup caused by concurrent…
void-ptr974 Jul 1, 2026
c2aad8d
[fix][test] Run makeReadEntryProbFail's errorOrNot on a caller-provid…
lhotari Jul 1, 2026
50c4c93
[fix][broker] Don't let a closing topic-policies reader abort a concu…
lhotari Jul 2, 2026
1a4598d
[improve][broker] Load topic policies on non-persistent topic load an…
lhotari Jul 2, 2026
4643139
[improve][fn] Upgrade pulsar-client-python to 3.13.0 (#26139)
lhotari Jul 2, 2026
ab3aa71
[fix][sec] Upgrade pulsar-client-go to v0.20.0 in pulsar-function-go,…
lhotari Jul 2, 2026
c0af19d
[fix][fn] Reorder Function Worker shutdown to stop scheduler before r…
Dream95 Jul 2, 2026
a0421bd
[fix][sec] Bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 in …
dependabot[bot] Jul 2, 2026
2a0f18d
[fix][metadata] Fix orphaned UR parent nodes not cleaned up with Oxia…
eugene-polozhenkov Jul 7, 2026
9dade35
[fix][ci][branch-4.0] Skip testMarkReplicatedDeletesEmptyParentNodes …
lhotari Jul 9, 2026
8b075fa
[fix][sec][branch-4.0] Upgrade Netty to 4.1.136.Final (#26170)
lhotari Jul 9, 2026
7838e79
[improve][monitor][branch-4.0] Upgrade OpenTelemetry libraries (#26165)
shibd Jul 13, 2026
fc9df80
[fix][sec][branch-4.0] Upgrade Jackson version to 2.18.9 (#26187)
shibd Jul 14, 2026
e23b2a5
[fix][sec][branch-4.0] Upgrade Hadoop to 3.5.0 (#26195)
shibd Jul 15, 2026
5481b29
[fix][client] Preserve null values in pulsar-admin schema output (#26…
Technoboy- Jul 21, 2026
e629b76
[fix][broker] Fix `getEstimatedSizeSinceMarkDeletePosition` throw `Il…
Technoboy- Jul 21, 2026
eeddaf8
Fix compile issue
Technoboy- Jul 22, 2026
c5b405e
Fix compile issue
Technoboy- Jul 22, 2026
2b6580f
[fix][client] Fix lookup request semaphore not release problem (#25038)
congbobo184 Dec 5, 2025
7d1ba7f
[improve][ci] Replace trivy-action with sandboxed-trivy-action (#25480)
lhotari Apr 7, 2026
a787392
[fix][ci] Upgrade sandboxed-trivy-action to approved sha (#26169)
lhotari Jul 9, 2026
a6a27e8
[fix][client] Sync ackSet in client with broker to stop acked message…
Shawyeok Jul 3, 2026
7ffef17
[fix][client] Fix UnAckedMessageRedeliveryTracker to skip cancelled t…
Dream95 Jul 3, 2026
830db30
[fix][broker] Read subscription properties directly from cursor (#26159)
nodece Jul 9, 2026
437bb56
[fix][broker] Fix bucket delayed message index metrics reset on scrap…
nodece Jul 10, 2026
49b7d63
[improve][meta] Upgrade Oxia client to 0.8.0 (#25964)
mattisonchao Jun 8, 2026
cd18660
[improve][meta] Upgrade Oxia client to 0.9.4 (#26193)
merlimat Jul 15, 2026
821f09c
[fix][client] Fix lookup permit double-release, waiting queue starvat…
geniusjoe Jul 15, 2026
33aa639
[improve][broker] Skip system cursor when check inactive cursor. (#26…
horizonzy Jul 16, 2026
2971a10
[fix][broker] Prevent partition expansion from inheriting delayed-del…
void-ptr974 Jul 16, 2026
d84e271
[fix][meta] Fix NPE in shouldIgnoreEvent when MetadataEvent options i…
SongOf Jul 20, 2026
6fe3a23
[fix][fn] Return inputSpecs consumerProperties in function GET info (…
Dream95 Jul 21, 2026
f82268a
[fix][broker][branch-4.2] Fix admin API HTTP 400 FAIL_ON_TRAILING_TOK…
lhotari Jul 22, 2026
3bbe882
[fix][ci][branch-4.0] Fix OpenTelemetrySanityTest after Otel library …
lhotari Jul 22, 2026
c493dff
Fix binary license
lhotari Jul 22, 2026
bad0e29
[fix][misc][branch-4.0] Make log4j pattern compatible with slog which…
lhotari Jul 22, 2026
37d178b
[fix][test] Fix flaky test `testCompactionPriority ` (#26198)
Technoboy- Jul 18, 2026
efe0c12
[improve][misc][branch-4.0] Add CustomLog config for slog
lhotari Jul 22, 2026
8147cd2
[improve][broker][branch-4.0] Trace the asynchronous tasks in logs wh…
BewareMyPower Jul 23, 2026
cfaa7fd
[improve][build] Upgrade slog to 0.10.0 (#26226)
lhotari Jul 23, 2026
e8e76e3
[improve][misc] Upgrade to Alpine 3.23 (#25180)
lhotari Jan 24, 2026
9eb075f
[improve][build] Upgrade docker base image Alpine to 3.24 (#26225)
lhotari Jul 22, 2026
bbafb00
[fix][broker] Check deliverAt before containsMessage in bucket addMes…
nodece Jul 23, 2026
f205055
[fix][broker] Trigger max read position callback for messages publish…
lhotari Jul 23, 2026
dbd8ca0
[improve][misc] Upgrade Jetty to 12.1.11 (#26233)
lhotari Jul 23, 2026
e962fa3
[improve][offload] Support credentials from offload policies for S3 a…
KannarFr Jul 25, 2026
ed2f0b1
[fix][meta] Fix RocksdbMetadataStore instanceId not advancing across …
SongOf Jul 25, 2026
52f6c51
[fix][meta] Record get op stats on the correct completion branch in A…
SongOf Jul 25, 2026
ba9d4f2
[fix][meta] Complete handleMetadataEvent future exceptionally when th…
SongOf Jul 25, 2026
80b6f4b
[fix][broker] Prevent stale read completions from stranding Failover …
alexandrebrg Jul 23, 2026
67b3fb8
[fix][broker] Fix Key_Shared delivery stall when look-ahead triggers …
lhotari Jul 25, 2026
320389c
[fix][broker] Prevent stale topic unload cleanup from removing active…
void-ptr974 Jul 25, 2026
8f67fc7
[fix][broker] Prevent completing replicated snapshot before marker pu…
Denovo1998 Jul 25, 2026
c27f9bd
[fix][build][branch-4.0] Fix spotbugs failure in OffloadPoliciesImpl
lhotari Jul 25, 2026
2dc3faf
[fix][broker] Fix incorrect listener URLs returned by ModularLoadMana…
void-ptr974 Jul 25, 2026
f9a2f1f
[fix][broker] Fix delayed message index data loss when trimming overl…
void-ptr974 Jul 25, 2026
be5ddc3
[fix][broker] Fix silently dropped acknowledgement failures in Pulsar…
SongOf Jul 25, 2026
694a056
[fix][fn] Forward source message properties in Python runtime (#26191)
sbourkeostk Jul 25, 2026
1e80545
[fix][client] Fix unAckedMessageTracker cleanup on multi-topics batch…
Dream95 Jul 25, 2026
7cc56bb
[fix][broker] Fix TableViewLoadDataStoreImpl close deadlock that stal…
lhotari Jul 25, 2026
65c0dba
[fix][broker] Prevent stale service unit callbacks from dropping acti…
void-ptr974 Jul 25, 2026
25b604a
[fix][broker] Release entry on GetLastMessageId when parseMessageMeta…
SongOf Jul 26, 2026
c65b789
[fix][meta][branch-4.0] Tolerate concurrent creation of the underrepl…
lhotari Jul 27, 2026
e4e2af2
[fix][sec][branch-4.2] Upgrade Spring to 7.0.8 (#26270)
lhotari Aug 4, 2026
4fc6fee
[improve][fn] Standardize log4j2 Root logger configuration to use sys…
sandeep-mst Jul 1, 2026
7aa567d
[fix][broker] Log exception in PulsarMetadataEventSynchronizer failur…
SongOf Jul 20, 2026
1be5f2f
[fix][sec] Bump google.golang.org/grpc from 1.79.3 to 1.82.1 in /puls…
dependabot[bot] Jul 23, 2026
6a93647
[fix][sec] Upgrade grpc in pulsar-function-go to 1.82.1 to fix GHSA-h…
lhotari Jul 24, 2026
c0c85c4
[fix][sec] Upgrade lz4-java to 1.11.1 to address CVE-2026-59949 (#26250)
lhotari Jul 27, 2026
454fa55
[fix][client] Avoid exception in ConsumerImpl hasMessageAvailable bef…
void-ptr974 Jul 27, 2026
e122ab0
[fix][ml] Tolerate concurrent creation of the managed ledger z-node (…
lhotari Jul 27, 2026
44bbc55
[fix][broker] Fix delayed-delivery bucket merge failures when delayed…
void-ptr974 Jul 29, 2026
75ae9b3
[fix][misc] Remove unnecessary " {}" suffix from log lines when there…
lhotari Aug 7, 2026
8b5ce63
[fix][admin] Avoid creating subscriptions when peeking messages if au…
void-ptr974 Aug 7, 2026
fab20c4
[fix][txn] Fix X-Pulsar-txn-uncommitted header semantics and add X-Pu…
poorbarcode Aug 9, 2026
ad3e222
[fix][sec][branch-4.2] Upgrade Netty to 4.1.137 to address several CV…
lhotari Aug 10, 2026
654d8d0
[improve][misc] Upgrade Jetty to 12.1.12 (#26302)
lhotari Aug 10, 2026
4b5704b
[fix][ml] Skip contiguous deleted ranges during reads (#26299)
coderzc Aug 10, 2026
9175b4e
[improve][broker] Expose interface for the replicator in ManagedLedge…
zymap Aug 11, 2026
a2c8d17
[Fix][broker]Get a fenced error when loading a topic that does not al…
poorbarcode Aug 12, 2026
0d10a1b
[improve][misc] Upgrade Conscrypt to 2.6.1 to add aarch64 native supp…
lhotari Aug 12, 2026
0a64cb7
[fix][client] Restore OAuth2 HTTP client after deserialization (#26325)
jiangpengcheng Aug 13, 2026
fa27e06
[improve][misc] Upgrade Conscrypt to 2.6.2 to restore the native libr…
lhotari Aug 13, 2026
c2b7e0b
[improve][misc] Upgrade log4j to 2.26.0 and slf4j to 2.0.18 (#25973)
lhotari Jun 8, 2026
ae5e1c5
[fix][sec] Bump log4j2 from 2.26.0 to 2.26.1 (#26329)
dependabot[bot] Aug 14, 2026
7cb381e
[fix][sec] Upgrade Jackson to 2.18.10 (#26339)
lhotari Aug 16, 2026
01edfab
[fix][broker] Prevent Key_Shared out-of-order replay starvation at th…
Denovo1998 Aug 17, 2026
284dfc6
[fix][test] Fix flaky AdminApiTest caused by leaked brokerShutdownTim…
lhotari Jul 27, 2026
c7c4a74
[fix][offload] Normalize offloader cache directory path (#26372)
coderzc Aug 18, 2026
68ddfdd
[fix][client] Apply no-memory-limit producer queue defaults at produc…
lhotari Aug 18, 2026
691f812
[fix][cli][branch-4.0] Don't pass unset pulsar-perf pending-message o…
lhotari Aug 19, 2026
7a4b4d1
[fix][sec][branch-4.2] Upgrade BouncyCastle to 1.85 and BouncyCastle …
lhotari Aug 19, 2026
3ff5479
[fix][test][branch-4.2] Create the CLI test producer only once CmdPro…
lhotari Aug 19, 2026
55f2190
[fix][cli] Set --enable-native-access=ALL-UNNAMED for the CLI tools o…
lhotari Aug 19, 2026
db9452e
[fix][test] Fix OneWayReplicatorSchemaValidationEnforcedTest racing t…
lhotari Aug 19, 2026
ebad291
[fix][client] Divide the across-partitions budget only when it was se…
lhotari Aug 19, 2026
50132fd
[improve][broker] Change partition metadata not-found log to warn (#2…
Technoboy- Aug 24, 2026
c7c559b
[fix][fn] Honour negativeAckRedeliveryDelayMs in the Go function runt…
david-streamlio Aug 26, 2026
a86cf32
[fix][broker] Do not log an error when the tenant does not exist (#26…
codelipenghui Aug 26, 2026
52c901a
[fix][test] Fix import order in authorization test
Technoboy- Aug 26, 2026
4f5d2a0
[improve][broker] Add pulsar_subscription_storage_backlog_age_seconds…
Technoboy- Aug 26, 2026
43c03dd
Fix cherry-pick
nodece Aug 27, 2026
8afddf0
[refactor][broker] Decouple delayed delivery trackers from dispatcher…
Denovo1998 Apr 7, 2026
8f1dc74
[improve][broker] Optimize TripleLongPriorityQueue heap operations (#…
nodece Jun 15, 2026
5e8dcf8
[improve][broker] Add LongBitmap abstraction and migrate RoaringBitma…
nodece Jul 1, 2026
1e86cf7
[fix][common] Adapt TripleLongPriorityQueueTest to client compiler re…
nodece Aug 27, 2026
889cb3f
[improve][ml] Replace RangeSetWrapper with PositionRangeSet backed by…
nodece Jul 3, 2026
a3c92ed
Keep managedLedgerPersistIndividualAckAsLongArray default at false
nodece Aug 27, 2026
33380cc
[fix][broker] Remove BucketDelayedDeliveryTrackerBenchmark
nodece Aug 27, 2026
d078618
[improve][broker] Optimize SegmentedLongArray with heap-backed long[]…
nodece Jul 20, 2026
1a26bc2
[fix][broker] Remove lock contention in delayed delivery stats read p…
nodece Jul 10, 2026
34dc3b4
[improve][broker] Optimize bucket delayed-delivery bitmap point opera…
nodece Jul 20, 2026
7426970
[fix][broker] Fix bucket delayed delivery counter and dedup consisten…
nodece Aug 4, 2026
95a0edc
[improve][broker] Unify dedup index for in-memory and bucket delayed …
nodece Aug 28, 2026
8b87c1f
[improve][ml] Per-msgLedger individual ack checkpoint persistence
nodece Aug 28, 2026
3dae4c5
Bump version to next snapshot version
nodece Aug 28, 2026
760ed52
[fix][test] Fix BooleanSupplier import in PulsarMockBookKeeper
nodece Aug 28, 2026
d333190
[improve][broker] PIP-299-part-2: add config dispatcherPauseOnAckStat…
poorbarcode Jan 2, 2024
c70c757
[fix][bench] Add package-info for managed-ledger microbench packages
nodece Aug 31, 2026
8a94d48
[fix][style] Fix static import order in StandaloneTest
nodece Aug 31, 2026
b49e45f
Update LICENSE.bin.txt lz4-java version to 1.11.1
nodece Aug 31, 2026
72ebc50
[fix][ml] Null-safe OTel stats recording for mocked-ledger unit tests
nodece Aug 31, 2026
24cb2f5
[fix][test] Stub hierarchy topic policies in replicator test fixture
nodece Aug 31, 2026
d8e4ca7
[fix][broker] Fix replicator getting stuck under rate limiter throttl…
void-ptr974 Jun 29, 2026
57868e0
[refactor][broker] Unify limiter clamp semantics in replicator read l…
nodece Aug 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/ci-go-functions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
runs-on: ubuntu-24.04
strategy:
matrix:
go-version: ['1.24']
go-version: ['1.25']

steps:
- name: Check out code into the Go module directory
Expand All @@ -85,7 +85,7 @@ jobs:
- name: InstallTool
run: |
cd pulsar-function-go
wget -O - -q https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s v2.0.2
wget -O - -q https://raw.githubusercontent.com/golangci/golangci-lint/main/install.sh| sh -s v2.12.2
./bin/golangci-lint --version

- name: Build
Expand Down
41 changes: 21 additions & 20 deletions .github/workflows/pulsar-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ jobs:
$GITHUB_WORKSPACE/build/pulsar_ci_tool.sh restore_tar_from_github_actions_artifacts pulsar-maven-repository-binaries

- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392
uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
with:
platforms: arm64

Expand Down Expand Up @@ -944,25 +944,26 @@ jobs:
- name: Check binary licenses
run: src/check-binary-license.sh ./distribution/server/target/apache-pulsar-*-bin.tar.gz && src/check-binary-license.sh ./distribution/shell/target/apache-pulsar-shell-*-bin.tar.gz

# - name: Run Trivy container scan
# id: trivy_scan
# uses: aquasecurity/trivy-action@v0.35.0
# if: ${{ github.repository == 'apache/pulsar' && github.event_name != 'pull_request' }}
# continue-on-error: true
# with:
# image-ref: "apachepulsar/pulsar:latest"
# scanners: vuln
# severity: CRITICAL,HIGH,MEDIUM,LOW
# limit-severities-for-sarif: true
# format: 'sarif'
# output: 'trivy-results.sarif'
#
# - name: Upload Trivy scan results to GitHub Security tab
# uses: github/codeql-action/upload-sarif@v3
# if: ${{ steps.trivy_scan.outcome == 'success' && github.repository == 'apache/pulsar' && github.event_name != 'pull_request' }}
# continue-on-error: true
# with:
# sarif_file: 'trivy-results.sarif'
- name: Run Trivy container scan
id: trivy_scan
uses: lhotari/sandboxed-trivy-action@f01374b6cc3bf7264ab238293e94f6db7ada6dd0
if: ${{ github.repository == 'apache/pulsar' && github.event_name != 'pull_request' }}
continue-on-error: true
with:
scan-type: 'image'
scan-ref: "apachepulsar/pulsar:latest"
scanners: vuln
severity: CRITICAL,HIGH,MEDIUM,LOW
limit-severities-for-sarif: true
format: 'sarif'
output: 'trivy-results.sarif'

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4
if: ${{ steps.trivy_scan.outcome == 'success' && github.repository == 'apache/pulsar' && github.event_name != 'pull_request' }}
continue-on-error: true
with:
sarif_file: 'trivy-results.sarif'

- name: Clean up disk space
run: |
Expand Down
8 changes: 8 additions & 0 deletions bin/pulsar-admin-common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,14 @@ if [[ $JAVA_MAJOR_VERSION -ge 11 ]]; then
OPTS="$OPTS --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED"
fi

if [[ $JAVA_MAJOR_VERSION -ge 24 ]]; then
# Netty loads native libraries (epoll, io_uring, tcnative) via java.lang.System::loadLibrary,
# which is a restricted method from Java 24 onwards. Without this the JVM prints a warning to
# stderr on every invocation, and restricted methods will be blocked outright in a future
# release. bin/pulsar already sets this for the server side.
OPTS="$OPTS --enable-native-access=ALL-UNNAMED"
fi

OPTS="-cp $PULSAR_CLASSPATH $OPTS"

OPTS="$OPTS $PULSAR_EXTRA_OPTS"
Expand Down
8 changes: 8 additions & 0 deletions bin/pulsar-perf
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,14 @@ if [[ $JAVA_MAJOR_VERSION -ge 11 ]]; then
OPTS="$OPTS --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/jdk.internal.misc=ALL-UNNAMED"
fi

if [[ $JAVA_MAJOR_VERSION -ge 24 ]]; then
# Netty loads native libraries (epoll, io_uring, tcnative) via java.lang.System::loadLibrary,
# which is a restricted method from Java 24 onwards. Without this the JVM prints a warning to
# stderr on every invocation, and restricted methods will be blocked outright in a future
# release. bin/pulsar already sets this for the server side.
OPTS="$OPTS --enable-native-access=ALL-UNNAMED"
fi

OPTS="-cp $PULSAR_CLASSPATH $OPTS"
OPTS="$OPTS $PULSAR_EXTRA_OPTS"

Expand Down
2 changes: 1 addition & 1 deletion bouncy-castle/bc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>bouncy-castle-parent</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>bouncy-castle-bc</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion bouncy-castle/bcfips-include-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>bouncy-castle-parent</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>bcfips-include-test</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion bouncy-castle/bcfips/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>bouncy-castle-parent</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>bouncy-castle-bcfips</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion bouncy-castle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>pulsar</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<build>
Expand Down
2 changes: 1 addition & 1 deletion buildtools/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

<groupId>com.ascentstream.pulsar</groupId>
<artifactId>buildtools</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Pulsar Build Tools</name>

Expand Down
2 changes: 1 addition & 1 deletion buildtools/src/main/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{ISO8601_OFFSET_DATE_TIME_HHMM} %-5level [%t{12}] %c{1.} - %msg %X%n" />
<PatternLayout pattern="%d{ISO8601_OFFSET_DATE_TIME_HHMM} %-5level [%t{12}] %c{1.} - %msg%equals{ %X}{ {}}{}%n" />
</Console>
</Appenders>
<Loggers>
Expand Down
27 changes: 20 additions & 7 deletions conf/broker.conf
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,13 @@ systemTopicSchemaCompatibilityStrategy=ALWAYS_COMPATIBLE
# Please enable the system topic first.
topicLevelPoliciesEnabled=true

# Amount of seconds to timeout initializing the topic policies cache of a namespace (reading the namespace's
# __change_events system topic to the end). Topic loading waits for this initialization, so if the system-topic
# reader gets stuck, this bounds the wait: the broker fails the initialization, closes the stuck reader and clears
# the cached state so loading the namespace's topics can be retried with a fresh reader instead of hanging until the
# broker is restarted. Set to 0 or a negative value to disable the timeout (not recommended).
topicPoliciesCacheInitTimeoutSeconds=60

# If a topic remains fenced for this number of seconds, it will be closed forcefully.
# If it is set to 0 or a negative number, the fenced topic will not be closed.
topicFencingTimeoutSeconds=0
Expand Down Expand Up @@ -1372,15 +1379,9 @@ managedLedgerMaxUnackedRangesToPersist=10000
managedLedgerMaxBatchDeletedIndexToPersist=10000

# When storing acknowledgement state, choose a more compact serialization format that stores
# individual acknowledgements as a bitmap which is serialized to an array of long values. NOTE: This setting requires
# managedLedgerUnackedRangesOpenCacheSetEnabled=true to be effective.
# individual acknowledgements as a bitmap which is serialized to an array of long values.
managedLedgerPersistIndividualAckAsLongArray=false

# When set to true, a BitSet will be used to track acknowledged messages that come after the "mark delete position"
# for each subscription. RoaringBitmap is used as a memory efficient BitSet implementation for the acknowledged
# messages tracking. Unacknowledged ranges are the message ranges excluding the acknowledged messages.
managedLedgerUnackedRangesOpenCacheSetEnabled=true

# Max number of "acknowledgment holes" that can be stored in MetadataStore. If number of unack message range is higher
# than this limit then broker will persist unacked ranges into bookkeeper to avoid additional data overhead into
# MetadataStore.
Expand Down Expand Up @@ -1805,6 +1806,12 @@ metricsServletTimeoutMs=30000
# Enable or disable broker bundles metrics. The default value is false.
exposeBundlesMetricsInPrometheus=false

# Enable computing the age of the oldest unacknowledged message for each subscription and exposing it
# through topic stats and Prometheus.
# When disabled, the broker skips computing per-subscription backlog age and the admin API field
# SubscriptionStats.oldestBacklogMessageAgeSeconds remains -1. Default is false.
exposeSubscriptionBacklogAgeInPrometheus=false

### --- Functions --- ###

# Enable Functions Worker Service in Broker
Expand Down Expand Up @@ -2078,6 +2085,12 @@ dispatcherPauseOnAckStatePersistentEnabled=false
# multiple entries.
persistentUnackedRangesWithMultipleEntriesEnabled=false

# Enables per-msgLedger cursor checkpoint persistence. When true, the cursor writes a
# CursorCheckpoint per flush (mark-delete ledger's ack state inline + refs to other ledgers'
# previously-persisted ack states) instead of the legacy single PositionInfo entry. Eliminates
# write amplification and avoids ack truncation.
persistentUnackedRangesWithPerLedgerEntryEnabled=false

# Deprecated - Use managedLedgerCacheEvictionIntervalMs instead
managedLedgerCacheEvictionFrequency=0

Expand Down
6 changes: 3 additions & 3 deletions conf/functions_log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
<name>Console</name>
<target>SYSTEM_OUT</target>
<PatternLayout>
<Pattern>%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%n</Pattern>
<Pattern>%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%equals{ %X}{ {}}{}%n</Pattern>
</PatternLayout>
</Console>
<RollingFile>
Expand All @@ -49,7 +49,7 @@
<filePattern>${sys:pulsar.function.log.dir}/${sys:pulsar.function.log.file}-%d{MM-dd-yyyy}-%i.log.gz</filePattern>
<immediateFlush>true</immediateFlush>
<PatternLayout>
<Pattern>%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%n</Pattern>
<Pattern>%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%equals{ %X}{ {}}{}%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy>
Expand Down Expand Up @@ -82,7 +82,7 @@
<filePattern>${sys:pulsar.function.log.dir}/${sys:pulsar.function.log.file}.bk-%d{MM-dd-yyyy}-%i.log.gz</filePattern>
<immediateFlush>true</immediateFlush>
<PatternLayout>
<Pattern>%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%n</Pattern>
<Pattern>%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%equals{ %X}{ {}}{}%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy>
Expand Down
3 changes: 3 additions & 0 deletions conf/functions_worker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,9 @@ functionRuntimeFactoryConfigs:
# # The Kubernetes pod name to run the function instances. It is set to
# # `pf-<tenant>-<namespace>-<function_name>-<random_uuid(8)>` if this setting is left to be empty
# jobName:
# # Optional domain suffix to use when the Function Worker constructs the gRPC address to connect to function instances.
# # If left blank, it defaults to `.svc.cluster.local`. Set this if your Function Worker is outside the cluster and connects via an external Gateway/Ingress.
# kubernetesServiceDomainSuffix:
# # the docker image to run function instance. by default it is `apachepulsar/pulsar`
# pulsarDockerImageName:
# # the docker image to run function instance according to different configurations provided by users.
Expand Down
6 changes: 3 additions & 3 deletions conf/log4j2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Configuration:
- name: Console
target: SYSTEM_OUT
PatternLayout:
Pattern: "%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%n"
Pattern: "%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%equals{ %X}{ {}}{}%n"
- name: ConsoleJson
target: SYSTEM_OUT
JsonTemplateLayout:
Expand All @@ -71,7 +71,7 @@ Configuration:
filePattern: "${sys:pulsar.log.dir}/${sys:pulsar.log.file}-%d{MM-dd-yyyy}-%i.log.gz"
immediateFlush: ${sys:pulsar.log.immediateFlush}
PatternLayout:
Pattern: "%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%n"
Pattern: "%d{ISO8601_OFFSET_DATE_TIME_HHMM} [%t] %-5level %logger{36} - %msg%equals{ %X}{ {}}{}%n"
Policies:
TimeBasedTriggeringPolicy:
interval: 1
Expand Down Expand Up @@ -109,7 +109,7 @@ Configuration:
fileName : "${sys:pulsar.log.dir}/functions/${ctx:function}/${ctx:functionname}-${ctx:instance}.log"
filePattern : "${sys:pulsar.log.dir}/functions/${sys:pulsar.log.file}-${ctx:instance}-%d{MM-dd-yyyy}-%i.log.gz"
PatternLayout:
Pattern: "%d{ABSOLUTE} %level{length=5} [%thread] [instance: %X{instance}] %logger{1} - %msg%n"
Pattern: "%d{ABSOLUTE} %level{length=5} [%thread] [instance:%X{instance}] %logger{1} - %msg%equals{ %X}{ {}}{}%n"
Policies:
TimeBasedTriggeringPolicy:
interval: 1
Expand Down
21 changes: 14 additions & 7 deletions conf/standalone.conf
Original file line number Diff line number Diff line change
Expand Up @@ -579,6 +579,13 @@ systemTopicSchemaCompatibilityStrategy=ALWAYS_COMPATIBLE
# Please enable the system topic first.
topicLevelPoliciesEnabled=true

# Amount of seconds to timeout initializing the topic policies cache of a namespace (reading the namespace's
# __change_events system topic to the end). Topic loading waits for this initialization, so if the system-topic
# reader gets stuck, this bounds the wait: the broker fails the initialization, closes the stuck reader and clears
# the cached state so loading the namespace's topics can be retried with a fresh reader instead of hanging until the
# broker is restarted. Set to 0 or a negative value to disable the timeout (not recommended).
topicPoliciesCacheInitTimeoutSeconds=60

# If a topic remains fenced for this number of seconds, it will be closed forcefully.
# If it is set to 0 or a negative number, the fenced topic will not be closed.
topicFencingTimeoutSeconds=0
Expand Down Expand Up @@ -868,15 +875,9 @@ managedLedgerMaxUnackedRangesToPersist=10000
managedLedgerMaxBatchDeletedIndexToPersist=10000

# When storing acknowledgement state, choose a more compact serialization format that stores
# individual acknowledgements as a bitmap which is serialized to an array of long values. NOTE: This setting requires
# managedLedgerUnackedRangesOpenCacheSetEnabled=true to be effective.
# individual acknowledgements as a bitmap which is serialized to an array of long values.
managedLedgerPersistIndividualAckAsLongArray=false

# When set to true, a BitSet will be used to track acknowledged messages that come after the "mark delete position"
# for each subscription. RoaringBitmap is used as a memory efficient BitSet implementation for the acknowledged
# messages tracking. Unacknowledged ranges are the message ranges excluding the acknowledged messages.
managedLedgerUnackedRangesOpenCacheSetEnabled=true

# Max number of "acknowledgment holes" that can be stored in MetadataStore. If number of unack message range is higher
# than this limit then broker will persist unacked ranges into bookkeeper to avoid additional data overhead into
# MetadataStore.
Expand Down Expand Up @@ -1116,6 +1117,12 @@ exposePublisherStats=true
# Default is false.
exposePreciseBacklogInPrometheus=false

# Enable computing the age of the oldest unacknowledged message for each subscription and exposing it
# through topic stats and Prometheus.
# When disabled, the broker skips computing per-subscription backlog age and the admin API field
# SubscriptionStats.oldestBacklogMessageAgeSeconds remains -1. Default is false.
exposeSubscriptionBacklogAgeInPrometheus=false

# Enable splitting topic and partition label in Prometheus.
# If enabled, a topic name will split into 2 parts, one is topic name without partition index,
# another one is partition index, e.g. (topic=xxx, partition=0).
Expand Down
3 changes: 0 additions & 3 deletions deployment/terraform-ansible/templates/broker.conf
Original file line number Diff line number Diff line change
Expand Up @@ -1077,9 +1077,6 @@ managedLedgerOffloadMaxThreads=2
# Maximum prefetch rounds for ledger reading for offloading
managedLedgerOffloadPrefetchRounds=1

# Use Open Range-Set to cache unacked messages
managedLedgerUnackedRangesOpenCacheSetEnabled=true

# For Amazon S3 ledger offload, AWS region
s3ManagedLedgerOffloadRegion=

Expand Down
2 changes: 1 addition & 1 deletion distribution/io/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>distribution</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>pulsar-io-distribution</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion distribution/offloaders/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>distribution</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>pulsar-offloader-distribution</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion distribution/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>pulsar</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>distribution</artifactId>
Expand Down
8 changes: 1 addition & 7 deletions distribution/server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<parent>
<groupId>com.ascentstream.pulsar</groupId>
<artifactId>distribution</artifactId>
<version>4.0.11.1-226281f-20260709031812-SNAPSHOT</version>
<version>4.0.14-SNAPSHOT</version>
</parent>

<artifactId>pulsar-server-distribution</artifactId>
Expand Down Expand Up @@ -93,12 +93,6 @@
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>${jline.version}</version>
</dependency>

<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>pulsar-package-bookkeeper-storage</artifactId>
Expand Down
Loading
Loading