Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
201 commits
Select commit Hold shift + click to select a range
de34788
Release 4.2.0
lhotari Mar 24, 2026
c3904d6
[fix][sec] Upgrade to Netty 4.1.132.Final to address CVEs (#25399)
lhotari Mar 25, 2026
a0051e5
[fix][client] Fix thread-safety and refactor MessageCryptoBc key mana…
lhotari Mar 26, 2026
d8170d5
[improve][ci] Cleanup tune-runner-vm and clean-disk actions (#25444)
lhotari Mar 31, 2026
3825cbd
[fix][admin] Refactor namespace migration operation to async in rest …
oneby-wang Apr 7, 2026
2d9ce2b
[fix][broker] Change the schema incompatible log from ERROR to WARN l…
Technoboy- Apr 8, 2026
927c3e8
[fix] Upgrade Jetty to 12.1.6 to fix CVE-2026-1605 (#25485)
merlimat Apr 9, 2026
2feaf26
[improve][broker] Close connection when close consumer write fails (#…
nodece Apr 15, 2026
a0420fb
[fix][broker] Revert "[improve][broker] Enhance advertised address re…
nodece Apr 15, 2026
28cd4e3
[fix][sec] Upgrade Jetty to address CVE-2026-2332 (#25527)
lhotari Apr 15, 2026
7fd11c5
[cleanup][build] Bumped version to 4.2.1-SNAPSHOT
lhotari Apr 15, 2026
307717f
[improve][ci] Backport fix for ssh-access action
lhotari Apr 15, 2026
bd689be
[fix][ci] Ensure discard_max_bytes is set to 0 only for existing bloc…
nodece Apr 13, 2026
81fc1ca
[fix][sec] Upgrade log4j to 2.25.4 to address CVE-2026-34477, CVE-202…
merlimat Apr 15, 2026
ab397b1
[fix][sec] Upgrade Jetty to address CVE-2026-5795 (#25532)
lhotari Apr 15, 2026
6d85339
[cleanup][ci] Remove ready-to-test label enforcement (#25470)
lhotari Apr 16, 2026
466dee1
[cleanup][ci] Remove documentation label bot (#25469)
merlimat Apr 7, 2026
52d4ac1
[fix][build][branch-4.2] Use correct Jetty ee8 BOM coordinates
lhotari Apr 16, 2026
5736b60
[fix][sec] Upgrade to async-http-client 2.14.5 to address CVE-2026-40…
lhotari Apr 17, 2026
f7e790b
[improve][common] Optimize TopicName.get() to reduce lock contention …
liangyepianzhou Apr 21, 2026
f042ba2
[improve][broker] Improve the performance of TopicName constructor (#…
BewareMyPower Apr 21, 2026
c95d317
[fix][broker] Fix backlog clearing for unloaded namespace bundles (#2…
zhanghaou Apr 7, 2026
eae4ef8
[fix][broker]Namespaces can be created with may empty replication_clu…
poorbarcode Apr 20, 2026
49c0894
[fix][io] Restore lz4 compression with Kafka IO connector after #2519…
lhotari Apr 21, 2026
c451abf
[fix][broker] Prevent timed-out producer creation from racing with re…
Denovo1998 Apr 3, 2026
a4e1119
[fix][test] Fix flaky ServerCnxTest.testCreateProducerTimeoutThenCrea…
lhotari Apr 8, 2026
79bd602
[fix][test] Fix flaky testLoadBalancerServiceUnitTableViewSyncer (#25…
merlimat Mar 31, 2026
4951868
[fix][test] Fix flaky ExtensibleLoadManagerImpl client reconnection t…
void-ptr974 Apr 13, 2026
205f125
[fix][test] Fix flaky ExtensibleLoadManagerTest.startBroker timeout (…
lhotari Apr 9, 2026
a62103d
[fix][broker] Lower log level of DrainingHashesTracker not-found entr…
singhvishalkr Apr 21, 2026
96b8d3b
[fix][broker] Unthrottle producers immediately when publish rate limi…
thetumbled Apr 15, 2026
4787e22
[fix][test] Recreate EventLoop in PublishRateLimiterTest setup (#25560)
merlimat Apr 21, 2026
7de4480
[fix][test] Fix flaky BrokerRegistryIntegrationTest port binding race…
merlimat Apr 7, 2026
3504964
[fix][broker] pulsar admin stats internal with metadata command (#25557)
programmerahul Apr 22, 2026
1ee8793
[fix][test] Relax BrokerRegistryIntegrationTest broker-close threshol…
merlimat Apr 22, 2026
8fbe0f2
[fix][test] Extend SameAuthParamsLookupAutoClusterFailoverTest phase …
merlimat Apr 22, 2026
ff7054f
[fix][test] Fix flaky OffloadPrefixTest.testPositionOnEdgeOfLedger ra…
merlimat Apr 22, 2026
8342786
[fix][test] Flaky SameAuthParamsLookupAutoClusterFailoverTest (#25566)
lhotari Apr 22, 2026
ec45e06
[improve][broker] Use full bundle name for namespace bundle destinati…
Demogorgon314 Apr 22, 2026
1fb3a6b
[fix][sec] Upgrade BouncyCastle to 1.84 (CVE-2026-5588, CVE-2026-0636…
lhotari Apr 23, 2026
aabd80b
Release 4.2.1
lhotari Apr 23, 2026
ca27ca9
[fix][client] Stabilize scaleReceiverQueueHint against concurrent enq…
merlimat Apr 24, 2026
0aa23bb
Bump version to next snapshot version
lhotari Apr 27, 2026
5614f9c
[fix][broker] Race condition causes perpetual backlog on internal top…
darinspivey May 1, 2026
35fde96
[fix][broker] ConcurrentLongHashMap throw ArrayIndexOutOfBoundsExcept…
void-ptr974 May 2, 2026
f5a6a76
[improve][misc] Upgrade Caffeine to 3.2.4 (#25663)
lhotari May 4, 2026
88cca9f
[fix][sec] Upgrade Netty to 4.1.133.Final to address CVEs (#25670)
lhotari May 5, 2026
d04ed91
[fix][broker]Replication is stuck because failed to read entries (#25…
poorbarcode May 5, 2026
70479e6
[fix][broker][fix][broker]Replication stats is empty when the cluster…
poorbarcode May 5, 2026
75494f0
[fix][broker][branch-4.2] URL-encode sub-name in Txn pending-ack topi…
shibd May 9, 2026
9deda7a
[fix][client]Broker-side producer handle leak if closes a producer wh…
poorbarcode May 9, 2026
44cc013
[improve][cli] Add client side looping in "pulsar-admin topics analyz…
oneby-wang Apr 27, 2026
ef327a8
[fix][broker] Decrement unacked counter when removeAllUpTo removes pe…
nodece Apr 27, 2026
e2ca1dd
[fix][client] Make ClientBuilder serializable (#25730) (#25739)
jiangpengcheng May 11, 2026
431516d
[fix][build][branch-4.2] Fix checkstyle issue after a previous cherry…
lhotari May 11, 2026
d5ba0d8
[fix][sec] Upgrade vert.x to 4.5.25 to address CVE-2026-6860 (#25737)
lhotari May 11, 2026
7d40597
[fix][broker] Skip backlog-quota eviction on fenced/closing topics (#…
lhotari May 6, 2026
c972346
[fix][build][branch-4.2] Fix compilation issue after backporting
lhotari May 11, 2026
e953228
[fix][broker] Correct two race conditions in the tracker code and log…
chamons May 8, 2026
5747c09
[fix][broker] Clean up orphan ledger on concurrent initial schema cre…
geniusjoe Apr 23, 2026
0517f48
fix log
Technoboy- May 12, 2026
44f6bbc
fix checkstyle
Technoboy- May 12, 2026
e09461b
[fix][sec] Upgrade vertx to 4.5.27 to address CVE-2026-6860 (#25745)
lhotari May 11, 2026
7dd424b
[fix][sec] Upgrade thrift to 0.23.0 to address CVE-2026-43869 (#25744)
lhotari May 11, 2026
ca3e8a4
[fix][broker] Wait for orphan schema ledger cleanup before retry (#25…
Denovo1998 Apr 27, 2026
62609ed
fix checkstyle
Technoboy- May 12, 2026
bcd6410
[fix][broker] Fix race in pending acks removal in redeliverUnacknowle…
Technoboy- May 12, 2026
c08b1e9
[fix][broker] Move pending acks cleanup to selected mark-delete callb…
Technoboy- May 12, 2026
2537ffc
[fix][broker] Close pending acks cleanup gap in BacklogQuotaManager (…
Technoboy- May 12, 2026
34354be
[improve][broker] optimize namespaceBundle validation to fix single-t…
Technoboy- May 12, 2026
c0957c8
[fix][broker] Merge broker offload extra configurations (#25736)
coderzc May 12, 2026
d004ca5
[improve][client] Implement tls_client_auth for AuthenticationOAuth2 …
Technoboy- May 12, 2026
f75ede3
[improve][misc] Upgrade Jetty to 12.1.9 (#25752)
lhotari May 12, 2026
c11ddd9
[fix][client] Apply Avro logical type conversions when decoding schem…
lhotari May 13, 2026
7a7ef87
[fix][test] Fix flaky ExtensibleLoadManagerImplTest.testLoadBalancerS…
merlimat Apr 28, 2026
1259fc1
[fix][test] Reduce flakiness in testLoadBalancerServiceUnitTableViewS…
merlimat May 1, 2026
235275d
[fix][test] Fix flaky testGetExcludedBookiesWithIsolationGroups (#25640)
merlimat May 1, 2026
d0d5f52
[fix][test] Make NamespacesTest.cleanupAfterMethod tolerant of transi…
merlimat May 1, 2026
a598969
[improve][test] Set diskUsageThreshold to 0.999 for tests to effectiv…
lhotari May 5, 2026
4779f26
[fix][test] Fix flaky OneWayReplicatorDeduplicationTest.testDeduplica…
Praveenkumar76 May 6, 2026
d88c6f4
[fix][proxy] Close channel on connection failure (#25770)
nodece May 14, 2026
306fc4e
[fix][broker] Fix PulsarService.closeAsync where Condition.signalAll …
zhaizhibo May 15, 2026
aadb316
[improve][fn] make built-in connector reload incremental (#25773)
Dream95 May 15, 2026
eee5d9d
[improve][build] Upgrade org.apache.kerby:kerb-simplekdc from 1.1.1 t…
lhotari May 15, 2026
18dd778
[refactor][fn] Use Map instead of TreeMap for connector/function API …
Dream95 May 16, 2026
1042e4f
[improve][broker] Prevent stale replicator pending reads after termin…
Denovo1998 May 18, 2026
814668f
[fix][broker] Use effective offload policies for extra configs (#25781)
coderzc May 18, 2026
7b4ad2f
[fix][sec] Bump org.asynchttpclient:async-http-client from 2.14.5 to …
dependabot[bot] May 19, 2026
f9b8ac4
[fix][broker] Fix ManagedLedgerImpl.advanceCursorsIfNecessary() metho…
oneby-wang May 18, 2026
9e35085
[improve][fn] Avoid gRPC timeout when getting status of a dead proces…
Dream95 May 19, 2026
e9ba10b
[fix][fn] Fix functions update issue where artifact is provided as a …
sbourkeostk May 21, 2026
981bef6
[fix][test] Add timeout to initial receives in ResendRequestTest.test…
merlimat May 20, 2026
4a5bf97
[fix][test] Fix flaky ResendRequestTest.testSharedSingleAckedPartitio…
oneby-wang May 22, 2026
4dcd9a9
[improve][build] Remove kotlin-stdlib override; upgrade okhttp3 5.3.2…
lhotari May 22, 2026
bc56bfe
[improve][client] In cases where there is a risk of message loss, adj…
poorbarcode May 24, 2026
3f59a3d
[fix][client] Fix failed to close consumer because of the error: para…
poorbarcode May 25, 2026
758d6e9
[fix][sec] Upgrade commons-configuration2 to 2.15.0 to address CVE-20…
lhotari May 21, 2026
6334d19
[improve][misc] Upgrade Netty to 4.1.134 (#25870)
lhotari May 26, 2026
d93426e
[fix][test] Stabilize WebService rate limiting test (#25866)
oneby-wang May 25, 2026
5991a1d
[fix][fn] Fix Go function runtime to continue after user exceptions a…
Dream95 May 25, 2026
5f10bf0
[fix][test] Fix flaky ProducerCleanupTest timer cleanup (#25864)
oneby-wang May 25, 2026
b3c7f39
[fix][test] Fix flaky PulsarFunctionTlsTest.testFunctionsCreation() t…
oneby-wang May 30, 2026
579d807
[fix][broker] Fix compaction cursor reset may lose mark-delete proper…
oneby-wang May 25, 2026
25af7cd
Return 400 for invalid reader messageId query parameter (#25865)
pratt4 May 25, 2026
c13b393
[fix][broker] Fix PersistentMessageExpiryMonitor findEntryComplete() …
oneby-wang May 25, 2026
879cc01
[fix][bk] Fix NPE in IsolatedBookieEnsemblePlacementPolicy when polic…
Shawyeok May 27, 2026
3629ba3
[fix][broker] Fix non-batched null-value messages not removed during …
grishaf May 29, 2026
4f8ffc8
[improve][client] Best-effort retry for individual/batch-index acks o…
nodece Apr 24, 2026
8c38d72
[fix][broker] Fix precision loss in DataSketchesSummaryLogger by repl…
zjxxzjwang Apr 29, 2026
5c749e2
[fix][broker] Fix stuck chunks in SharedConsumerAssignor permit track…
merlimat Apr 30, 2026
bb54a9b
[fix][client] Reset higher-index states on recovery in SameAuthParams…
merlimat May 20, 2026
e6faf75
[fix][test][branch-4.2] Fix PersistentMessageExpiryMonitorTest
lhotari Jun 1, 2026
35b4581
[fix][test] Fix flaky testMsgDropStat in NonPersistentTopicTest (#25426)
merlimat Mar 30, 2026
cfdb73f
[fix][meta] Fix PulsarZooKeeperClient async addWatch callback retry b…
oneby-wang Jun 2, 2026
155cb02
[fix][meta] Fix ZooKeeper session reconnect race condition in PulsarZ…
oneby-wang Jun 2, 2026
808c991
[fix][test] Fix flaky SameAuthParamsLookupAutoClusterFailoverTest.tes…
oneby-wang Jun 2, 2026
8867299
[improve][fn] make built-in functions reload incremental (#25868)
pratt4 Jun 2, 2026
63ac35b
[fix][sec] Upgrade Netty to 4.1.135.Final to address several CVEs (#2…
lhotari Jun 3, 2026
dab45f6
[fix][client] Clean up unacked messages when unsubscribing a topic wi…
Dream95 Jun 3, 2026
e3b8c4a
[fix][proxy] Avoid intermittent 502 when admin proxy follows a broker…
lhotari Jun 3, 2026
c3c3fe5
[fix][client] Prevent duplicate ServiceUrlProvider initialization (#2…
oneby-wang Jun 3, 2026
a640579
[improve][offload] Coalesce automatic offload triggers to reduce retr…
void-ptr974 Jun 3, 2026
edac8b1
[fix][test] Stabilize testSecondaryIsolationGroupsBookiesNegative() t…
oneby-wang Jun 3, 2026
fa9865c
[improve][misc] Upgrade vert.x to 4.5.28 (#25924)
lhotari Jun 4, 2026
9ce25e3
[improve][functions] Allow customizing Kubernetes service domain suff…
iantowey Jun 3, 2026
b91e2ee
[fix][client] Match logical topic when removing unacked messages (#25…
Dream95 Jun 5, 2026
45cd065
[improve][client] Clean up unacked message tracker when topics are re…
Dream95 Jun 5, 2026
ae5f410
[fix][client] Preserve equals in FieldParser map values (#25907)
hiSandog Jun 5, 2026
65e999c
[fix][fn] Fix orphan exclusive producer on creation timeout in Worker…
lhotari Jun 5, 2026
0bd2b6e
Release 4.2.2
lhotari Jun 5, 2026
b07e362
[improve][misc] Upgrade Jetty to 12.1.10 (#25943)
lhotari Jun 5, 2026
adc4fe4
[feat][pip] PIP-469: Legacy-aware topic policies backend routing and …
BewareMyPower Apr 27, 2026
712372f
[feat][broker] PIP-469: Legacy-aware topic policies backend routing a…
BewareMyPower May 18, 2026
0b8c00e
[improve][meta] Upgrade Oxia client to 0.8.0 (#25964)
mattisonchao Jun 8, 2026
e64fb18
Bump version to next snapshot version
lhotari Jun 8, 2026
131c4dd
[fix][broker] Fix tableview divergence in ServiceUnitStateTableViewSy…
lhotari Jun 7, 2026
da9bcd1
[fix][test] Fix flaky ExtensibleLoadManagerImplTest by re-serving the…
merlimat Jun 8, 2026
b3e8bdf
[fix][test] Fix flaky ExtensibleLoadManagerImplTest.initializeState b…
lhotari Jun 8, 2026
9f1fa7b
[fix][test] Deflake TopicPoliciesTest.setupTestTopic by retrying forc…
lhotari Jun 8, 2026
443cddb
[improve][misc] Upgrade Apache Commons libraries and Apache Http comp…
lhotari Jun 8, 2026
75fbe6b
[fix][ml] Fix eviction trigger race that cleared the in-progress mark…
merlimat Jun 10, 2026
f62a459
[fix][ml] Reset messageMetadataInitialized when recycling RangeCacheE…
merlimat Jun 10, 2026
08bb826
[fix][broker] Fix compacted read could be stuck forever or message lo…
BewareMyPower Jun 12, 2026
ab4aaaa
[fix][meta] Keep the leader value in the election cycle and make lead…
lhotari Jun 12, 2026
2baa1f7
[fix][client] Prevent client shutdown from leaking event loop threads…
david-streamlio Jun 17, 2026
d5bdaaa
[fix][broker] Fix delayed messages stalling with isDelayedDeliveryDel…
coderzc Jun 12, 2026
f83504b
[fix][broker] Prevent subscribe rate limit from stalling compaction a…
lhotari Jun 13, 2026
dfc1d2d
[fix][broker] Fix forced topic/namespace deletion hanging or failing …
lhotari Jun 13, 2026
86ad58d
[fix][broker] Fix forced topic/namespace deletion still hanging when …
lhotari Jun 14, 2026
e2f14fd
[fix][broker] Don't let a stuck or aborted topic policies cache init …
lhotari Jun 14, 2026
49ead2f
[fix][broker] Fail fast for load balancer misconfigurations instead o…
BewareMyPower Jun 15, 2026
3d06084
[improve][fn] Upgrade pulsar-client-python to 3.12.0 (#26033)
lhotari Jun 16, 2026
d92018e
[fix][fn] Make exclusiveLeaderProducer volatile in FunctionMetaDataMa…
SongOf Jun 17, 2026
3df6f52
[fix][broker] Run topic policy notifications on the topic-ordered exe…
lhotari Jun 17, 2026
0ac71ff
[fix][broker] Run the message expiry check off the topic policy updat…
lhotari Jun 17, 2026
c9d47a5
[fix][test] Fix flaky testPrepareInitPoliciesCacheAsyncThrowException…
lhotari Jun 17, 2026
7ef83a0
[fix][broker] Prevent topic policy initialization race with a bufferi…
lhotari Jun 18, 2026
7d8d4dc
[fix][broker] Avoid blocking metadata read on the IO thread when redi…
merlimat Jun 18, 2026
07cf613
[fix][proxy] Avoid blocking the proxy IO thread on a cold broker cach…
merlimat Jun 18, 2026
11bbb43
[fix][broker] Avoid blocking the dispatcher close path on delayed-del…
merlimat Jun 18, 2026
8ae84a7
[fix][broker] Avoid blocking the bundle-throughput lookup on per-bund…
merlimat Jun 18, 2026
fdf14ee
[fix][sec] Upgrade jline to 4.2.1 and picocli to 4.7.7, drop unused j…
lhotari Jun 20, 2026
3e6a848
[fix] functions: Run worker leader-election off the consumer event-li…
merlimat Jun 20, 2026
dff9973
[fix][build][branch-4.2] Upgrade docker/setup-qemu-action to v4.1.0
lhotari Jun 22, 2026
323ed23
[fix][broker] Fix geo-replication stuck after a failed publish to the…
void-ptr974 Jun 22, 2026
6c68d9c
[improve][test]Add test: test/testTopicPartitionCannotBeCreatedAfterT…
poorbarcode Jun 18, 2026
ec447ab
[fix][test] Make SameAuthParamsLookupAutoClusterFailoverTest less tim…
merlimat May 5, 2026
46c8b64
[fix][client] Run the failover health probe off the Netty event-loop …
merlimat Jun 22, 2026
951f398
[fix][meta] Run ledger-underreplication notification callbacks off th…
merlimat Jun 22, 2026
515e8d5
[fix][broker] Avoid attaching a consumer to a migrated non-persistent…
lhotari Jun 22, 2026
20561a4
[feat][broker] Expose managed ledger properties via topic internal st…
BewareMyPower Jun 23, 2026
f0d1f04
[fix][broker]Do not trigger topic GC if replication is still active (…
poorbarcode Jun 24, 2026
1a7fe8b
[fix][sec][branch-4.2] Upgrade Jackson version to 2.18.8 (#26099)
shibd Jun 26, 2026
ba906cb
[improve][broker] Trim orphaned bucket snapshots when ledgers are del…
dao-jun Jun 23, 2026
964a723
[fix][broker] Guard BucketDelayedDeliveryTracker.nextDeliveryTime aga…
dao-jun Jun 24, 2026
9cf8a61
[improve][broker] Improve dispatch performance by summing entry bytes…
void-ptr974 Jun 24, 2026
86256f1
[fix][broker] Fix replicator getting stuck under rate limiter throttl…
void-ptr974 Jun 29, 2026
fe64a9e
[fix][broker] Forward topic policy updates after init failures (#26110)
Denovo1998 Jun 29, 2026
a6fe823
[fix][test][branch-4.2] Adapt ConfigurationDataUtilsTest to Jackson 2…
lhotari Jun 29, 2026
6f4a122
Release 4.2.3
lhotari Jun 29, 2026
7302d10
[fix][test] Fix flaky SchemaServiceTest.testSchemaRegistryMetrics (#2…
merlimat May 1, 2026
38f9993
[fix][broker] Fix replication stall when a cursor rewind skips an in-…
lhotari Jun 30, 2026
0827ef0
[fix][broker] Don't let a closing topic-policies reader abort a concu…
lhotari Jul 2, 2026
14c4c63
[fix][test] Fix flaky AuditorBookieTest.testBookieClusterRestart (#26…
lhotari Jul 1, 2026
48756bc
[fix][test] Fix flaky PersistentTopicsTest setup caused by concurrent…
void-ptr974 Jul 1, 2026
3ebf727
[fix][test] Run makeReadEntryProbFail's errorOrNot on a caller-provid…
lhotari Jul 1, 2026
0882abe
[improve][broker] Load topic policies on non-persistent topic load an…
lhotari Jul 2, 2026
377be96
[improve][fn] Upgrade pulsar-client-python to 3.13.0 (#26139)
lhotari Jul 2, 2026
ba7c1ae
[fix][sec] Upgrade pulsar-client-go to v0.20.0 in pulsar-function-go,…
lhotari Jul 2, 2026
11d1b09
[fix][fn] Reorder Function Worker shutdown to stop scheduler before r…
Dream95 Jul 2, 2026
72b4f80
[fix][sec] Bump github.com/go-jose/go-jose/v4 from 4.1.3 to 4.1.4 in …
dependabot[bot] Jul 2, 2026
4a6bf73
Bump version to next snapshot version
lhotari Jul 6, 2026
4744749
[improve][meta] Support tuning Oxia MetadataStoreConfig through metad…
mattisonchao Jul 6, 2026
3a2cfe6
[fix][metadata] Fix orphaned UR parent nodes not cleaned up with Oxia…
eugene-polozhenkov Jul 7, 2026
8d10264
[fix][ci][branch-4.2] Skip testMarkReplicatedDeletesEmptyParentNodes …
lhotari Jul 9, 2026
67dc3aa
[fix][sec][branch-4.2] Upgrade Netty to 4.1.136.Final (#26168)
lhotari Jul 9, 2026
9000452
[improve][monitor][branch-4.2] Upgrade OpenTelemetry libraries (#26182)
shibd Jul 13, 2026
07f05c1
[fix][sec][branch-4.2] Upgrade Jackson version to 2.18.9 (#26186)
shibd Jul 14, 2026
7d790b0
[fix][sec][branch-4.2] Upgrade Hadoop to 3.5.0 (#26194)
shibd Jul 15, 2026
dd719ac
[fix][broker] Prevent early replay of non-strict delayed messages (#2…
coderzc Jul 14, 2026
64fc12b
[improve][broker] Upgrade bookkeeper to 4.17.4
StevenLuMT Jul 21, 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
  •  
  •  
  •  
26 changes: 0 additions & 26 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,29 +70,3 @@ This change added tests and can be verified as follows:
- [ ] The admin CLI options
- [ ] The metrics
- [ ] Anything that affects deployment

### Documentation

<!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. -->

- [ ] `doc` <!-- Your PR contains doc changes. -->
- [ ] `doc-required` <!-- Your PR changes impact docs and you will update later -->
- [ ] `doc-not-needed` <!-- Your PR changes do not impact docs -->
- [ ] `doc-complete` <!-- Docs have been already added -->

### Matching PR in forked repository

PR in forked repository: <!-- ENTER URL HERE -->

<!--
After opening this PR, the build in apache/pulsar will fail and instructions will
be provided for opening a PR in the PR author's forked repository.

apache/pulsar pull requests should be first tested in your own fork since the
apache/pulsar CI based on GitHub Actions has constrained resources and quota.
GitHub Actions provides separate quota for pull requests that are executed in
a forked repository.

The tests will be run in the forked repository until all PR review comments have
been handled, the tests pass and the PR is approved by a reviewer.
-->
116 changes: 85 additions & 31 deletions .github/actions/clean-disk/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,44 +23,98 @@ inputs:
mode:
description: "Use 'full' to clean as much as possible"
required: false
clean-threshold-gb:
description: "Skip cleaning if available disk space exceeds this threshold (in GB)"
required: false
default: '20'
full-clean-threshold-gb:
description: "In 'full' mode, skip additional cleaning steps if available disk space exceeds this threshold (in GB)"
required: false
default: '40'
runs:
using: composite
steps:
- run: |
- shell: bash
env:
CLEAN_MODE: ${{ inputs.mode }}
CLEAN_THRESHOLD_GB: ${{ inputs.clean-threshold-gb }}
FULL_CLEAN_THRESHOLD_GB: ${{ inputs.full-clean-threshold-gb }}
run: |
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
directories=(/usr/local/lib/android /opt/ghc)
if [[ "${{ inputs.mode }}" == "full" ]]; then
# remove these directories only when mode is 'full'
directories+=(/usr/share/dotnet /opt/hostedtoolcache/CodeQL)

available_gb() {
df --output=avail -BG / | tail -1 | tr -d ' G'
}

show_disk() {
if mountpoint -q /mnt; then df -BM / /mnt; else df -BM /; fi
}

remove_dir() {
local directory=$1
if [ -d "$directory" ]; then
echo "::group::Removing $directory"
local emptydir=/tmp/empty$$/
mkdir -p "$emptydir"
# fast way to delete a lot of files on linux
time sudo eatmydata rsync -a --delete "$emptydir" "${directory}/"
time sudo eatmydata rm -rf "${directory}"
rmdir "$emptydir" 2>/dev/null || true
time show_disk
echo "::endgroup::"
fi
}

# Remove directories one at a time, stopping when threshold is met
clean_dirs() {
local threshold=$1
shift
for directory in "$@"; do
if (( $(available_gb) >= threshold )); then
return
fi
remove_dir "$directory"
done
}

if [[ "$CLEAN_MODE" == "full" ]]; then
threshold=$FULL_CLEAN_THRESHOLD_GB
else
threshold=$CLEAN_THRESHOLD_GB
fi
emptydir=/tmp/empty$$/
mkdir $emptydir
echo "::group::Available diskspace"
time df -BM / /mnt

echo "::group::Available diskspace (threshold: ${threshold}GB)"
time show_disk
echo "::endgroup::"
for directory in "${directories[@]}"; do
echo "::group::Removing $directory"
# fast way to delete a lot of files on linux
time sudo eatmydata rsync -a --delete $emptydir ${directory}/
time sudo eatmydata rm -rf ${directory}
time df -BM / /mnt
echo "::endgroup::"
done
if [[ "${{ inputs.mode }}" == "full" ]]; then
echo "::group::Moving /var/lib/docker to /mnt/docker"
sudo systemctl stop docker
echo '{"data-root": "/mnt/docker"}' | sudo tee /etc/docker/daemon.json
sudo mv /var/lib/docker /mnt/docker
sudo systemctl start docker
time df -BM / /mnt

if (( $(available_gb) >= threshold )); then
echo "Available disk space meets threshold, skipping cleanup."
exit 0
fi

clean_dirs "$threshold" /usr/local/lib/android /opt/ghc

if [[ "$CLEAN_MODE" == "full" ]]; then
clean_dirs "$threshold" /usr/share/dotnet /opt/hostedtoolcache/CodeQL
if (( $(available_gb) < threshold )) && mountpoint -q /mnt; then
echo "::group::Moving /var/lib/docker to /mnt/docker"
sudo systemctl stop docker
echo '{"data-root": "/mnt/docker"}' | sudo tee /etc/docker/daemon.json
sudo mv /var/lib/docker /mnt/docker
sudo systemctl start docker
time show_disk
echo "::endgroup::"
fi
fi

if (( $(available_gb) < threshold )); then
echo "::group::Cleaning apt state"
time sudo bash -c "apt-get clean; apt-get autoclean; apt-get -y --purge autoremove"
time show_disk
echo "::endgroup::"
fi
echo "::group::Cleaning apt state"
time sudo bash -c "apt-get clean; apt-get autoclean; apt-get -y --purge autoremove"
time df -BM / /mnt

echo "::group::Available diskspace"
time show_disk
echo "::endgroup::"
fi
echo "::group::Available diskspace"
time df -BM / /mnt
echo "::endgroup::"
shell: bash
5 changes: 3 additions & 2 deletions .github/actions/ssh-access/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,16 @@ runs:
if command -v upterm &>/dev/null; then
shopt -s nullglob
echo "SSH connection information"
upterm session current --admin-socket ~/.upterm/*.sock || {
export UPTERM_ADMIN_SOCKET=$(find $HOME/.upterm $XDG_RUNTIME_DIR/upterm /run/user/$(id -u)/upterm -name "*.sock" | head -n 1)
upterm session current || {
echo "upterm isn't running. Not waiting any longer."
exit 0
}
timeout=${{ inputs.timeout }}
echo "Waiting $timeout seconds..."
sleep $timeout
echo "Keep waiting as long as there's a connected session"
while upterm session current --admin-socket ~/.upterm/*.sock|grep Connected &>/dev/null; do
while upterm session current|grep Connected &>/dev/null; do
sleep 30
done
echo "No session is connected. Not waiting any longer."
Expand Down
56 changes: 21 additions & 35 deletions .github/actions/tune-runner-vm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ description: tunes the GitHub Runner VM operation system
runs:
using: composite
steps:
- run: |
- shell: bash
run: |
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
echo "::group::Configure and tune OS"
# Ensure that reverse lookups for current hostname are handled properly
Expand All @@ -33,49 +34,40 @@ runs:
# consumption is high.
# Set vm.swappiness=1 to avoid swapping and allow high RAM usage
echo 1 | sudo tee /proc/sys/vm/swappiness
(
shopt -s nullglob
# Set swappiness to 1 for all cgroups and sub-groups
for swappiness_file in /sys/fs/cgroup/memory/*/memory.swappiness /sys/fs/cgroup/memory/*/*/memory.swappiness; do
echo 1 | sudo tee $swappiness_file > /dev/null
done
) || true

# use "madvise" Linux Transparent HugePages (THP) setting
# https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html
# "madvise" is generally a better option than the default "always" setting
# Based on Azul instructions from https://docs.azul.com/prime/Enable-Huge-Pages#transparent-huge-pages-thp
# recommendation from https://netflixtechblog.com/bending-pause-times-to-your-will-with-generational-zgc-256629c9386b
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo advise | sudo tee /sys/kernel/mm/transparent_hugepage/shmem_enabled
echo defer+madvise | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
echo defer | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
echo 1 | sudo tee /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

# tune filesystem mount options, https://www.kernel.org/doc/Documentation/filesystems/ext4.txt
# commit=999999, effectively disables automatic syncing to disk (default is every 5 seconds)
# nobarrier/barrier=0, loosen data consistency on system crash (no negative impact to empheral CI nodes)
sudo mount -o remount,nodiscard,commit=999999,barrier=0 / || true
sudo mount -o remount,nodiscard,commit=999999,barrier=0 /mnt || true
if mountpoint -q /mnt; then
sudo mount -o remount,nodiscard,commit=999999,barrier=0 /mnt || true
fi
# disable discard/trim at device level since remount with nodiscard doesn't seem to be effective
# https://www.spinics.net/lists/linux-ide/msg52562.html
for i in /sys/block/sd*/queue/discard_max_bytes; do
echo 0 | sudo tee $i
for i in /sys/block/*/queue/discard_max_bytes; do
if [ -f "$i" ]; then
echo 0 | sudo tee "$i"
fi
done
# disable any background jobs that run SSD discard/trim
sudo systemctl disable fstrim.timer || true
sudo systemctl stop fstrim.timer || true
sudo systemctl disable fstrim.service || true
sudo systemctl stop fstrim.service || true
# disable unnecessary timers
sudo systemctl stop fstrim.timer fstrim.service \
podman-auto-update.timer sysstat-collect.timer sysstat-summary.timer \
phpsessionclean.timer man-db.timer motd-news.timer \
dpkg-db-backup.timer e2scrub_all.timer \
update-notifier-download.timer update-notifier-motd.timer || true

# stop php-fpm
sudo systemctl stop php8.0-fpm.service || true
sudo systemctl stop php7.4-fpm.service || true
# stop mono-xsp4
sudo systemctl disable mono-xsp4.service || true
sudo systemctl stop mono-xsp4.service || true
sudo killall mono || true

# stop Azure Linux agent to save RAM
sudo systemctl stop walinuxagent.service || true
# stop unnecessary services
sudo systemctl stop php8.3-fpm.service ModemManager.service \
multipathd.service udisks2.service walinuxagent.service || true

echo '::endgroup::'

Expand All @@ -87,10 +79,4 @@ runs:
echo "::group::Available diskspace"
df -BM
echo "::endgroup::"
# show cggroup
echo "::group::Cgroup settings for current cgroup $CURRENT_CGGROUP"
CURRENT_CGGROUP=$(cat /proc/self/cgroup | grep '0::' | awk -F: '{ print $3 }')
sudo cgget -a $CURRENT_CGGROUP || true
echo '::endgroup::'
fi
shell: bash
fi
46 changes: 0 additions & 46 deletions .github/workflows/ci-documentbot.yml

This file was deleted.

12 changes: 2 additions & 10 deletions .github/workflows/ci-go-functions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,22 +60,14 @@ jobs:
echo docs_only=false >> $GITHUB_OUTPUT
fi

- name: Check if the PR has been approved for testing
if: ${{ steps.check_changes.outputs.docs_only != 'true' && github.repository == 'apache/pulsar' && github.event_name == 'pull_request' }}
env:
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
GITHUB_TOKEN: ${{ github.token }}
run: |
build/pulsar_ci_tool.sh check_ready_to_test

check-style:
needs: preconditions
if: ${{ needs.preconditions.outputs.docs_only != 'true' }}
name: Go ${{ matrix.go-version }} Functions style check
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 @@ -93,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
8 changes: 0 additions & 8 deletions .github/workflows/pulsar-ci-flaky.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,6 @@ jobs:
github.event_name == 'workflow_dispatch' && github.event.inputs.netty_leak_detection || 'report'
}}" >> $GITHUB_OUTPUT
- name: Check if the PR has been approved for testing
if: ${{ steps.check_changes.outputs.docs_only != 'true' && github.repository == 'apache/pulsar' && github.event_name == 'pull_request' }}
env:
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
GITHUB_TOKEN: ${{ github.token }}
run: |
build/pulsar_ci_tool.sh check_ready_to_test
build-and-test:
needs: preconditions
name: Flaky tests suite
Expand Down
10 changes: 1 addition & 9 deletions .github/workflows/pulsar-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -201,14 +201,6 @@ jobs:
github.event_name == 'workflow_dispatch' && github.event.inputs.netty_leak_detection || 'report'
}}" >> $GITHUB_OUTPUT

- name: Check if the PR has been approved for testing
if: ${{ steps.check_changes.outputs.docs_only != 'true' && github.repository == 'apache/pulsar' && github.event_name == 'pull_request' }}
env:
GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }}
GITHUB_TOKEN: ${{ github.token }}
run: |
build/pulsar_ci_tool.sh check_ready_to_test

build-and-license-check:
needs: preconditions
name: Build and License check
Expand Down Expand Up @@ -596,7 +588,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
Loading
Loading