Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

branch-2.1: [fix](bdb) reset interrupted flag before calling bdbje #47874 #47943

Merged
merged 1 commit into from
Feb 18, 2025

Conversation

github-actions[bot]
Copy link
Contributor

Cherry-picked from #47874

### What problem does this PR solve?

This pull request includes changes to ensure that the interrupted flag
of the current thread is reset before performing certain operations to
prevent failures in acquiring locks. The changes primarily affect the
`BDBEnvironment` and `BDBJEJournal` classes.

```
Caused by: java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326) ~[?:1.8.0_352-352]
        at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.tryLock(ReentrantReadWriteLock.java:871) ~[?:1.8.0_352-352]
        at com.sleepycat.je.latch.SharedLatchImpl.acquireShared(SharedLatchImpl.java:103) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.tree.Tree.getRootINInternal(Tree.java:447) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.tree.Tree.getRootIN(Tree.java:431) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.tree.Tree.search(Tree.java:2185) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.tree.Tree.getFirstNode(Tree.java:812) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.dbi.CursorImpl.positionFirstOrLast(CursorImpl.java:1776) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.dbi.CursorImpl.traverseDbWithCursor(CursorImpl.java:3953) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.dbi.DbTree.getDbNames(DbTree.java:1808) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        at com.sleepycat.je.Environment.getDatabaseNames(Environment.java:2458) ~[je-18.3.14-doris-SNAPSHOT.jar:18.3.14-doris-SNAPSHOT]
        ... 21 more
```

This a self-defend logic. Because we found that some times other logic
may set the thread as interrupted and
does not handle it.
@morningman morningman closed this Feb 18, 2025
@morningman morningman reopened this Feb 18, 2025
@morningman
Copy link
Contributor

run buildall

@morningman morningman merged commit 203680f into branch-2.1 Feb 18, 2025
18 of 19 checks passed
@github-actions github-actions bot deleted the auto-pick-47874-branch-2.1 branch February 18, 2025 05:51
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.

1 participant