- analysis/·source-index·state.json 을 final/document.md 제2부·제3부로 접었다. SSOT 는 하나다 - 파일럿 — commit-ambiguity-as-a-result 를 새 기준으로 재선별. 후보 14 → 글감 5 (PROMOTE 5 · MERGE_INTO 3 · KEEP_IN_SSOT 4 · 보류 2). 기록 5건을 다시 썼고 그림 1개를 techviz 로 만들었다 - 재선별이 잡은 것: 제1부 §6.2·§11.1 이 자기 §13.2 와 어긋나 있었다(레인을 안 돌렸다 vs 돌렸다) — 정정. 이미 답이 나와 있던 Question 을 HEAD 재실행 질문으로 다시 세웠다. Concept 이 인용한 코드가 SSOT 에 없어 뺐다 - candidateScope·sourceRepository 기록. 나머지 43개 주제는 재선별 대기(PENDING 905) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
75 lines
3.3 KiB
Markdown
75 lines
3.3 KiB
Markdown
---
|
|
id:
|
|
kind: QUESTION
|
|
slug: commit-ambiguity-lane-not-rerun-at-head
|
|
title: 커밋 모호성 레인이 HEAD 에서도 통과하는지는 실행이 아니라 드리프트 0 으로 답했다
|
|
topic: commit-ambiguity-as-a-result
|
|
topicName: 커밋 모호성 — 「모른다」를 결과로 유지하기
|
|
project: clean-architecture-backend-template
|
|
status: 게시 전
|
|
studio: ""
|
|
questionStatus: OPEN
|
|
source:
|
|
- final/document.md#6-2
|
|
- final/document.md#11
|
|
- final/document.md#13
|
|
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
|
|
evidence:
|
|
- ../../../final/evidence/raw/115-integration-lane-original-verification.txt
|
|
---
|
|
|
|
# 커밋 모호성 레인이 HEAD 에서도 통과하는지는 실행이 아니라 드리프트 0 으로 답했다
|
|
|
|
레인은 실제로 돌았다. 다만 돌린 리비전이 a24ece9c 이고 이 분석이 정본으로 삼은 HEAD 가 아니다. 그 사이를 메우는 것은 재실행이 아니라 변경 파일 수 측정이다.
|
|
|
|
## 관계
|
|
|
|
- **pg_terminate_backend 가 57P01 로 도착하고 커밋 레코드는 이미 WAL 에 있었다**
|
|
이 레인이 고정하는 규칙을 만든 사례다.
|
|
|
|
## 사실
|
|
|
|
다섯 태그 레인을 --rerun-tasks 로 실행해 51 클래스 244 tests 가 0 skipped · 0 failures 로 끝났다. BUILD SUCCESSFUL in 3m 10s 였고 실행 전후의 git status 가 모두 clean 이었다.
|
|
|
|
그중 jpaPlatformFailureTest 는 2 클래스 6 tests 다. CommitAmbiguityContractTest 가 그 레인에 속한다.
|
|
|
|
실행 리비전은 a24ece9cf797f7ea647e33bf846b115208ed1ba5 이고 실행 시각은 2026-08-29T14:46:23+00:00 이다.
|
|
|
|
a24ece9c 와 HEAD 21234e38 사이는 커밋 하나인데, 그 커밋이 건드린 것은 grpc 블록과 공통 파일 둘이다. persistence-jpa 를 포함한 18 개 리프 경로의 변경 파일 수는 0 이다.
|
|
|
|
## 가정
|
|
|
|
변경 파일 수가 0 이면 레인 결과도 같으리라고 전제하고 있다. 이 전제는 빌드 설정과 의존성 해석이 두 리비전에서 같다는 것까지 포함한다.
|
|
|
|
57P01 관측이 PostgreSQL 의 여러 major 버전에서 같게 재현되리라고도 전제하고 있다.
|
|
|
|
## 미지수
|
|
|
|
HEAD 에서 jpaPlatformFailureTest 를 돌리면 무엇이 나오는가.
|
|
|
|
57P01 이 PostgreSQL 16 과 17 과 18 전부에서 같은 SQLSTATE 로 도착하는가.
|
|
|
|
## 제약
|
|
|
|
매트릭스는 실행 한 번에 major 하나만 고른다. 다중 선택은 start 단계에서 거부된다.
|
|
|
|
이 분석은 애플리케이션 소스를 수정하지 않는다.
|
|
|
|
## 선택지
|
|
|
|
### 1. HEAD 에서 한 major 로 한 번 돌린다
|
|
|
|
가장 싸다. 드리프트 0 이라는 간접 근거가 실행 결과로 바뀌는데 버전 간 차이는 여전히 모른다.
|
|
|
|
### 2. HEAD 에서 major 세 번 돌린다
|
|
|
|
버전 간 차이까지 확인하는데 비용은 컨테이너 기동 세 번이다.
|
|
|
|
## 다음 검증
|
|
|
|
1. HEAD 를 체크아웃하고 Docker 가 있는 환경에서 다음을 돌린다.
|
|
./gradlew :adapter:outbound:persistence-jpa:jpaPlatformFailureTest --rerun-tasks --console=plain
|
|
2. major 를 바꿔 반복하려면 -Pjpa.matrix.versions 로 하나씩 지정한다.
|
|
|
|
닫는 조건 : 0 failures 가 나오면 이 질문을 닫고 관련 Case 의 확인하지 못한 것에서 재실행 항목을 지운다. 실패가 나오면 드리프트 0 을 근거로 삼은 §6.2 정정을 철회하고 그 실패를 새 Case 로 연다.
|