DB2 - Problem description
Problem IC62289 | Status: Closed |
Recursive loop in sqlischd caused by an incorrect high key on an intermediate index node. | |
product: | |
DB2 FOR LUW / DB2FORLUW / 910 - DB2 | |
Problem description: | |
When a new highest index key value is inserted to an index leaf node, DB2 will update the corresponding index key value on a level 2 intermediate node. If the index key value on the level 2 intermediate node happens to be the highest index key value on the node, DB2 will update the corresponding index key value on a level 3 intermediate or root node. Under a very small timing hole, DB2 may miss the update on the level 3 node. As a result, the index is corrupted. This problem applies to indexes which have more than 2 index levels. For example, this problem might be found as a "hang" issue that happens at backward phase of a crash recovery. To identify this problem, issue "db2pd -util" or "db2 list ulitilities show detail" commands and we will find crash recovery stop to progress at the backward phase of crash recovery. Then, from db2 trace, we found crash recovery was stuck in a recursive loop as follows: 27 sqlischd data [probe 10] 28 sqlischd data [probe 11] 29 sqlischd data [probe 12] 30 | sqlilkey entry 31 | sqlilkey data [probe 0] 32 | sqlilkey data [probe 1] 33 | | sqliBinSearchFirstRidOrNext entry 34 | | sqliBinSearchFirstRidOrNext exit [rc = 0x8009007B = -2146893701 = SQLI_NEXT] 35 | sqlilkey data [probe 20] 36 | sqlilkey data [probe 1000] 37 | sqlilkey exit [rc = 0x8009007B = -2146893701 = SQLI_NEXT] 38 | sqlischd entry 39 | sqlischd data [probe 0] 40 | sqlischd data [probe 1] 41 | sqlischd data [probe 2] 42 | sqlischd data [probe 4] 43 | sqlischd data [probe 5] 44 | | sqliufix entry 45 | | sqliufix data [probe 0] 46 | | sqliufix exit 47 | | sqlifix entry 48 | | | sqlbfix entry 49 | | | sqlbfix exit 50 | | sqlifix data [probe 1000] 51 | | sqlifix exit 52 | | sqlilkey entry 53 | | sqlilkey data [probe 0] 54 | | sqlilkey data [probe 1] 55 | | | sqliBinSearchFirstRidOrNext entry 56 | | | sqliBinSearchFirstRidOrNext exit [rc = 0x8709002C = -2029453268 = SQLI_NOKEY] 57 | | sqlilkey data [probe 20] 58 | | sqlilkey data [probe 1000] 59 | | sqlilkey exit [rc = 0x8709002C = -2029453268 = SQLI_NOKEY] 60 | | sqlilidx entry 61 | | sqlilidx data [probe 0] 62 | | sqlilidx data [probe 1] 63 | | sqlilidx data [probe 2] 64 | | sqlilidx data [probe 1000] 65 | | sqlilidx data [probe 1001] 66 | | sqlilidx exit 67 | sqlischd data [probe 1000] 68 | sqlischd data [probe 1001] 69 | sqlischd exit [rc = 1] 70 | sqlirfix entry 71 | sqlirfix data [probe 0] 72 | | sqliufix entry 73 | | sqliufix data [probe 0] 74 | | sqliufix data [probe 113] 75 | | | sqlbufix entry 76 | | | sqlbufix exit 77 | | sqliufix exit 78 | sqlirfix exit - new iteration - 79 sqlischd data [probe 10] 80 sqlischd data [probe 11] 81 sqlischd data [probe 12] This problem can also lead to a SQLI_NOKEY problem when an index key is being updated or deleted from an index. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL. * **************************************************************** * PROBLEM DESCRIPTION: * * See error description. * **************************************************************** * RECOMMENDATION: * * Upgrade to db2 version 9.1 fix pack 8 or later. * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.1 Fix Pack 8 for Linux, UNIX and Windows | |
Solution | |
This problem is first fixed in db2 version 9.1 fix pack 8. | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IZ56782 IC62383 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 30.07.2009 10.10.2009 10.10.2009 |
Problem solved at the following versions (IBM BugInfos) | |
9.1.FP8 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.1.0.8 |