Skip to content

[improve][misc] Sync commits from apache/branch-4.17 into ds-4.17#34

Merged
manas-ctds merged 9 commits into
ds-4.17from
cherry-pick_apr24_ds-4.17
Apr 24, 2026
Merged

[improve][misc] Sync commits from apache/branch-4.17 into ds-4.17#34
manas-ctds merged 9 commits into
ds-4.17from
cherry-pick_apr24_ds-4.17

Conversation

@manas-ctds

Copy link
Copy Markdown

Descriptions of the changes in this PR:

Motivation

(Explain: why you're making that change, what is the problem you're trying to solve)

Changes

(Describe: what changes you have made)

Master Issue: #


In order to uphold a high standard for quality for code contributions, Apache BookKeeper runs various precommit
checks for pull requests. A pull request can only be merged when it passes precommit checks.


Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

If this PR is a BookKeeper Proposal (BP):

  • Make sure the PR title is formatted like:
    <BP-#>: Description of bookkeeper proposal
    e.g. BP-1: 64 bits ledger is support
  • Attach the master issue link in the description of this PR.
  • Attach the google doc link if the BP is written in Google Doc.

Otherwise:

  • Make sure the PR title is formatted like:
    <Issue #>: Description of pull request
    e.g. Issue 123: Description ...
  • Make sure tests pass via mvn clean apache-rat:check install spotbugs:check.
  • Replace <Issue #> in the title with the actual Issue number.

dependabot Bot and others added 8 commits April 24, 2026 10:43
)

* build(deps): bump io.vertx:vertx-core from 4.5.11 to 4.5.24

Bumps [io.vertx:vertx-core](https://github.com/eclipse/vert.x) from 4.5.11 to 4.5.24.
- [Commits](eclipse-vertx/vert.x@4.5.11...4.5.24)

---
updated-dependencies:
- dependency-name: io.vertx:vertx-core
  dependency-version: 4.5.24
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix license issue

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: zymap <zhangyong1025.zy@gmail.com>
(cherry picked from commit ab2b29d)
(cherry picked from commit 85dfea6)
Co-authored-by: xiangying <mengxiangying@xiaohongshu.com>
(cherry picked from commit 425001f)
(cherry picked from commit 86bf815)
---

### Motivation

```
WARNING  Error during upload. Retry with the --verbose option for more details.
ERROR    HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
         Filename 'apache-bookkeeper-client-4.17.3.tar.gz' is invalid, should be 'apache_bookkeeper_client-4.17.3.tar.gz'.
```

(cherry picked from commit 3a5cf9d)
(cherry picked from commit dd2be8f)
* fix writeLac memory leak

---------

Co-authored-by: wenbingshen <wenbingshen@tencent.com>
(cherry picked from commit 951f10d)
(cherry picked from commit 9b0e9e8)
…0.0 (apache#4725)

(cherry picked from commit a7f0ba1)
(cherry picked from commit 1001f6a)
)

* Count the connection failure as the condition of quarantine
---

### Motivation

Currently, the BookieClient quarantine mechanism primarily triggers based on read and write error responses from Bookies. However, in multi-region deployments, a common failure mode is the Network Partition or DNS Resolution Failure at the Region level.

In such scenarios:

A Bookie remains registered in ZooKeeper (it can still heartbeat to its local ZK observer).

The Client (Broker) cannot resolve the Bookie's IP or establish a TCP connection.

The EnsemblePlacementPolicy (especially RegionAwareEnsemblePlacementPolicy) sees the Bookie as "Available" and repeatedly selects it to satisfy minRack or E/Qw constraints.

The LedgerHandle fails to write because it cannot initialize a connection handle, triggering an Ensemble Change.

Because the connection failure didn't trigger a quarantine, the placement policy picks the same problematic Bookie again in the next iteration.

This creates an infinite Ensemble Change loop, causing the Ledger write to hang indefinitely and bloating the Ledger metadata in ZooKeeper with thousands of segments.

* Add configuration to control the behavior

(cherry picked from commit 497aa4e)
(cherry picked from commit accaa3d)
…QUEST p99 latency spike (apache#4730)

* Fix read thread blocking in sendResponseAndWait causing READ_ENTRY_REQUEST p99 latency spike

* address comments

(cherry picked from commit 8664dd9)
(cherry picked from commit ff7ea0d)
…ok (apache#4733)

The UncaughtExceptionHandler in ComponentStarter calls
shutdownHookThread.start(), but this can throw IllegalThreadStateException
if the thread was already started by a prior exception or by the JVM
shutdown sequence. This exception propagates out of the handler, causing
the JVM to print "Exception thrown from the UncaughtExceptionHandler"
on the BookieDeathWatcher thread.

Catch IllegalThreadStateException since it simply means shutdown is
already in progress.

(cherry picked from commit 06726e1)
@manas-ctds manas-ctds self-assigned this Apr 24, 2026
@manas-ctds
manas-ctds merged commit c0ae83b into ds-4.17 Apr 24, 2026
18 of 19 checks passed
@manas-ctds
manas-ctds deleted the cherry-pick_apr24_ds-4.17 branch April 24, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants