adoptium / adoptium/aqa-test-tools
TRSSBackend repeated OOM crash-loop — streaming build log offset drift causes unbounded memory growth
- Dominant language
- Jupyter Notebook
- Stars
- 33
- Forks
- 97
- Avg merge
- 7h 9m
- Merged PRs (30d)
- 5
Description
Summary
---
TRSSBackend has been OOM-crashing repeatedly (`FATAL ERROR: ... JavaScript heap out of memory, SIGABRT`), even with a 4GB heap already configured via `NODE_OPTIONS=--max_old_space_size=4096` in the init script. Confirmed 7+ crashes over a ~24h window on trssrtp1.
Every crash is preceded (within minutes) by a `BuildProcessor: processBuild(): Exception: Output size X > size limit 52428800` warning, with X ranging from ~58MB to ~150MB.
Root cause seems to be
In `BuildProcessor.execute()`, the "Streaming" branch (used while a build is still running) computes the next fetch offset like this:
```
startPtr = result[0].output.length;
```
Long-running, verbose builds (z/OS, AIX, JCK) are the most likely to both exceed 12MB while streaming and later show up as "output size > 50MB" in the finished-build warning — consistent with what's in the logs.
Contributor guide
Research direction
Locate BuildProcessor.execute() and inspect the Streaming branch, starting with how result[0].output and startPtr are used across successive fetches. Trace the offset and output-size handling against the reported 12MB and 50MB limits, then verify that long-running verbose builds no longer cause repeated output growth or OOM crashes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100