ES /docs

VoxelWriter — async/sync stream lifecycle race condition

Service
cupixworks-any-voxel-agent
Occurrences
337
Status
Reported
Confidence
80%
Actionability
52%
Cluster ID
8e448fd2-16e4-4d37-b3ed-40482712e5d4
First Seen
2026-04-16 13:41 UTC
Last Seen
2026-06-24 03:55 UTC
Actions

VoxelWriter — async/sync stream lifecycle race condition

RCA Summary#

Capture 682011은 pano 수가 매우 적어 (reconstruction-validator가 "All cluster's pano count is under 20"으로 판정) voxel 계산 결과 voxelCount: 0을 반환했다. VoxelWriter.writeVoxelStream()은 zero-voxel 케이스를 처리하지 않아, mergeSortedFiles()에 빈 파일 배열이 전달되고 즉시 리턴된다. 이후 writeStream.end()writeStream.close()가 연속 호출되는데, stream의 비동기 open/flush가 완료되기 전에 fs.statSync(filePath).size (line 34)가 동기적으로 실행되어 ENOENT 에러가 발생한다. 정상적인 voxel 계산(voxelCount > 0)에서는 mergeSortedFiles의 I/O 처리 시간이 stream이 파일을 생성하고 flush할 충분한 시간을 제공하기 때문에 이 문제가 발생하지 않는다.

Scoring#

Confidence 80% · Actionability 52%

Confidence#

Dimension Score Detail
Evidence completeness 5/5 15 code refs, 4 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 3/3 success

Actionability#

Dimension Score Detail
Fix complexity 5/5 trivial
Affected files 1/5 9 file(s)
Single repo 1/3 3 service(s)
Immediate actions 0/3 absent
Testability 0/3 no test info
External dependency 3/3 no external deps
Data migration 3/3 no migration