내부 오류

내부 오류 (Internal Errors)

내부 오류(Internal error)는 DuckDB 내부에서 assertion(불변식 검사)이 실패했음을 알리는 오류예요. 보통 예상하지 못한 조건이나 프로그램 로직의 버그 때문에 발생한답니다.

출처: 문서

본문

예를 들어 issue 17002를 DuckDB v1.2.1에서 실행하면 다음과 같은 내부 오류가 발생해요.

INTERNAL Error:
Attempted to access index 3 within vector of size 3

이 문제는 DuckDB v1.2.2 이상 버전에서 수정되었어요.

내부 오류를 만난 후 DuckDB는 "제한 모드(restricted mode)"에 들어가는데, 이후의 어떤 연산도 다음 오류 메시지를 반환하게 돼요.

FATAL Error:
Failed: database has been invalidated because of a previous fatal error.
The database must be restarted prior to being used again.

같은 데이터베이스로 계속 작업하려면 해당 데이터베이스로 새 DuckDB 세션을 시작해야 해요.

DuckDB가 "제한 모드"에 들어가는 이유는 데이터베이스가 정의되지 않은 상태가 되기 때문이에요. 내부 오류는 정의상 절대 발생해선 안 되는 버그이므로, 해당 코드 경로는 테스트된 적이 없어요.

내부 오류를 만났다면 최소한의 재현 가능한 예제를 만들어 DuckDB 이슈 트래커에 이슈를 등록해 주세요.

더 알아보기 (Learn more)