Document Type | Troubleshooting
Category | Patch/Upgrade
Applicable Product Version | 6FS06
Document Number | TPATS021
Issue
When the redo log is in a waiting state (waiting for all logfiles to be archived), an Internal error occurs when a general user tries to connect.
When the online redo log is full and in a waiting state, upon login by a general user, error 1063 (Log writer is waiting for all logfiles to be archived.) should be immediately output and the connection terminated. However, in this case, an Internal Error with condition sess->si_alloc == NULL occurs.
--slog [mm-ddT00:00:00.543212] [FRM-353] [I] THROW. ec=ERROR_CACHE_CANT_SWITCH_LOGFILE(-1063) [ Log writer is waiting for all logfiles to be archived. ] (csr_id:4294967295) [tbsvr_msg_conn.c:988:tbsvr_check_svr_status] [mm-ddT00:00:00.544848] [COM-353] [I] Internal Error with condition 'sess->si_alloc == NULL' (sess.c:118) (pid=13631666, sessid=353, tid=353, os_thr_id=63176841)
Cause
During the login authentication process, in an intermediate state where there is no session but the session's allocator (si_alloc) exists, a login failure occurs. This causes the system to determine that there is no session and attempts to open one. However, since the session variable (sess->si_alloc) exists, an error occurs.
This phenomenon occurs when a general user tries to connect while the redo log is blocked (waiting for all logfiles to be archived). It mainly happens in disk full situations but can also occur if the archive speed is slow.
Solutions
Apply a patch to check and initialize variables such as session's si_alloc (session allocator) even if there is no session during login failure. (Applied patch: 110951b)
CautionApply the patch through technical support provided by TmaxTibero.