Editing split failed: Mysql2::Error::TimeoutError: Lock wait timeout exceeded; try restarting transa
Service
cupixworks-worker
Occurrences
2
Status
Reported
Confidence
80%
Actionability
28%
Cluster ID
33f5e4cd-a169-44e3-9652-7294f1894b53
First Seen
2026-07-18 12:33 UTC
Last Seen
2026-07-30 16:28 UTC
Actions
Editing split failed: Mysql2::Error::TimeoutError: Lock wait timeout exceeded; try restarting transa
What Happened#
2026-07-18 21:33 KST에 cupixworks-worker의 EditingSplitWorker#perform이 Cupix::EditingSplitService#do_split! 마지막 단계에서 Mysql2::Error::TimeoutError: Lock wait timeout exceeded; try restarting transaction으로 실패했다. 서비스 로그를 보면 두 개의 split 그룹 재할당(reassign)이 정상적으로 끝났고, 원본 editing 의 통계를 갱신하는 세 번째 트랜잭션(update_editing_stats)이 시작된 뒤 약 52초간 진행되지 못하다가 InnoDB row-lock 대기 한도(기본 50초)에 걸렸다. 1건만 관측되었지만 Sidekiq retry: 2 정책에 의해 재시도되므로 사용자 영향은 제한적이다.
Quick Facts#
| Field | Value |
|---|---|
| exception.class | Mysql2::Error::TimeoutError |
| exception.message | Lock wait timeout exceeded; try restarting transaction |
| top_frame | app/services/cupix/editing_split_service.rb:206-212 (update_editing_stats transaction) |
| worker | EditingSplitWorker#perform (retry: 2, queue: :default) |
| env | production, region us-west-2 |
Affected Teams#
| Team / Domain | Error Count | Impact |
|---|---|---|
SiteInsights / SQA (editing_type: siteinsights) |
1 | 단일 editing 의 split 배치 중단. Sidekiq retry 로 자동 복구 여지 있음. |
Timeline#
- 2026-07-18 21:30:53 KST —
Cupix::EditingSplitService#compute_split_groups완료 (task grouping, geo clustering). - 2026-07-18 21:31:15 KST — 첫 번째 split 그룹:
create_split_editing+reassign_editing_entities시작. - 2026-07-18 21:31:49 KST — 첫 번째 그룹
Editing entities reassigned (task-level) result. - 2026-07-18 21:31:55 KST — 첫 번째 그룹
Split group processed. - 2026-07-18 21:32:09 KST — 두 번째 split 그룹:
create_split_editing+reassign_editing_entities시작. - 2026-07-18 21:32:21 KST — 두 번째 그룹
Editing entities reassigned (task-level) result. - 2026-07-18 21:32:29 KST — 두 번째 그룹
Split group processed, 이어서Updating original editing stats for first group. - 2026-07-18 21:32:33 KST —
Updating editing stats (task-based)로그 (원본 editing 의 마지막 트랜잭션 진입). - 2026-07-18 21:33:25 KST —
Split lock release attempt및Editing split failed: Mysql2::Error::TimeoutError: Lock wait timeout exceeded. (21:32:33 이후 약 52초 → InnoDBinnodb_lock_wait_timeout기본 50초와 일치) - 2026-07-18 21:33:57 KST — 후속
Split entry/Split skipped (not splittable)로그. Sidekiq retry 로 재실행되었으나 이미 split 완료 상태로 인식되어 no-op.
Scoring#
Confidence 80% · Actionability 28%
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 | 11 file(s) |
| Single repo | 1/3 | 4 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 |