현상
블록에 비정상적인 ITL(Interested Transaction List) 값이 기록된 경우, Internal Error with condition '!"invalid itl flag"' 에러가 발생할 수 있습니다.
sys.log 내 오류 메시지
[2023-10-16T21:08:39.403152] [COM-669] [I] Internal Error with condition '!"invalid itl flag"' (tx_cr.c:770) (pid=266737, sessid=669, tid=669, os_thr_id=267265)
[2023-10-16T21:08:53.207415] [COM-143] [I] Internal Error with condition '!"Background thread exited abnormally!"' (tbsvr_cthr.c:3082) (pid=266737, sessid=143, tid=143, os_thr_id=266737)
SQL
복사
tbsvr.out 파일 내 오류 메시지
[669] 2023/10/16 21:08:39.403 Internal Error with condition '!"invalid itl flag"' (tx_cr.c:770) (pid=266737, sessid=669, tid=669, os_thr_id=267265)
[669] client : ip [] process [] logon time : []
[669] prev sql : "NULL"
[669] current sql : "NULL"
[669] *** 2023/10/16 21:08:39.403 ***
[669] callstack dump from tbsvr_ACSD for [CMPT508, 669, 267265/266737]
[669] SEE DUMP tbsvr.callstack.266737 (lwpid 267265) BY PSTACK
================================
Thread #669 (Session #669): tb_thread_exit: (signo:0, sigtype:15)
Tibero: wthr killed. (pid=266737, tid=669 spinlock cnt=1)
[143] 2023/10/16 21:08:53.207 Internal Error with condition '!"Background thread exited abnormally!"' (tbsvr_cthr.c:3082) (pid=266737, sessid=143, tid=143, os_thr_id=266737)
[143] client : ip [] process [] logon time : []
[143] prev sql : "NULL"
[143] current sql : "NULL"
[143] *** 2023/10/16 21:08:53.207 ***
[143] callstack dump from tbsvr_ACSD for [ACSD, 143, 266737/266737]
[143] SEE DUMP tbsvr.callstack.266737 (lwpid 266737) BY PSTACK
SQL
복사
원인
Consistent read 요청 처리 중 cleanout이 필요한 블록을 탐색하던 과정에서, 해당 블록 ITL의 flag 값이 0~4 사이의 값이 아니기 때문에 thread assert가 발생했습니다.
블록 ITL의 flag 값은 반드시 0~4 사이 값이어야 합니다.
해결
정확한 원인 분석을 위해서는 문제가 발생한 블록의 dump 정보가 필요하며, 이를 위해서는 FS06_328015a 패치 적용이 필요합니다.
해당 패치는 dstream의 fd(file descriptor)를 확인하여 값이 -1인 경우 debug stream을 사용하도록 수정하는 기능을 포함합니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.