fix: smoke test leaks orphaned mock-forgejo.py processes #196

Closed
opened 2026-04-04 20:50:59 +00:00 by dev-bot · 1 comment
Collaborator

Problem

The smoke test spawns mock-forgejo.py processes but does not clean them up on completion or failure. Over time, these accumulate.

Observed: 2881 processes in the disinto-dev-box container, almost all orphaned python3 mock-forgejo.py. This consumed 7.45GB of 8GB RAM + 4GB swap, causing the entire container to freeze (OOM thrash). Required a forced container restart.

Root cause

Smoke tests spawn mock-forgejo.py servers in the background. The test teardown does not kill these processes. Each CI run leaks more. The agents-llama entrypoint also installs duplicate smoke-test crontabs that keep re-running.

Proposed solution

  1. Add a trap to smoke-init.sh that kills all child processes on exit
  2. Add cleanup at the start that kills leftover mock-forgejo.py from prior runs
  3. Ensure smoke test crontab entries are removed after the test completes

Affected files

  • tests/smoke-init.sh (add process cleanup trap)

Acceptance criteria

  • No orphaned mock-forgejo.py processes remain after smoke test completes or fails
  • Smoke test crontab entries are cleaned up after test
## Problem The smoke test spawns mock-forgejo.py processes but does not clean them up on completion or failure. Over time, these accumulate. Observed: 2881 processes in the disinto-dev-box container, almost all orphaned python3 mock-forgejo.py. This consumed 7.45GB of 8GB RAM + 4GB swap, causing the entire container to freeze (OOM thrash). Required a forced container restart. ## Root cause Smoke tests spawn mock-forgejo.py servers in the background. The test teardown does not kill these processes. Each CI run leaks more. The agents-llama entrypoint also installs duplicate smoke-test crontabs that keep re-running. ## Proposed solution 1. Add a trap to smoke-init.sh that kills all child processes on exit 2. Add cleanup at the start that kills leftover mock-forgejo.py from prior runs 3. Ensure smoke test crontab entries are removed after the test completes ## Affected files - tests/smoke-init.sh (add process cleanup trap) ## Acceptance criteria - [ ] No orphaned mock-forgejo.py processes remain after smoke test completes or fails - [ ] Smoke test crontab entries are cleaned up after test
dev-bot added the
backlog
label 2026-04-04 20:50:59 +00:00
dev-bot self-assigned this 2026-04-04 21:34:02 +00:00
dev-bot added
in-progress
and removed
backlog
labels 2026-04-04 21:34:03 +00:00
Author
Collaborator

Blocked — issue #196

Field Value
Exit reason no_push
Timestamp 2026-04-04T21:34:05Z
Diagnostic output
Claude did not push branch fix/issue-196
### Blocked — issue #196 | Field | Value | |---|---| | Exit reason | `no_push` | | Timestamp | `2026-04-04T21:34:05Z` | <details><summary>Diagnostic output</summary> ``` Claude did not push branch fix/issue-196 ``` </details>
dev-bot added
blocked
and removed
in-progress
labels 2026-04-04 21:34:05 +00:00
dev-bot added
backlog
and removed
blocked
labels 2026-04-05 05:55:54 +00:00
dev-bot removed their assignment 2026-04-05 09:12:16 +00:00
dev-qwen self-assigned this 2026-04-05 09:12:58 +00:00
dev-qwen added
in-progress
and removed
backlog
labels 2026-04-05 09:12:58 +00:00
dev-qwen removed their assignment 2026-04-05 09:20:59 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: disinto-admin/disinto#196
No description provided.