DB2 - Problem description
Problem IC62383 | Status: Closed |
RECURSIVE LOOP IN SQLISCHD(), CAUSED BY SPLIT INDEX PAGE TO AN EMPTY PAGE INCORRECTLY. | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
We found this problem in a hang issue happened at backward phase of crash recovery. Firstly, using "db2pd -util" or "db2 list ulitilities show detail", we found crash recovery stopped to progress at the backward phase of crash recovery. Then, from db2 trace, we found crash recovery was stuck in a recursive loop as follow. 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] Actually, this recursive loop is caused by incorrect index data. We want to delete a key from the index. To do this we have to start at the root node (a.k.a. page), and recurse down the index tree until we find the key, or return 'key not found'. During recursion in sqlischd(), we unfortunately encounter a loop in index data. This index data loop is caused by db2 defect. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All. * **************************************************************** * PROBLEM DESCRIPTION: * * See the error description. * **************************************************************** * RECOMMENDATION: * * Upgrade to version 9.7 fixpack 1 or later. * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
Solution | |
This problem is first fixed in version 9.7 fixpack 1. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 05.08.2009 21.12.2009 21.12.2009 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP1 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.1 |