diff --git a/docs/tracking/findings.md b/docs/tracking/findings.md index 171151d..a8864bf 100644 --- a/docs/tracking/findings.md +++ b/docs/tracking/findings.md @@ -211,3 +211,20 @@ - 현재 해결하지 않는 이유: 제품 배포 범위와 권리 검토는 아직 요청되지 않았으며 코드만으로 사용자의 배포 방식을 정할 수 없다. - 후속 방향: 배포를 실제 추진할 때 형식·대상·설치·검증·데이터 취급 조건을 구체화한다. + +## 기존 one-equation PARDISO 반복 호출의 간헐적 heap 실패 + +- 조건·현상(2026-10-14): 성능 작업에서 기존 static partial shell fixture의 free + 1×1 SPD 해법을 반복 호출할 때 native `0xc0000374`를 관찰했다. SpMV 없이 + PARDISO factor/solve/release만 호출한 진단에서도 재현했다. 같은 입력·진단 소스를 + 개선 전 Release library에 연결한 기본 8-thread 실행은 62번째 호출에서 종료했다. + [입력·runtime·실행 근거](../calculation-performance/mkl-coverage.md#baseline-pardiso-heap-failure와-제한)를 보존한다. +- 영향: 새 MKL SpMV 회귀와 분리된 기존 backend 노출이지만 vendor 내부 원인은 + 미확정이다. 반복 검사나 실제 실행의 crash를 정상 종료 또는 검사 통과로 표시하지 않는다. +- 현재 처리와 한계: 기본 정책의 1×1 PARDISO 호출에 한해 local 1-thread를 적용하고 + 호출 뒤 TLS를 복원했다. 독립 검토와 관련 lifecycle·동시성·크기 전환 검사는 통과했다. + 보조 반복 100회 통과가 라이브러리 전체 문제 해결을 보장하지 않으며, 호출자의 + 비영 TLS override와 더 큰 시스템에는 기존 정책을 유지한다. +- 후속 방향: 최종 전체 Debug 검사와 원본 결과에서 새 실패를 별도로 확인한다. + 재발 시 실제 입력·phase·thread·DLL hash와 native crash 자료를 유지하여 backend를 + 조사한다. 원인 근거 없이 dispatch·pivot·수치 기준이나 설치 환경을 바꾸지 않는다.