adoptium / adoptium/aqa-test-tools

TRSSBackend repeated OOM crash-loop — streaming build log offset drift causes unbounded memory growth

Open
#1,280 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.