ES /docs

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#

  1. 2026-07-09 21:00:37 KSTBulkSavePartialJsonToFileWorker#perform 시작, 첫 번째 where(id: ids).count != ids.count 관측 → Retry 1 (delay 0.1s)
  2. 2026-07-09 21:00:37 KST — Retry 2 (0.2s), Retry 3 (0.4s), Retry 4 (0.8s) 연속 실패
  3. 2026-07-09 21:00:39 KST — Retry 5 (1.6s), Retry 6 (3.2s) 실패
  4. 2026-07-09 21:00:43 KST — 6 회 재시도 모두 실패, error 로그 기록 후 return false (첫/마지막 발생, cluster first_seen/last_seen)
  5. 2026-07-09 21:00:45 KSTCopyRequest#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