CopyRequest async worker race — enqueue before transaction commit
Service
cupixworks-worker
Occurrences
5
Status
Reported
Confidence
80%
Actionability
28%
Cluster ID
4cd9d628-fad7-4527-a170-ea0d27485039
First Seen
2026-07-09 12:00 UTC
Last Seen
2026-07-09 12:00 UTC
Actions
CopyRequest async worker race — enqueue before transaction commit
What Happened#
2026-07-09 21:00 KST, cupixworks-worker Sidekiq queue data_changes 에서 BulkSavePartialJsonToFileWorker 가 방금 insert_all! 로 생성된 19 개의 Cluster 레코드(id 127698–127716)를 6 회 재시도(총 ~6.3 초) 동안 DB 에서 찾지 못하고 실패했다. 동일 시점에 12 개 이상의 다른 모델(Category, Review, Room, Bim, Pointcloud, AnnotationLayer, BimRevision 등)에서 같은 패턴이 관측되어 svc:cupixworks-worker::unknown 스코프의 서비스 저하 인시던트가 열렸다.
Quick Facts#
| Field | Value |
|---|---|
| exception.class | n/a (로직 실패, raise 없이 Cupix::Logger.error + return false) |
| exception.message | Cluster with ids [127698, ..., 127716] does not match after 6 retries |
| top_frame | app/workers/bulk_save_partial_json_to_file_worker.rb:66 |
| runtime | Ruby / Rails / Sidekiq (queue data_changes, retry: false) |
| env | production, eu-central-1 |
Affected Teams#
| Team / Domain | Error Count | Impact |
|---|---|---|
| cupixworks-worker (DataWareHouse partial-json forwarder) | 13 clusters in the same incident (this cluster: 2 events) | 신규 생성된 레코드의 partial-JSON 파일(데이터 웨어하우스 change forwarding) 이 생성/업데이트되지 않음. 사용자 요청은 성공했지만 downstream analytics/DW 상태가 최신이 아님. |
Timeline#
- 2026-07-09 21:00:37 KST —
BulkSavePartialJsonToFileWorker#perform시작, 첫 번째where(id: ids).count != ids.count관측 → Retry 1 (delay 0.1s) - 2026-07-09 21:00:37 KST — Retry 2 (0.2s), Retry 3 (0.4s), Retry 4 (0.8s) 연속 실패
- 2026-07-09 21:00:39 KST — Retry 5 (1.6s), Retry 6 (3.2s) 실패
- 2026-07-09 21:00:43 KST — 6 회 재시도 모두 실패,
error로그 기록 후return false(첫/마지막 발생, cluster first_seen/last_seen) - 2026-07-09 21:00:45 KST —
CopyRequest#bulk_index_document가 동일 id 범위(127698–127728) 를 index 처리 (class:CopyRequest,bulk_index_document of Cluster(127698-127728) 0 batches finished) — 이 시점에 부모 트랜잭션이 커밋됨을 시사
Scoring#
Confidence 80% · Actionability 28%
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 | 1/5 | critical |
| Affected files | 1/5 | 25 file(s) |
| Single repo | 1/3 | 2 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 |