내부 오류
내부 오류 (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 이슈 트래커에 이슈를 등록해 주세요.