run_tasks creates one pending task per input despite the parallelism limit
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start in nemo_platform/beta/evaluator/agent_eval/runtimes/docker_sandbox.py at DockerSandboxAgentRuntime.run_tasks(), lines 113-128, and run the attached run.py reproduction. Done means configured parallelism limits both active sandbox work and admitted pending child tasks, rather than creating one pending task per input.
Written by the indexing model from the issue text.
Description
Description
DockerSandboxAgentRuntime.run_tasks() limits the number of sandbox tasks executing concurrently according to the configured parallelism, but creates a child asyncio task for every input task before waiting for them to complete.
As a result, parallelism bounds active sandbox work but does not bound the number of admitted pending tasks.
I reproduced this behavior with 512 input tasks and parallelism=16.
Observed behavior:
Input tasks: 512
Configured parallelism: 16
Peak active sandbox tasks: 16
Pending child tasks before release: 512
External service contacted: No
The number of pending asyncio tasks therefore scales with the total input size rather than the configured parallelism. Large evaluation batches can consequently create substantial numbers of pending tasks even when active sandbox execution is intentionally limited.
Affected Version
Confirmed on:
nemo-platform-plugin==0.3.0
DockerSandboxAgentRuntime.run_tasks()
nemo_platform/beta/evaluator/agent_eval/runtimes/docker_sandbox.py:113-128
PoC runtime:
Python 3.11.0rc1
Other versions have not been tested.
Reproduction
The attached PoC loads the released DockerSandboxAgentRuntime.run_tasks() implementation from the 0.3.0 wheel and supplies 512 tasks with parallelism set to 16.
The per-task operation is replaced with a controlled local implementation that holds active work pending long enough to measure both execution concurrency and the number of child tasks already created.
Observed result:
input tasks: 512
configured parallelism: 16
peak active sandbox tasks: 16
pending child tasks before release: 512
input-proportional pending task creation reproduced: yes
No external service is contacted during reproduction.
Attachment
- Dominant language
- Python
- Stars
- 79
- Forks
- 24
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 578
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA-NeMo/nemo-platform
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
NVIDIA-NeMo/nemo-platform#2038 ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 45/100
NVIDIA-NeMo/nemo-platform#1844 · 1 comment ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 62/100
NVIDIA-NeMo/nemo-platform#1417 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
NVIDIA-NeMo/nemo-platform#1341 · 1 comment ·
-
Difficulty 5/5 Over a week Newbie friendliness 48/100
NVIDIA-NeMo/nemo-platform#1305 ·
All issues in NVIDIA-NeMo/nemo-platform
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
bancolombia/sentinel#23 ·
-
test md OpenCI
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
bug client
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100