Skip to content

완료 세션 수정 영구 실패 수리 — 근거 세트 삭제 시 롤업 관측 묶음 정리 (2026-09-01)

  • 기간: 2026-09-01 (1세션, 오너: "1034도 이어서 해줄래?" — #1017 랜딩 중 발견한 잠복 버그의 연속 수리)
  • 랜딩: PR #1038(9964a13a) — 마이그레이션 20260901810000, Production db push 적용 완료(§15 직렬화)
  • 설계서: 없음(수리 건 — 분석·계획은 이슈 #1034 본문·스레드)
  • 정본: bug-report/bug-053-20260901.md — 증상·원인·조치·재발 방지 전체
  • 도구: 로컬 DB 프로브(저장→통계 작업 처리→수정 순서로 잠복 조건 격리) + 샌드박스 스택 pgTAP 실검증
  • 게이트: pgTAP rollup_max_rep_source_set_clear.test.sql(재현 순서 상주 감시) + 마이그레이션 postcheck(트리거·인덱스·11열 정리 단언)
  • 버그리포트: bug-report/bug-053-20260901.md
  • 계약: 신규 규칙 — "SET NULL FK × 동반 NOT NULL CHECK 금지, 필요하면 삭제 트리거로 묶음 정리"(리포트 §5)

한 줄 요약 — 반복수 기록 종목이 든 완료 세션은 통계가 관측(근거 세트 연결)을 채운 뒤 근거 세트를 지우거나 교체하는 수정이 FK(ON DELETE SET NULL)×CHECK 모순으로 영구 거부(23514)되던 잠복 버그를, 세트 삭제 직전 관측 묶음 11열을 비우는 BEFORE DELETE 트리거 + 근거 세트 부분 인덱스(기존 풀스캔 해소)로 수리. 함수 재발행 0(되덮기 위험 없음), 동종 결합 전수 확인 결과 이 결합 하나뿐. pgTAP 81파일 1,233 PASS·CI 초록·Production postcheck 통과.

남은 것

  • 없음 — 이 수리로 #1017 완료 화면의 변경분 반영 저장(메모·시간 수정)도 서버에서 정상 통과한다.