Informix - Problem description
Problem IT12158 | Status: Closed |
WINDOWS: 'SET EXPLAIN ON' CAN CAUSE A MEMORY CORRUPTION IN 'MT' POOL WITH VARIOUS ASSERT FAILURES BEING PRODUCED | |
product: | |
INFORMIX SERVER / 5725A3900 / C10 - IDS 12.10 | |
Problem description: | |
If your application accesses an IBM Informix Server engine running on Windows and the 'set explain on' command is used in the application, it can cause a corruption in shared memory alocated by the engine - a content of a memory block can overflow to the subsequent block, corrupting its header. Depending on how the subsequent block is used by the engine one can see various types of AF events, for example: 02:32:59 Explain file for session 1274 : d:informixsqexplninformix.out 02:32:59 Found during mt_shm_malloc_segid 2, error seen 1 times since last print to the log 02:32:59 Pool 'mt' (0x1477ca040) 02:32:59 Bad block header 0x16e2a4420 02:32:59 Found during mt_shm_malloc_segid 2, error seen 1 times since last print to the log 02:32:59 Pool 'mt' (0x1477ca040) 02:32:59 Bad block header 0x16e2a4420 02:32:59 Assert Failed: Memory block header corruption detected in mt_shm_malloc_segid 2 02:32:59 IBM Informix Dynamic Server Version 12.10.FC5WE 02:32:59 Who: Session(1274, informix@hostname, 5632, 0000000000000000) Thread(5188, sqlexec, 0, 10) File: mtshpool.c Line: 1937 02:32:59 Results: Unable to repair pool 02:32:59 Action: Please notify IBM Informix Techical Support. 02:32:59 stack trace for pid 1200 written to d:informix mpaf.182ceb4a 02:33:02 See Also: d:informix mpaf.182ceb4a or 02:21:31 Explain file for session 856 : d:informixsqexplninformix.out ... 02:27:29 Found during mt_shm_malloc_segid 8, error seen 1 times since last print to the log 02:27:29 Pool 'mt' (0x1445d4040) 02:27:29 Bad free block 0x148334d38 02:27:29 Assert Failed: Unhandled NT Exception! 02:27:29 See Also: d:informix mpaf.10ace110 02:27:29 Assert Failed: No Exception Handler 02:27:29 IBM Informix Dynamic Server Version 12.10.FC5WE 02:27:29 Who: Session(856, informix@hostname, 1652, 0000000000000000) Thread(3268, sqlexec, 0, 12) File: mtex.c Line: 1157 02:27:29 Results: Exception Caught. Type: MT_EX_OS, Context: mem 02:27:29 Action: Please notify IBM Informix Techical Support. 02:27:29 stack trace for pid 3496 written to d:informix mpaf.10ace110 02:27:30 See Also: d:informix mpaf.10ace110 02:27:46 No Exception Handler The stack trace of the failing thread can vary, but at the top of it the functions for allocating memory can always be seen, for example: afhandler affail_interface mt_shm_malloc_segid mt_malloc mt_create_mutex ha_init_hash_table init_hash_structs group_open .... or recover_pool_bad_free mt_shm_malloc_segid mt_malloc mt_create_mutex rsla_open fmla_write insertla_next doselintotmp ... Another symptom is that the text of the SQL statement run by the failing session is incomplete in the explain file: QUERY: (OPTIMIZATION TIMESTAMP: 11-03-2015 16:18:25) ------ select sysrstcb.indx, sysrstcb.address, sysrstcb.txp, ... (skipped some lines) sysrstcb.tmpsize, sy | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Any windows user. * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Update to IBM Informix Server 12.10.xC7 * **************************************************************** | |
Local Fix: | |
Solution | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 06.11.2015 28.06.2016 28.06.2016 |
Problem solved at the following versions (IBM BugInfos) | |
12.10.xC7 | |
Problem solved according to the fixlist(s) of the following version(s) |