@
PR #143(analyze-path KiwiAnalyzeOption ABI 수정) 후속으로 FFI 회귀 테스트(#144)를 추가하다 발견한 두 가지 잔여 문제를 트래킹합니다.
1. libkiwi >= 0.23 → Kiwi::new() init 에서 SEGFAULT
증상
정품 libkiwi 0.23.2 로 seCall 의 KiwiTokenizer::new() 호출 시 Kiwi::new()(kiwi builder/init 경로)에서 하드 크래시(STATUS_ACCESS_VIOLATION / SIGSEGV). analyze 가 아니라 init 단계.
근거
- 같은 lib+model 로 번들
kiwi-cli-0.23.2 는 정상 분석(아버지/NNG 가/JKS 방/NNG ...) → lib/model 무결, 바인딩 문제.
- probe(
eprintln before/after new())로 crash 지점을 init 으로 확정.
- 시그니처 대조상 seCall 이 쓰는 builder 경로(
kiwi_builder_init 4-arg, kiwi_builder_build 3-arg, kiwi_builder_add_word 4-arg)는 0.23.2 capi.h 와 일치. 그럼에도 크래시 → 모델 로딩/빌드옵션 레벨의 0.23 비호환 추정(상류 조사 필요).
- 참고: 포크의
kiwi_init 은 3-arg 로 선언되어 있으나 0.23.2 는 4-arg. seCall 은 이 경로 미사용이지만 별개 결함.
영향 / 현재 완화
다음
2. 포크 auto-download 버그 — find_asset_url
yeonsh/kiwi-rs @668a7c0 의 bootstrap.rs::find_asset_url 은 릴리스 JSON 에서 asset 이름 뒤 첫 } 까지를 asset 객체로 잘라 browser_download_url 을 찾는데, GitHub API 의 asset 객체는 name 과 browser_download_url 사이에 중첩된 "uploader": { ... } 를 포함 → 잘린 조각이 URL 을 안 가짐 → "release asset not found". 포크 유닛테스트는 uploader 없는 평탄한 mock 만 써서 못 잡음.
영향
libkiwi 미설치 상태의 모든 fresh 설치자에게 런타임 auto-download 실패(latest/명시 태그 무관). cargo install --git 사용자 포함.
완화
관련: #143, #144
@
@
PR #143(analyze-path
KiwiAnalyzeOptionABI 수정) 후속으로 FFI 회귀 테스트(#144)를 추가하다 발견한 두 가지 잔여 문제를 트래킹합니다.1. libkiwi >= 0.23 →
Kiwi::new()init 에서 SEGFAULT증상
정품 libkiwi 0.23.2 로 seCall 의
KiwiTokenizer::new()호출 시Kiwi::new()(kiwi builder/init 경로)에서 하드 크래시(STATUS_ACCESS_VIOLATION / SIGSEGV). analyze 가 아니라 init 단계.근거
kiwi-cli-0.23.2는 정상 분석(아버지/NNG 가/JKS 방/NNG ...) → lib/model 무결, 바인딩 문제.eprintlnbefore/afternew())로 crash 지점을 init 으로 확정.kiwi_builder_init4-arg,kiwi_builder_build3-arg,kiwi_builder_add_word4-arg)는 0.23.2capi.h와 일치. 그럼에도 크래시 → 모델 로딩/빌드옵션 레벨의 0.23 비호환 추정(상류 조사 필요).kiwi_init은 3-arg 로 선언되어 있으나 0.23.2 는 4-arg. seCall 은 이 경로 미사용이지만 별개 결함.영향 / 현재 완화
KIWI_LIBKIWI_TAG = v0.22.2로 핀(auto-download fallback 한정). 기존에 0.23.x 를 수동 설치한 사용자는 여전히 크래시 가능.다음
yeonsh/kiwi-rs)의 init/builder 경로 0.23 대응 (상류JAICHANGPARK/kiwi-rs).2. 포크 auto-download 버그 —
find_asset_urlyeonsh/kiwi-rs@668a7c0 의bootstrap.rs::find_asset_url은 릴리스 JSON 에서 asset 이름 뒤 첫}까지를 asset 객체로 잘라browser_download_url을 찾는데, GitHub API 의 asset 객체는name과browser_download_url사이에 중첩된"uploader": { ... }를 포함 → 잘린 조각이 URL 을 안 가짐 → "release asset not found". 포크 유닛테스트는uploader없는 평탄한 mock 만 써서 못 잡음.영향
libkiwi 미설치 상태의 모든 fresh 설치자에게 런타임 auto-download 실패(
latest/명시 태그 무관).cargo install --git사용자 포함.완화
gh release download+KIWI_LIBRARY_PATH/KIWI_MODEL_PATH로 직접 provision.관련: #143, #144
@