DB2 - Problem description
Problem IC66272 | Status: Closed |
INSTANCE MAY TRAP AFTER RESTORE OF EXISTING DATABASE WHEN ROLL FORWARD COMMANDS ARE ISSUED | |
product: | |
DB2 FOR LUW / DB2FORLUW / 950 - 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: * * Users performing a rollforward command. * **************************************************************** * PROBLEM DESCRIPTION: * * The instance many trap after a restore of an * * existingdatabase when a Roll Forward command is issued. The * * RollForward command may include a check of the status of * * theRoll Forward as well as the actual command to start the * * RollForward. The trap is due to a timing issue during * * theactivation of different processes /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 **************************************************************** * RECOMMENDATION: * * Upgrade to Version 9.5 Fix Pack 6 or later releasecontaining * * the fix. * **************************************************************** | |
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.5 Fix Pack 6a for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in Version 9.5 Fix Pack 6. | |
Workaround | |
See Local Fix. | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 12.02.2010 25.05.2010 25.05.2010 |
Problem solved at the following versions (IBM BugInfos) | |
9.5.FP6 | |
Problem solved according to the fixlist(s) of the following version(s) |