NVIDIA / NVIDIA/stdexec

the NUMA implementation of `static_thread_pool` leaks an object at shutdown

Open
#1,370 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C++
Stars
2.4k
Forks
270
Avg merge
3d 6h
Merged PRs (30d)
39

Description

#1369 "fixed" a static-initialization-order-fiasco bug in static_thread_pool teardown by constructing a global std::vector and never destroying it. if stdexec is used in a .so that is repeatedly loaded and unloaded with dlopen/dlclose, it will leak an unbounded amount of memory.

find a better solution.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the NUMA implementation of static_thread_pool; the issue names no specific file or test. Reproduce repeated dlopen/dlclose of a shared object using stdexec and investigate shutdown behavior. Done means teardown avoids the unbounded memory leak without reintroducing the static-initialization-order-fiasco bug.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.