ExportWorker N+1 query in pointcloud — timeout on shutdown
Service
cupixworks-api
Occurrences
438
Status
Reported
Confidence
80%
Actionability
24%
Cluster ID
0d168761-ccba-4652-b1c9-4b2100d8c555
First Seen
2026-04-08 05:15 UTC
Last Seen
2026-05-12 03:55 UTC
Actions
ExportWorker N+1 query in pointcloud — timeout on shutdown
What Happened#
2026-04-23 07:20~08:15 UTC 사이, cupixworks-api 서비스의 ExportWorker가 migration id(1252)의 데이터베이스 export 작업 중 반복적으로 Sidekiq::Shutdown 예외를 수신했다. 약 5분 간격으로 Sidekiq 프로세스가 종료되면서 read_capture 단계에서 실행 중이던 MySQL 쿼리가 중단되었고, 12회 연속 실패 후 대량의 retry job이 동시에 쌓여 concurrency 충돌이 발생했다.
Quick Facts#
| Field | Value |
|---|---|
| exception.class | Sidekiq::Shutdown |
| exception.message | Sidekiq::Shutdown |
| top_frame | mysql2/client.rb:148:in '_query' |
| runtime | Ruby 3.3.0, Rails 7.2.2, Sidekiq 7.3.9 |
| env | production, us-west-2 |
Timeline#
- 07:18:43Z — ExportWorker 최초 실행 시작 (migration id 1252, facility 9168)
- 07:20:31Z — 첫 번째
Sidekiq::Shutdown발생 (read_capture단계, ~2분 실행 후) - 07:25:27Z ~ 08:15:31Z — 약 5분 간격으로 11회 추가
Sidekiq::Shutdown반복 (모두read_capture단계) - 08:22:19Z — 누적된 retry job들이 동시 실행되어 "sidekiq is already running" 경고 대량 발생
- 08:22:19Z —
retries exhausted로그 없음 — job이 최종 실패 없이 retry 큐에 남아있는 상태
Scoring#
Confidence 80% · Actionability 24%
Confidence#
| Dimension | Score | Detail |
|---|---|---|
| Evidence completeness | 5/5 | 21 code refs, 5 log queries |
| Code path explicitness | 3/3 | 21 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 | 1/5 | critical |
| Affected files | 1/5 | 29 file(s) |
| Single repo | 1/3 | 2 service(s) |
| Immediate actions | 0/3 | absent |
| Testability | 0/3 | no test info |
| External dependency | 3/3 | no external deps |
| Data migration | 0/3 | migration needed |