Skip to content

Forward-merge release/26.06 into main#2098

Merged
AyodeAwe merged 1 commit into
mainfrom
release/26.06
May 15, 2026
Merged

Forward-merge release/26.06 into main#2098
AyodeAwe merged 1 commit into
mainfrom
release/26.06

Conversation

@rapids-bot

@rapids-bot rapids-bot Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Forward-merge triggered by push to release/26.06 that creates a PR to keep main up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.

Resolves #2087

# What does this PR do?

There is a race condition on the std::optional `!handle_.has_value()`.
While thread 1 works on assigning handle with mmap, thread 2 can race through and try to assign it as well. However,   during reassignment it causes destructor of thread 1 to be called which calls unmap, leading to a segfault.

To solve this we use `std::once` so that other threads can't enter the critical section. 
`std::once` is non reentrant, so we need to also refactor from using recursion to a while loop.
`std::once` is not movable, so we allocate it on the heap and use a unique_pointer to keep track of it instead.
We need to ensure member variables of blob are movable since blob is used in a std::variant

Authors:
  - Anupam (https://github.com/aamijar)

Approvers:
  - Dante Gama Dessavre (https://github.com/dantegd)

URL: #2088
@rapids-bot rapids-bot Bot requested a review from a team as a code owner May 15, 2026 23:00
@AyodeAwe AyodeAwe merged commit e06e72b into main May 15, 2026
3 checks passed
@rapids-bot

rapids-bot Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor Author

SUCCESS - forward-merge complete.

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.

3 participants