Posts

Go로 PostgreSQL 프록시 만들기 (23) - 커넥션 풀 오염과 Panic 격리

Go로 PostgreSQL 프록시 만들기 (23) - 커넥션 풀 오염과 Panic 격리

pgmux에서 발견된 두 가지 CRITICAL 버그 — 에러 시 오염된 커넥션이 풀에 반납되는 Protocol Desync와, 단일 panic이 전체 서버를 크래시시키는 Global Panic Vulnerability — 를 분석하고 수정한다.

Go로 PostgreSQL 프록시 만들기 (24) - 좀비 고루틴과 Dangling Pointer

Go로 PostgreSQL 프록시 만들기 (24) - 좀비 고루틴과 Dangling Pointer

pgmux에서 발견된 두 가지 CRITICAL 버그 — HTTP 클라이언트 끊김을 무시해 고루틴과 DB 커넥션이 영원히 블로킹되는 좀비 누수와, 핫-리로드 후 Admin/Data API가 닫힌 풀을 바라보는 Dangling Pointer — 를 분석하고 수정한다.

Go로 PostgreSQL 프록시 만들기 (27) - QA 라운드 2: 핫 리로드의 5가지 함정

Go로 PostgreSQL 프록시 만들기 (27) - QA 라운드 2: 핫 리로드의 5가지 함정

QA에서 발견된 5가지 버그 — Data API 인증 stale, 캐시 전파 누락, ConfigMap symlink 미감지, Reload 주석 불일치, 테스트 race — 의 원인 분석과 수정 과정을 정리한다.

Go로 PostgreSQL 프록시 만들기 (29) - WriteHeader 이후 헤더 동결과 테스트가 못 잡는 버그

Go로 PostgreSQL 프록시 만들기 (29) - WriteHeader 이후 헤더 동결과 테스트가 못 잡는 버그

WriteHeader 호출 이후 Content-Type이 사라지는 버그, SetReloadFunc data race, httptest.ResponseRecorder가 감지하지 못하는 회귀의 원인과 수정 과정을 정리한다.

Go로 PostgreSQL 프록시 만들기 (30) - AST 라우팅 사각지대와 캐시 무효화 실종

Go로 PostgreSQL 프록시 만들기 (30) - AST 라우팅 사각지대와 캐시 무효화 실종

QA 3차 리포트 5건 — AST 분류가 라우팅에 미반영, 캐시 테이블 무효화 no-op, 중복 파싱 5회/요청, 헬스체크 순차 지연, splitStatements 달러쿼팅 미처리 — 의 원인과 수정 과정을 정리한다.

Go로 PostgreSQL 프록시 만들기 (31) - 캐시 포맷 충돌과 HTTP 서버 수명주기

Go로 PostgreSQL 프록시 만들기 (31) - 캐시 포맷 충돌과 HTTP 서버 수명주기

QA 4차 리포트 5건 — 캐시 키 네임스페이스 부재로 JSON/wire 응답 충돌, 읽기 캐시 무효화 실종, balancer 상태 초기화, HTTP 서버 lifecycle 미관리, AST 재파싱 — 의 원인과 수정 과정을 정리한다.