ChildProcessManager fork — child process heap exhaustion during BIM comparison
Service
cupixworks-any-room-agent
Occurrences
10
Status
Reported
Confidence
65%
Actionability
28%
Cluster ID
27c6b85b-3e67-4e82-b67d-29614ef72f1c
First Seen
2026-04-07 10:53 UTC
Last Seen
2026-07-23 11:08 UTC
Actions
ChildProcessManager fork — child process heap exhaustion during BIM comparison
RCA Summary#
cupixworks-any-room-agent의 child process가 BIM 모델(ID 17926, 17928)에서 room을 추출하는 도중 SIGKILL 신호로 종료되었습니다. 이 서비스는 ECS Fargate에서 12 GB 메모리 제한으로 실행되며, 메인 프로세스에 --max-old-space-size=8192 (8 GB)가 설정되어 있습니다. 그러나 ChildProcessManager가 fork()로 생성하는 room extraction child process에는 별도의 V8 heap 제한이 설정되지 않아 기본값(약 4 GB)까지 메모리를 사용할 수 있습니다. 대형 BIM 모델을 처리할 때 메인 프로세스(8 GB) + child process + filebeat + OS 오버헤드의 합계가 Fargate의 12 GB hard limit을 초과하면, 컨테이너 레벨의 OOM killer가 SIGKILL을 보내 child process를 강제 종료합니다. 성공한 작업들은 210분 내 완료되었으나, SIGKILL이 발생한 작업들은 710분간 실행된 후 종료되었으며 이는 메모리가 점진적으로 증가하다 한계에 도달했음을 시사합니다.
Scoring#
Confidence 65% · Actionability 28%
Confidence#
| Dimension | Score | Detail |
|---|---|---|
| Evidence completeness | 5/5 | 15 code refs, 5 log queries |
| Code path explicitness | 3/3 | 15 file:line refs |
| Log evidence | 2/3 | section, query |
| RCA structure | 3/3 | 3/3 sections |
| Revision history | 0/3 | 0 revision(s) |
| Agent execution | 0/3 | no data |
Actionability#
| Dimension | Score | Detail |
|---|---|---|
| Fix complexity | 1/5 | critical |
| Affected files | 1/5 | 21 file(s) |
| Single repo | 1/3 | 3 service(s) |
| Immediate actions | 0/3 | absent |
| Testability | 0/3 | no test info |
| External dependency | 1/3 | external deps found |
| Data migration | 3/3 | no migration |