fix(kordoc): 파일 크기 제한 삭제, Docker 메모리 상한 4GiB 적용
25MB 파일 크기 제한은 텍스트 PDF(18MB 성공)까지 차단하는 문제. 실제 원인은 이미지 스캔 PDF의 in-memory 파싱 시 메모리 폭발. - extract_worker: 25MB 파일 크기 제한 삭제 - docker-compose: kordoc-service mem_limit 4g + memswap_limit 4g - 텍스트 PDF → 크기 무관 정상 파싱 - 이미지 PDF → 4GiB 초과 시 Docker OOM-kill → 재시작 → 3회 실패 후 failed Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -55,17 +55,9 @@ async def process(document_id: int, session: AsyncSession) -> None:
|
||||
return
|
||||
|
||||
# kordoc 파싱 (HWP/HWPX/PDF)
|
||||
# OOM 방지는 docker-compose.yml의 kordoc-service mem_limit으로 통제.
|
||||
# 파일 크기 제한 없음 — 텍스트 PDF는 크기와 무관하게 파싱 가능.
|
||||
if fmt in KORDOC_FORMATS:
|
||||
# 25MB 초과 파일은 kordoc in-memory 파싱 시 OOM 크래시 위험 → 스킵
|
||||
KORDOC_SIZE_LIMIT = 25 * 1024 * 1024
|
||||
if (doc.file_size or 0) > KORDOC_SIZE_LIMIT:
|
||||
size_mb = (doc.file_size or 0) / (1024 * 1024)
|
||||
doc.extracted_text = ""
|
||||
doc.extracted_at = datetime.now(timezone.utc)
|
||||
doc.extractor_version = f"skip_oversize_{size_mb:.0f}mb"
|
||||
logger.warning(f"[kordoc] {doc.file_path} ({size_mb:.1f}MB) — 25MB 초과, kordoc OOM 방지로 스킵")
|
||||
return
|
||||
|
||||
# 컨테이너 내부 경로: /documents/{file_path}
|
||||
container_path = f"/documents/{doc.file_path}"
|
||||
# 대형 PDF 대응: 10MB당 60초, 최소 60초 최대 300초
|
||||
|
||||
Reference in New Issue
Block a user