Problem 1. IBM Informix? Dynamic Server? (IDS) crashes when a CREATE PROCEDURE statement with UNION SELECT clause is run . Solution PROBLEM IBM Informix Dynamic Server (IDS) crashes if you execute a "CREATE PROCEDURE" statement that uses a "UNION SELECT" clause.
Example: To see this behavior, run this statement in DBACCESS:
CREATE PROCEDURE test () DEFINE i integer; LET i = (SELECT customer_num FROM customer UNION SELECT customer_num FROM customer); END PROCEDURE; The stack from sqlexec thread shows (excerpt from an af file): 14:30:43 14:30:43 IBM Informix Dynamic Server Version 9.40.UC5 14:30:43 Assert Failed: No Exception Handler 14:30:43 Who: Session(79293, informix@gaugin, 3228, a641d38) Thread(79312, sqlexec, a612ac0, 1) File: mtex.c Line: 431 14:30:43 Results: Exception Caught. Type: MT_EX_OS, Context: mem 14:30:43 Action: Please notify IBM Informix Technical Support. 14:30:43 Stack for thread: 79312 sqlexec base: 0x0adea000 len: 36864 pc: 0x0072ed5c tos: 0x0adf1390 state: running vp: 1 afhandler() afcrash_interface() mt_ex_throw_sig() afsig_handler() itbldmerge() itbldunion() itbldroot() optsubq () oplooksubq() ip_exproptim() cmp_stmt() cmp_proc() pr_compile() creatproc() aud_creatproc() excommand() sq_execute() sqmain () listen_verify() startup() accpshm () (*nosymtab*)0x0
The stack can have different function calls instead of itbldmerge() on different platforms.
SCOPE The following products and operating systems are affected: IDS Bug,需要在实际使用中注意。 Problem 2. IBM? Informix? Dynamic Server? (IDS): SPL containing nested multisets causes IDS to Assert fail and return error -874. Solution PROBLEM IBM Informix Dynamic Server (IDS): SPL containing nested multisets causes IDS server to Assert fail and return error -874. Example: Here is an extract from a sample assert failure (af) file generated by the crash: 15:53:20 15:53:20 IBM Informix Dynamic Server Version 9.40.UC4W4 Software Serial Number AAA#B000000 15:53:20 Assert Failed: Exception Caught. Type: MT_EX_OS, Context: mem 15:53:20 Who: Session(67, informix@xxx, 12903, ae0db40) Thread(87, sqlexec, addde90, 1) File: mtex.c Line: 377 15:53:20 Action: Please notify IBM Informix Technical Support. 15:53:20 Stack for thread: 87 sqlexec base: 0x0b55b000 len: 36864 pc: 0x007255bc tos: 0x0b561f40 state: running vp: 1 0x007249a0 (oninit)afhandler 0x00724114 (oninit)affail_interface 0x007289b0 (oninit)mt_ex_throw_sig 0x006f5678 (oninit)afsig_handler 0x00113690 (oninit)cp_from_sentinel_tabdesc 0x0022bb48 (oninit)sqoptim 0x0022ce28 (oninit)sqoptim 0x001721a8 (oninit)ip_scurstart 0x00170b38 (oninit)ip_evalcursor 0x0016ad34 (oninit)runproc 0x00178478 (oninit)udrlm_spl_execute 0x00390e48 (oninit)udrlm_exec_routine 0x0019b100 (oninit)udr_execute 0x00179350 (oninit)udr_spl_curnext 0x00173668 (oninit)ip_curnext 0x001732e0 (oninit)ip_fetch 0x00261dcc (oninit)getrow 0x00261c44 (oninit)fetchrow 0x003f7658 (oninit)exfetch 0x00362f54 (oninit)sq_nfetch 0x003d63c4 (oninit)sqmain 0x00746ea4 (oninit)listen_verify 0x00702de8 (oninit)startup 0x006f6724 (oninit)idle_processor 0x00000000 (*nosymtab*) SCOPE The following products and operating systems are effected:
Problem 3. IBM? Informix? Dynamic Server? (IDS): When querying the "sysmaster" database, SQEXPLAIN crashes IBM Informix Server if the session-id is retrieved from a temporary table. Solution PROBLEM Executing a script which stores the session-id in a temporary table and retrieves it from there to query the syssqexplain table, crashes IBM? Informix? Dynamic Server? (IDS).
Example: Below is an example of the stack trace produced (excerpt from the online.log file): base: 0x0afcb000 len: 36864 pc: 0x0071136c tos: 0x0afd2d48 state: running vp: 1 0x00710750 (oninit)afhandler 0x0070ff44 (oninit)afcrash_interface 0x007148b4 (oninit)mt_ex_throw_sig 0x006e17e0 (oninit)afsig_handler 0x006def48 (oninit)do_rhpfree 0x00354e04 (oninit)sq_execute 0x003ca9b4 (oninit)sqmain 0x00732b20 (oninit)listen_verify 0x006eee58 (oninit)startup 0x00743c64 (oninit)accpshm 0x00000000 (*nosymtab*) Problem 4. IBM Informix? Dynamic Server? (IDS): Attempting to connect with an invalid userid or password results in memory corruption or an Assert failure. Solution PROBLEM IBM Informix? Dynamic Server? (IDS): Attempting to connect with an invalid userid or password results in memory corruption or an Assert failure. This specifically occurs when two users are trying to connect at the same time and one is rejected because of an invalid userid or password. Example of corruption (excerpt from online.log): 13:29:51 Password Validation for user [michaelm] failed! 13:29:51 Check for password aging/account lock-out. 13:29:51 listener-thread: err = -952: oserr = 0: errstr = michaelm: User (michaelm)'s password is not correct for the database server. 13:29:51 listener-thread: err = -25546: oserr = 0: errstr = : Invalid ASF assoc_id. 13:29:51 Assert Warning: Memory free block header corruption detected in mt_shm_free 3 13:29:51 IBM Informix Dynamic Server Version 9.40.UC2 13:29:51 Who: Session(150, michaelm@rios, 5241, ae0cd00) Thread(174, sqlexec, addce68, 1) File: mtshpool.c Line: 3403 13:29:51 Results: Pool repaired 13:29:51 Action: Please notify IBM Informix Technical Support. 13:29:51 stack trace for pid 5198 written to /af/af.49610bf 13:29:52 The Master Daemon Died 13:29:52 Fatal error in ADM VP at mt.c:12239 13:29:52 Unexpected virtual processor termination, pid = 5200, exit = 0x100 13:29:52 PANIC: Attempting to bring system down 13:29:51 Found during mt_shm_free 3 13:29:51 Pool 'global' (0xac01020) 13:29:51 Bad free block 0xb46b6fc blk-64 0b46b6bc: 7c363134 38317c74 6c697463 70000000 |61481|t litcp... 0b46b6cc: 00000000 00000000 00000000 00000000 ........ ........ 0b46b6dc: 00000000 00000000 0000ea60 ffffffff ........ ...`.... 0b46b6ec: 0b46b870 0b46b6a0 00000188 168d7099 .F.p.F.. ......p. blk+64 0b46b6fc: 0ac012a4 00000064 15802549 00000000 .......d ..%I.... 0b46b70c: 00000000 00000000 00000000 00000000 ........ ........ 0b46b71c * 13:29:51 Bad free block removed from pool 13:29:51 Attempting to clean up all block list... 13:29:51 Pool 'global' (0xac01020) 13:29:51 Bad block header 0xb46b6e8 blk-64 0b46b6a8: 0b46b528 00000048 168d6c59 00000000 .F.(...H ..lY.... 0b46b6b8: 72696f73 7c363134 38317c74 6c697463 rios|614 81|tlitc 0b46b6c8: 70000000 00000000 00000000 00000000 p....... ........ 0b46b6d8: 00000000 00000000 00000000 0000ea60 ........ .......` 13:29:51 Bad block removed from pool 13:29:51 13:29:51 IBM Informix Dynamic Server Version 9.40.UC2 Software Serial Number RDS#N000000 13:29:51 Assert Warning: Memory free block header corruption detected in mt_shm_free 3 13:29:51 Who: Session(150, michaelm@rios, 5241, ae0cd00) Thread(174, sqlexec, addce68, 1) File: mtshpool.c Line: 3403 13:29:51 Results: Pool repaired 13:29:51 Action: Please notify IBM Informix Technical Support. 13:29:51 Stack for thread: 174 sqlexec base: 0x0b497000 len: 36864 pc: 0x0071a8fc tos: 0x0b49eab0 state: running vp: 1 0x00719cf8 (oninit)afhandler 0x007194cc (oninit)afwarn_interface 0x00710614 (oninit)recover_pool_bad_free 0x0070d89c (oninit)mt_shm_free 0x00790b00 (oninit)meFree 0x0076a1e0 (oninit)free_common_ctl 0x00768124 (oninit)slSQIdiscon 0x007628c4 (oninit)pfDiscon 0x0075a2c0 (oninit)cmDiscon 0x00757174 (oninit)ascAbort 0x007584c0 (oninit)respDone 0x00733bbc (oninit)ASF_Call 0x0073c988 (oninit)send_reject 0x0073c130 (oninit)listen_verify 0x006f85b8 (oninit)startup Example of a crash: 14:21:33 Get Shadow Password for user [michaelm] failed! 14:21:33 Check for password aging/account lock-out. 14:21:33 listener-thread: err = -951: oserr = 0: errstr = michaelm: Incorrect password or user michaelm is not known on the database server. 14:21:33 Get Shadow Password for user [michaelm] failed! 14:21:33 Check for password aging/account lock-out. 14:21:33 listener-thread: err = -951: oserr = 0: errstr = michaelm: Incorrect password or user michaelm is not known on the database server. 14:21:33 Assert Failed: No Exception Handler 14:21:33 Who: Session(2306, informix@, 0, 0) Thread(9, tlitcplst, 0, 1) File: mtex.c Line: 431 14:21:33 Results: Exception Caught. Type: MT_EX_OS, Context: mem 14:21:33 Action: Please notify IBM Informix Technical Support. 14:21:33 Stack for thread: 9 tlitcplst base: 0x0b3b3000 len: 36864 pc: 0x0071a8fc tos: 0x0b3ba728 state: running vp: 1 0x00719cf8 (oninit)afhandler 0x0071950c (oninit)afcrash_interface 0x0071ddbc (oninit)mt_ex_throw_sig 0x006eaf34 (oninit)afsig_handler 0x00767414 (oninit)slSQIind 0x00761944 (oninit)pfConInd 0x007599cc (oninit)cmConInd 0x00757398 (oninit)ascInd 0x00733af8 (oninit)ASF_Call 0x0073b06c (oninit)sql_listener 0x006f85b8 (oninit)startup PROBLEM In a HDR environment, the primary server assert fails when a commit is requested, and more than one lock requested inside the critical section. Below is an example of the assert failure (excerpt from the online.log file): 13:58:38 DR: Primary server operational 13:58:40 DR: Sending index ewdb:"usr1".ov_t2_tk07_020989#ov_i22_tk07_020989 : Started 13:58:46 Checkpoint Completed: duration was 7 seconds. 13:58:46 Checkpoint loguniq 5, logpos 0xbab018, timestamp: 6108897 13:58:46 Maximum server connections 55 13:58:48 DR: Sending index ewdb:"usr1".ov_t2_tk07_020989#ov_i22_tk07_020989 : Completed. 13:58:49 Assert Failed: ERROR - NO 'waitfor' locks in Critical Section!!! 13:58:49 IBM Informix Dynamic Server Version 9.40.UC3 13:58:49 Who: Session(70, usr1@knight, 20989, 11433360) Thread(102, sqlexec, 114129e8, 3) File: rslock.c Line: 3284 13:58:49 See Also: /tmp/af.44e1d89 13:59:24 Invoking debugger on oninit pid 24047 13:59:24 Thread(102, sqlexec, 0x0, 3) 13:59:24 oninit pid 24047 waiting for debugger
| | |