DB2 - Problem description
Problem IC66195 | Status: Closed |
INSTANCE MAY TRAP AFTER RESTORE OF EXISTING DATABASE WHEN ROLL FORWARD COMMANDS ARE ISSUED | |
product: | |
DB2 FOR LUW / DB2FORLUW / 910 - DB2 | |
Problem description: | |
The instance many trap after a restore of an existing database when a Roll Forward command is issued. The Roll Forward command may include a check of the status of the Roll Forward as well as the actual command to start the Roll Forward. The trap is due to a timing issue during the activation of different processes / threads. The the db2loggr process / thread will fail with a signal 11: 2010-01-30-02.12.46.280761+060 E339182911E982 LEVEL: Severe PID : 17712 TID : 47238155786528 PROC : db2loggr (SAMPLE) 0 INSTANCE: db2inst1 NODE : 000 FUNCTION: DB2 UDB, oper system services, sqloEDUCodeTrapHandler, probe:20 DATA #1 : Signal Number Recieved, 4 bytes 11 And will have the following stack: sqlbInitEDU sqlpgasn sqloCreateEDU sqloRunGDS sqloInitEDUServices sqloSystemControllerMain sqloRunInstance DB2main main The problem is timing dependent, i.e. not always reproducible. The user can use a non-intrusive db2trc command to change the timing, thus work around the issue. In the same manner, db2trc can be used to reproduce the crash. Sample steps to recreate the crash: Setup: ====== Create a database. Take an online backup while there is activity going on the database. session 1: db2 create db test session 1: db2 update db cfg for test using logretain yes session 1: db2 backup db test to /dev/null session 1: db2 backup db test online session 1: db2 connect to test session 1: db2 "create table t1 (c1 char(100))" session 1: db2 "insert into t1 values ('aaaaaaaaa')" session 1: while [ 1 ]; do db2 "insert into t1 select * from t1"; done session 2: db2 backup db test online session 1: Ctrl-C session 1: db2 terminate Reproduce: ========== session 1: db2 restore db test session 1: db2trc on -crash "DB2.SQLP.sqlpgLoggrPostInit.entry" -suspend session 1: db2 rollforward db test (this step will hang) session 2: db2trc off (in order to end the hang) session 1: (the session will resume, the output will be:) SQL1224N The database manager is not able to accept new requests, has terminated all requests in progress, or has terminated your particular request due to a problem with your request. SQLSTATE=55032 | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All. * **************************************************************** * PROBLEM DESCRIPTION: * * The instance many trap after a restore of an * * existingdatabasewhen a Roll Forward command is issued. The * * Roll Forwardcommandmay include a check of the status of the * * Roll Forward aswell asthe actual command to start the Roll * * Forward. The trap isdueto a timing issue during the * * activation of differentprocesses /threads.The the db2loggr * * process / thread will fail with a * * signal11:2010-01-30-02.12.46.280761+060 E339182911E982 * * LEVEL:SeverePID : 17712 TID : * * 47238155786528 PROC :db2loggr (SAMPLE) 0INSTANCE: db2inst1 * * NODE : 000FUNCTION: DB2 UDB, oper system * * services,sqloEDUCodeTrapHandler,probe:20DATA #1 : Signal * * Number Recieved, 4 bytes11And will have the following * * stack:sqlbInitEDUsqlpgasnsqloCreateEDUsqloRunGDSsqloInitEDUSer * problem is timing dependent, i.e. not alwaysreproducible.The * * user can use a non-intrusive db2trc command to * * changethetiming, thus work around the issue. In the same * * manner,db2trccan be used to reproduce the crash. Sample * * steps to recreatethecrash:Setup:======Create a database. * * Take an online backup while there isactivitygoing on the * * database.session 1: db2 create db testsession 1: db2 update * * db cfg for test using logretain yessession 1: db2 backup db * * test to /dev/nullsession 1: db2 backup db test onlinesession * * 1: db2 connect to testsession 1: db2 "create table t1 (c1 * * char(100))"session 1: db2 "insert into t1 values * * ('aaaaaaaaa')"session 1: while [ 1 ]; do db2 "insert into t1 * * select * fromt1"; donesession 2: db2 backup db test * * onlinesession 1: Ctrl-Csession 1: db2 * * terminateReproduce:==========session 1: db2 restore db * * testsession 1: db2trc on * * -crash"DB2.SQLP.sqlpgLoggrPostInit.entry"-suspendsession 1: * * db2 rollforward db test (this step will hang)session 2: * * db2trc off (in order to end thehang)session 1: * * (the session will resume, the output will be:)SQL1224N The * * database manager is not able to accept newrequests, * * hasterminated all requests in progress, or has terminated * * yourparticular requestdue to a problem with your request. * * SQLSTATE=55032 * **************************************************************** * RECOMMENDATION: * * Upgrade to Version 9.1 Fix Pack 9 or later. * **************************************************************** | |
Local Fix: | |
Despite the presence of the "-crash" option of db2trc, these steps will not cause any crash or other damage to the system. Instead, a certain code path will merely be put to sleep, and later resumed. session 1: db2 restore db test session 1: db2trc on -crash "DB2.SQLP.sqlpterm.entry" -suspend session 1: db2 rollforward db test (this step will hang) session 2: db2trc off (in order to end the hang) session 1: (the session will resume, the output will be:) Rollforward Status Input database alias = test Number of nodes have returned status = 1 <..etc, the regular success message...> | |
available fix packs: | |
DB2 Version 9.1 Fix Pack 9 for Linux, UNIX and Windows | |
Solution | |
Problem was first fixed in Version 9.1 Fix Pack 9. | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC66272 IC66274 IC66283 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 10.02.2010 19.04.2010 19.04.2010 |
Problem solved at the following versions (IBM BugInfos) | |
9.1.FP9 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.1.0.9 |