현상
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA==' 와 같이 암호화 된 패스워드로 유저 생성시 간헐적으로 SIGSEGV가 발생합니다.
암호화 된 패스워드로 유저 생성 예시
1.
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA==' 와 같이 암호화 된 패스워드로 유저 생성
CREATE USER XXXXXX
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA=='
DEFAULT TABLESPACE XXXXXX
PROFILE DEFAULT
ACCOUNT UNLOCK
SQL
복사
2.
Signal 11 (SIGSEGV) caught 현상 발생
[338] *** 2024/10/10 20:59:06.589 *** Signal 11 (SIGSEGV) caught (TID = 338, SESSID = 338, OS_THR_ID = 3, PID = 4373): si_addr = 0000003200010100 : the cause of the signal can be found in a process callstack file.
[338] Thread stack: ffffffff7bc00000--ffffffff7c410000
[338] client : ip [::ffff10.30.211.90] process [SQLGateMain.exe] logon time : [2024/10/10 20:58:29]
[338] prev sql : "CREATE USER XXXXXX
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA=='
DEFAULT TABLESPACE XXXXXX
PROFILE DEFAULT
ACCOUNT UNLOCK"
[338] current sql : "CREATE USER XXXXXX
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA=='
DEFAULT TABLESPACE XXXXXX
PROFILE DEFAULT
ACCOUNT UNLOCK"
[270] *** 2024/10/10 20:59:06.604 ***
[270] callstack dump from tbsvr_AGNT for [WTHR, 338, 3/4373]
[270] SEE DUMP tbsvr.callstack.4373 (lwpid 3) BY PSTACK
While executing sql : [CREATE USER XXXXXX
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA=='
DEFAULT TABLESPACE XXXXXX
PROFILE DEFAULT
ACCOUNT UNLOCK
SQL
복사
3.
SIGSEGV 발생시 callstack
----------- lwp# 3 / thread# 3 ---------------
00007fffff0e1c74 nanosleep (ffffffff7c3f5b80, 0)
00007fffff0cd1c4 usleep (186a0, 431bde83, 431bde83, 431bdc00, 10dd7d68, 10dd7c00) + 64
000000011c7406fc sync_sig_handler (b, ffffffff7c3f6320, 0, 1, 13d13d288, 8400) + 984
00007fffff0ddb60 __sighndlr (b, ffffffff7c3f6320, ffffffff7c3f6010, 11c73fd78, 0, 7fffff224000) + c
00007fffff0d0044 call_user_handler (9, ffffffff7c3f6320, 0, 871e0850, b, ff) + 404
00007fffff0d0428 sigacthandler (b, ffffffff7c3f6320, ffffffff7c3f6010, 0, 0, 7fffff224000) + a8
--- called from signal handler with signal 11 (SIGSEGV) ---
00007ffffefed910 strlen (0, 112069bf8, 13d1bd2d0, ffffffff7c3f7298, 1000, ffffffff7c3f6e88) + 50
0000000115b04ea8 ddl_ex_prepare_qstr (ffffffff7c3f7298, 1000, ffffffff7c3f6e88, 13d13d3b0, 10d7f438, 10d7f400) + 78
0000000116fd5a90 _ddl_verify_password2 (ffffffff7dd03e68, ffffffff7dd03af0, ffffffff7dd03bc0, 3200010100, 0, 0) + 37c0
0000000116feee2c ddl_create_user (1ffff415483988, 0, 13d13d288, 0, 12c3bdf78, 0) + 2fdc
0000000115df67c8 ddl_execute (ffffffff7dd022a8, 10d7f310, 0, 13d129300, ffffffffffffffd0, 10d6b388) + 128
0000000115df1528 ddl_process_internal (0, 0, 1ffff4077a0090, 0, 152, 12c3bdf78) + 2568
000000011303cbc0 tbsvr_sql_process (13d200fa0, ffffffff7dd022a8, 0, ffffffff7c401d58, ffffffff7c401dc7, ffffffff7c401db8) + 2250
0000000112eb1d6c tbsvr_msg_sql_common (ffffffff7c4020c7, 1ffff415483988, 3, 7c00, 0, 12c3bdf78) + 522c
0000000112e09d40 tbsvr_handle_msg_internal (0, 0, ffffffff7d41a668, 13d13d288, 1, 6) + 22f0
0000000112e0df30 tbsvr_wthr_request_from_cl_conn (13d200fa0, 0, 12c3bdf78, 1ffff4077a0090, ffffffffffffffd8, 10d7f310) + 2478
0000000112e02348 tbsvr_body (13d13d288, 10d7f310, 12c3bdf78, 10d7f000, 12c3bdf78, 81) + 40
0000000112e1db64 wthr_get_new_cli_con (a3b4400, 0, 1ffff41549d4e0, 104b4f9e8, ffffffff7f470a50, 12c3bdf78) + 10dc
0000000112ddcff0 thread_main_chk_bitmask (ffffffffffffffff, 1, 0, 10000, fffffffffffeffff, 0) + 5b8
0000000112e00c0c svr_wthr_main_internal (152, 10d6b388, 10d6b000, 152, 48f, 48f) + c7b4
00000001121a8078 svr_wthr_main (0, ffffffffffffffc0, 12c3bdf78, 0, 10d6b000, ffffffff7f470a58) + 28
000000011c69feac wthr_init (ffffffff7ec05078, 1ffff41549d4e0, 0, 1ffff4008b96b0, 12c3bdf78, 8b8a60) + 1d4
SQL
복사
원인
encrypt 된 패스워드 입력 시 해당 값 그대로 verify password function 을 실행해 패스워드 검증을 수행하게 되며 그 결과 값이 정상 범위 밖의 예외 값이 나오는 경우에 발생합니다.
해결
패치를 적용해 해결합니다. (적용패치: 317319)
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
•
IDENTIFIED BY VALUES 'UhzYkQClcFLoJOWQdqw3zA==' 형태처럼 암호화 된 패스워드를 생성해도 SIGSEGV가 간헐적으로 발생하므로, 패치를 적용하지 않더라도 여러 번 시도하는 경우 정상적으로 동작할 수 있습니다.
•
패치 적용 대신, 암호화 하기 전의 패스워드를 이용해 IDENTIFIED BY '패스워드' 형태로 생성해 시도할 수 있습니다.