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
Copy link
Copy Markdown
Contributor

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

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
Copy link
Copy Markdown
Contributor Author

rapids-bot Bot commented May 15, 2026

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

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants