기술 정보
home
채널 소개
home

REDZONE CHECK ERROR 발생

문서 유형
장애 해결
분야
관리/환경설정
키워드
REDZONE CHECK ERROR
savepoint
적용 제품 버전
6FS06
6FS07
오류코드
2131
23007

현상

savepoint 등록 시 할당받은 메모리에 대해서 redzone 에러가 발생했습니다.
-- sys.log [2025-04-08T15:25:04.096365] [COM-298] [I] Internal Error with condition '!"false"' (alloc_dbginfo.h:388) (pid=21662, sessid=298, tid=298, os_thr_id=22068) [2025-04-08T15:25:04.130276] [COM-00] [I] Internal Error with condition '!"Reaping a dead working thread " "in a critical section"' (1 args) (tbsvr_mthr.c:1001:mthr_reap_thr) (pid=21397, sessid=0, tid=0) [2025-04-08T15:27:52.622992] [FRM-00] [I] show OS info -- tbsvr.out REDZONE CHECK ERROR. (malloc from:filename=/home/autodist/build_20200327_141138/tibero6/src/tbsvr/tx/tx.c, line=2805, size=184 FRONT REDZONE: 0000: A7 A7 A7 A7 A7 A7 A7 A7 ........ REAR REDZONE: 0000: 4F 52 47 5F 4E 4D 3D EC ORG_NM=. [298] 2025/04/08 15:25:04.096 Internal Error with condition '!"false"' (alloc_dbginfo.h:388) (pid=21662, sessid=298, tid=298, os_thr_id=22068) [298] client : ip [10.10.161.146] process [Studio] logon time : [2025/04/08 14:50:23] [298] prev sql : "SELECT * FROM DUAL" [298] current sql : "NULL" [298] *** 2025/04/08 15:25:04.101 *** [298] callstack dump from tbsvr_WP014 for [WTHR, 298, 22068/21662] Thread #298 (Session #298): tb_thread_exit: (signo:0, sigtype:15) Tibero: wthr killed. (pid=21662, tid=298 spinlock cnt=1) SPINLOCK DUMP: TID 298 SPINLOCK PTR = 00007f3d0e575418 lock = 0 type = SPIN_SHP_ALLOC_MISC level=13 tid = 298 spin_idx = 0 [0] Internal Error with condition: '!"Reaping a dead working thread " "in a critical section"' (1 args) (tbsvr_mthr.c:1001:mthr_reap_thr) (pid=21397, sessid=0, tid=0) tid = 298 = 298 = 0x12a [0] client : ip [] process [] logon time : [] [0] prev sql : "NULL" [0] current sql : "NULL" [0] *** 2025/04/08 15:25:04.133 *** [0] callstack dump from tbsvr for [MPROC, 0, 21397/21397] [0] ***** FATAL ASSERT (PID = 21397, TID = 0, SESSID = 0): ***** tbsvr_tracedump.c:280 (tb_svr_assert_cmd): Assertion 'false' failed. ***** Program: tbsvr -startup -t NORMAL -SVR_SID EIMSP01 --memlog savepoint crmresend10 2025/04/08 15:22:54.346048 CSR_ID:243 SELECT * FROM DUAL 2025/04/08 15:22:56.755590 CSR_ID:244 UPDATE CRM_LOG SET PARAMETER_send = CONCAT(PARAMETER_send, '^SALE_OPTY_ORG_CD=E72^CFGRT_ORG_CD=E72^CFGRT_ORG_NM=동탄호수공원') WHERE id = 977963
SQL
복사

원인

티베로는 savepoint name 지정시 길이가 128을 초과하지 못하는 제약사항이 있습니다.
SQL> savepoint aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3; TBR-23007: Identifier is too long.
SQL
복사
하지만 패키지를 통해 savepoint 를 등록할 경우, 이 제한을 초과하여 등록이 가능해지는 문제가 발생할 수 있습니다.
SQL> create table t1 (c1 number); SQL> insert into t1 values(1); insert into t1 values(2); SQL> insert into t1 values(3); insert into t1 values(4); SQL> commit; SQL> BEGIN DBMS_TRANSACTION.SAVEPOINT('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3'); INSERT INTO T1 VALUES (5); END; SQL> EXEC DBMS_TRANSACTION.ROLLBACK_SAVEPOINT('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa3'); TBR-2131: Generic I/O error.
SQL
복사

해결

1.
패치를 적용해 해결합니다. (적용 패치: 318819)
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
2.
회피책을 설정하여 오류 해결을 시도할 수 있습니다.
영구 우회 회피책: 패키지를 통한 savepoint 지정 시, name 길이가 128을 넘지 않도록 지정합니다. (사이드 이펙트가 없음)