기술 정보
home
채널 소개
home

암호화된 패스워드로 유저 생성 시 SIGSEGV 발생

문서 유형
장애 해결
분야
App개발
키워드
ddl
password
profile
user
적용 제품 버전
6FS06
6FS07
7FS02
1 more property

현상

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 '패스워드' 형태로 생성해 시도할 수 있습니다.