Informix - Problem description
Problem IT04273 | Status: Closed |
ACCESSING THE SYSMASTER:SYSRAWDSK TABLE USING A ROWID CAN CAUSE AN ASSERTION FAILURE AND A CRASH OR RETURN INCORRECT ROW | |
product: | |
INFORMIX SERVER / 5725A3900 / C10 - IDS 12.10 | |
Problem description: | |
If you are running your Informix server on a little-endian platform (for example Linux) and you query the sysmaster:sysrawdsk table using the 'where rowid=xxxxx' clause and the rowid of 'xxxxx' doesn't exist, you will get following assertion failure: 09/05/14 08:40:00 Assert Failed: No Exception Handler 09/05/14 08:40:00 IBM Informix Dynamic Server Version 12.10.FC3 09/05/14 08:40:00 Who: Session(15530, user@hostname, 2708, 0x48fa8158) Thread(55011, sqlexec, 48f77a28, 1) File: mtex.c Line: 516 09/05/14 08:40:00 Results: Exception Caught. Type: MT_EX_OS, Context: mem 09/05/14 08:40:00 Action: Please notify IBM Informix Technical Support. 09/05/14 08:40:00 See Also: /tmp/af.dacb5ac0 The stack of the failing thread will look like this: afstack mt_ex_throw_sig afsig_handler <signal frame> prrawdsk pstread pst_rsread rsread fmread getsinglerow readidx_new gettupl scan_next getrow fetchrow exfetch sql_nfetch sq_nfetch sqmain spawn_thread th_init_initgls startup If you run similar query on a big-endian platform (AIX, for example), no AF occurs, but the server always returns the same, incomplete row, regardless of whether the used rowid exists or not: $ echo "select * from sysrawdsk where rowid=13" | dbaccess sysmaster Database selected. pg_chunk 1 pg_offset 0 offset 0 loc 00000001:00000000:0000: hexdata ascdata Another aspect of this defect is that on big-endian platforms, the rowids returned by the server for the query below are non-unique, while on the little-endian platforms they are unique and can be used for accessing the rows: select rowid, * from sysrawdsk; big-endian results: rowid 0 pg_chunk 1 pg_offset 0 offset 0 loc 00000001:00000000:0000: hexdata 00000000 00013512 00031800 01b00e40 ascdata ......5......0.@ rowid 0 pg_chunk 1 pg_offset 0 offset 16 loc 00000001:00000000:0010: hexdata 00000000 00000000 49424d20 496e666f ascdata ........IBM Info rowid 0 pg_chunk 1 pg_offset 0 offset 32 loc 00000001:00000000:0020: hexdata 726d6978 2044796e 616d6963 20536572 ascdata rmix Dynamic Ser .... little-endian results: rowid 1 pg_chunk 1 pg_offset 0 offset 0 loc 00000001:00000000:0000: hexdata 00000000 0100341a 03000018 3001c006 ascdata ......4.....0.@. rowid 16777217 pg_chunk 1 pg_offset 0 offset 16 loc 00000001:00000000:0010: hexdata 00000000 00000000 49424d20 496e666f ascdata ........IBM Info rowid 33554433 pg_chunk 1 pg_offset 0 offset 32 loc 00000001:00000000:0020: hexdata 726d6978 2044796e 616d6963 20536572 ascdata rmix Dynamic Ser ... | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * Any * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Update to IDS-12.10.xC5 * **************************************************************** | |
Local Fix: | |
Solution | |
Problem Fixed In IDS-12.10.xC5 | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 08.09.2014 16.10.2015 16.10.2015 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) | |
12.10.xC5 | |
12.10.xC5.W1 |