문서유형ㅣ장애해결
분야ㅣ관리/환경설정
적용제품버전ㅣ5SP1 FS02
문서번호ㅣTADTS081
현상
tracelog에 Internal error 'false' 에러가 발생하였습니다.
원인
tracelog 및 callstack 확인 결과, PSM에서 사용한 값의 메모리를 해제하는 과정에서 잘못된 참조가 발생하여 에러가 발생되었습니다.
tracelog
11/28 14:04:23.194920 [COM][0] 6780 tbsvr_tr:218 Internal Error with condition '!"false"' (alloc_dbginfo.h:390) (pid=11974, tid=6780) 11/28 14:09:23.601004 [COM][0] 5174 tbsvr_tr:218 Internal Error with condition '!"false"' (alloc_dbginfo.h:390) (pid=11813, tid=5174)
callstack
ffffffff7b6dbe9c nanosleep (ffffffff78a050f0, ffffffff78a050e0) 0000000104d3bda0 callstack_dump_ex (11e10eda0, 40, 0, 2e25, 0, 3c) + 4c8 0000000104d2b0d4 tb_tracedump (11e000, ffffffff7ac19478, 0, 123400, 11fdae, 11de4aac0) + 7c 0000000104d2b880 tb_assert_msg (1179abf2270, 118864000, 1004bd47688, 6952, 118800, ffffffff7bd03250) + 4d0 0000000100fb0fc4 region_realloc (1241d6fc0, ffffffff77846de0, 2100, ffffffff7784aee0, 129, 11a425f00) + 48c 00000001091ea7cc psm_vm_mm_pool_compaction (ffffffff79caa138, 420, 1ff8, 400, 0, 1241d6fc0) + 684 000000010977dd4c psm_subprog (11ff43, 0, ffffffff79c7c088, ffffffffffffffe0, 0, 1004bd47688) + 204 000000010cf5a6f4 expc_eval_udf (ffffffff78a06330, ffffffff79db1578, ffffffff79db3c50, ffffffff79db4248, ffffffff79db26e8, 3) + 79c 000000010cf58460 expc_eval_internal (ffffffff78a06330, ffffffff79db1578, 1, 1fe, ffffffff79db4248, 11c1c5248) + 1420 00000001120d853c xi_serialize_expcs_to_tmp_chunk (ffffffff78a06330, ffffffff79db1578, 6, ffffffff79c95538, 31, 1) + 13c 000000010ed73004 op_join_nested_loop (ffffffff78a06330, ffffffff79c954e8, ffffffff79c955e8, ffffffff79c955f8, 47c, 1179abfa178) + fc4 000000010ecceb68 op_join_stage_idx_join (ffffffff78a06330, ffffffff79c954e8, ffffffff79c955b8, ffffffff79c955f8, 232b30, 11c847f20) + c8 000000010eccf11c op_join_idx (ffffffff79c954e8, 0, f17ba58, ffffffffffffffd8, 11de4aac0, ffffffff79c955b8) + bc 000000010bc6d334 ex_run_internal (ffffffff79c3ea38, 1, 1179abfa178, 602c, 100259b6250, 10eccf060) + bc4 000000010c471310 csr_fetch (1168897f100, 11bf59800, 100259bddb8, 0, ffffffff79c3ea38, 1) + 7c0 0000000101251dd0 tbsvr_sql_process (101000, 0, 1004bd47688, 100259b6250, 1d000, ffffffff78a06dd0) + 3ac0 00000001011b7fb0 tbsvr_msg_sql_common (ffffffffffffffe0, 0, 51a7, ffffffffffffffe0, 1004bd47688, 6) + 1190 00000001010f69e8 tbsvr_handle_msg_internal (1d1d0, 0, ffffffff7ac25ed8, ffffffffffffffe0, 100259b6250, ffffffffffffffe0) + bc0 00000001010f8a58 tbsvr_wthr_request_from_cl_conn (1005512a2f0, 4784f, ffffffffffffffe0, 1d1c8, ffffffffffffffd8, 1004bd47688) + 11b0 00000001010f3e84 tbsvr_body (ffffffff7bd03250, 6800, 101000, 11de4aac0, 697a, ffffffffffffffd0) + 121c 00000001010e6cc8 thread_main_chk_bitmask (115f17000, 800000000000, 123710000, 51bd, 0, 1) + 350 00000001010f22c0 svr_wthr_main_internal (80000000000000, 100259b6250, 800000000000, 1d000, ffffffffffffffd8, 51c8) + d38 0000000104e0e11c svr_wthr_init (1436, 10055133e70, 123710000, 11de4aac0, 10000, 123731000) + 15c
해결
psm 에서 사용한 값의 메모리를 해제하다가 잘못 참조하면서 에러가 발생하였습니다. 이를 해결하기 위해서는 파라미터 _PSM_NO_VM_MM_COMPACTION=Y로 변경을 권고드립니다.
파라미터 설명
PSM 동작 완료 시 수행되는 메모리 관리(재배치 및 해제) 작업의 동작 방식을 제어합니다.
설정 방법
온라인 중에 노드별로 설정이 가능합니다. (서비스 중지 불필요)
tbsql 접속 후 온라인 적용 (즉시 반영)
$ tbsql sys/tibero
SQL> ALTER SYSTEM SET _PSM_NO_VM_MM_COMPACTION = Y;$TB_SID.tip 파일 수정 (재시작 시 유지 목적)
$ vi $TB_HOME/config/$TB_SID.tip _PSM_NO_VM_MM_COMPACTION = Y