Skip to content

Commit 39f8ecd

Browse files
DanMeonclaude
andcommitted
ci: mitigation 검증 — chain 전체 한글 폰트 설치
3차 진단에서 PID 8552 (Python) call graph 가 CoreText TDownloadableFontManager::Download → libFontRegistryUI → CFMessagePortSendRequest → mach_msg2_trap 으로 IPC 무한 대기 임을 확인. 원인은 macOS CoreText 의 downloadable-font auto-activation: 시스템에 없는 폰트가 요청되면 FontRegistryUI daemon 에 IPC 로 다운로드 가능성을 물어보고 응답 대기 — Actions runner 환경에서 daemon 이 응답 못 함. NanumGothic 만으로 효과 없었던 이유는 상류 fallback chain 의 앞쪽 폰트 (Noto Sans KR 등) 가 없어서 거기서부터 다운로드 lookup 발동. chain 전체 (Noto Sans KR / Noto Serif KR / Noto CJK / Nanum Gothic) 를 설치해 첫 매치에서 lookup 이 끝나도록 함. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ee172c4 commit 39f8ecd

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,18 @@ jobs:
171171
python-version: "3.12"
172172
- run: uv sync --no-install-project --group all
173173
- run: uv run maturin develop --release
174-
# * macOS PNG 렌더 hang 진단 — 첫 round 결과로 폰트 부재 가설 기각 후, native stack sampling 으로 hang 위치 식별
175-
- name: Korean font inventory (macOS diag)
174+
# * macOS PNG 렌더 hang — 3차 진단으로 CoreText downloadable-font IPC hang 확인 (TDownloadableFontManager::Download → FontRegistryUI). chain 첫 폰트 부재 시 macOS 가 다운로드 시도 → daemon 응답 없음 → 무한 IPC wait.
175+
# mitigation: 상류 fallback chain 의 모든 한글 폰트 사전 설치로 다운로드 lookup 자체를 막음.
176+
- name: Install Korean font chain (macOS mitigation)
176177
if: runner.os == 'macOS'
177178
run: |
178-
brew install --cask font-nanum-gothic
179+
brew install --cask \
180+
font-noto-sans-kr \
181+
font-noto-serif-kr \
182+
font-noto-sans-cjk \
183+
font-nanum-gothic
179184
echo "=== fc-list 한글 폰트 ==="
180-
(fc-list :lang=ko 2>&1 | head -10) || echo "(fc-list 미설치 또는 미인식)"
181-
echo "=== system_profiler 나눔 ==="
182-
system_profiler SPFontsDataType 2>&1 | grep -iE "nanum|gothic" | head -10 || echo "(미인식)"
185+
fc-list :lang=ko 2>&1 | head -20 || echo "(fc-list 미인식)"
183186
- name: Run pytest (non-macOS)
184187
if: runner.os != 'macOS'
185188
run: uv run pytest tests/ -m "not slow" -v

0 commit comments

Comments
 (0)