DB2 - Problem description
Problem IC77702 | Status: Closed |
INFINITE LOOP IN SQLOREST CALLED BY SQLBFREEUPSLOT WHEN BUFFER POOL IS FULL | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
When a buffer pool is full, and at the same time a new object (e.g. table, index, etc...) needs to be loaded into the same buffer pool, DB2 will attempt to free an existing buffer pool slot in order to make space for the new object. The agent working on this task may enter an infinite loop with the following call stack: ossSleep sqlorest sqlbFreeUpSlot sqlbGetVictimSlot sqlbGetPageFromDisk sqlbfix sqlbFixDataEMP sqlbIsExtentAllocated sqlbDMScheckObjAlloc sqlbGetDiskPageID sqlbGetPageFromDisk sqlbfix The call stack file will also show that the agent will be holding the SQLO_LT_SQLB_POOL_CB__extentAnchorTableLatch latch, thus blocking other EDUs waiting for the same latch. The top routines, sqlorest and ossSleep, will be executed infinitely. DB2 trace of this agent will show the following repetitive calls: 102 sqlorest entry [eduid 70 eduname db2agent] 103 sqlorest data [probe 10] 217 sqlorest exit 218 sqeAgent::QueryInterrupt entry [eduid 70 eduname db2agent] 219 sqeAgent::QueryInterrupt data [probe 70] 220 sqeAgent::QueryInterrupt exit (...looping back to sqlorest...) A diagnostic message similar to the following may or may not get printed in the DB2 diagnostic log: 2011-07-22-16.02.59.639777-240 E18646747A807 LEVEL: Warning PID : 7999 TID : 70 PROC : db2sysc INSTANCE: db2inst1 NODE : 000 DB : SAMPLE APPHDL : 0-42 APPID: 10.0.0.100.50918.110722200240 AUTHID : DB2INST1 EDUID : 70 EDUNAME: db2agent (SAMPLE) FUNCTION: DB2 UDB, Common Trace API, sqlbFreeUpSlot, probe:120 MESSAGE : ADM6082W The current transaction is attempting to do work that is not allowed to fail. However, this work could not be completed as there are no free pages available in the buffer pool. Further attempts will be made to find free pages but in the future this situation can be avoided by increasing the size of buffer pool "BP4" (ID "2"). However, the instance will likely not hang completely; jobs requiring buffer pools other than the one running out of space will continue as normal. This problem can only be seen in DB2 UDB 9.7 FixPak 1 or newer. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * see APAR description * **************************************************************** * PROBLEM DESCRIPTION: * * see APAR description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 UDB 9.7 FixPak 5. * **************************************************************** | |
Local Fix: | |
Ensure the correst sizing of your buffer pools in order to decrease the likelihood of a buffer pool running out of space. | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows | |
Solution | |
Problem first fixed in DB2 UDB 9.7 FixPak 5. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 25.07.2011 08.12.2011 08.12.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7. | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.5 |