현상
UDF(User Defined Function) 수행 중, 간헐적으로 DB 인스턴스가 강제 종료되는 현상이 발생합니다.
DB 인스턴스 비정상 종료 시 출력된 관련 로그 예시
[02-05T13:10:43.676767] [FRM-144] [I] Signal 'SIGSEGV'(11) caught (TID = 144, OS_THR_ID = 7696, PID = 7554): si_addr = 0000000000000018 : the cause of the signal can be found in a process callstack file.
[02-05T13:10:47.711271] [FRM-144] [I] THROW. ec=ERROR_SESS_KILLED(-12001) [ Session has been closed. ] (csr_id:3105) [tbsvr_signal.c:1610:sync_sig_handler]
[02-05T13:33:57.330821] [COM-144] [I] Internal Error with condition '!"Signal caught in a critical section: DB instance must be shut down. " "The cause which generated the signal can be found " "in a process callstack file."' (2 args) (tbsvr_signal.c:1474:sync_sig_handler) (pid=7554, sessid=144, tid=144)
SQL
복사
원인
함수(PSM)에서 Result Cache 기능을 사용할 경우 메모리 누수가 발생하는 현상이며, 이는 DETERMINISTIC 구문을 사용하는 경우에만 나타납니다.
PSM 실행 중 결과 블록에 대해 할당된 메모리를 정상적으로 해제하지 않아, 메모리 누수(memory leak)가 발생하게 됩니다.
해결
1.
FS07_CS_227927b 패치를 적용합니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
2.
PSM_SQL_RESULT_CACHE=N 설정을 통해 Result Cache 기능을 비활성화합니다. (동적 적용 가능)
참고
PSM 내 DETERMINISTIC 구문 제거 후 사용하여 우회가 가능합니다.