Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104573009
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-19 20:29:46


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
 
 
阅读(1696) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~