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 |
|