home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC72148 Status: Closed

DECLARE GLOBAL TEMPORARY TABLE WITH REPLACE OPTION MIGHT CAUSE DOUBLE FREE
IN XA ENVIRONMENT.

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
Issue fixed with APAR IC72148, under certain conditions 
(rollbacks of drops of DGTT is the main contributing factor) 
lead to situations that result in -901 sqlcodes from 
sqlrl_userTemp* logic.   Secondarily, these bugs can result in 
applications accessing the DGTTs of other connections via 
incorrect package cache matches - which, aside from the -901s 
can also result in incorrect TCB counts when an application is 
attempting to drop a DGTT that it thinks it has exclusive access 
to. Furthermore, in XA connection, declare global temporary 
table WITH REPLACE option might cause double memory free. 
 
 
The fix for IC72148 has two main aspects: 
a) Fix to identified logical problems involving dropping of 
DGTTs 
b) Fix for DGTT design reducing the memory use of DGTTs which 
could accumulate significantly during a transaction 
 
 
To identify if you hit APAR IC72148, seek for following 
db2diag.log entries: 
 
1. In XA connection, declare global temporary table WITH REPLACE 
option might cause double free as below: 
 
2010-10-18-23.47.52.225880+120 I1182384A1848      LEVEL: Severe 
PID     : 1421654              TID  : 25962       PROC : db2sysc 
0 
INSTANCE: db2inst1              NODE : 000         DB   : DBNAME 
APPHDL  : 0-262                APPID: 
192.168.1.1.4032.1010182147 
AUTHID  : INSTOWNER 
EDUID   : 25962                EDUNAME: db2agent (DBNAME) 0 
FUNCTION: DB2 UDB, SQO Memory Management, 
sqloDiagnoseFreeBlockFailure, probe:10 
MESSAGE : Possible memory corruption detected. 
DATA #1 : ZRC, PD_TYPE_ZRC, 4 bytes 
0x820F0002 
DATA #2 : Corrupt block address, PD_TYPE_CORRUPT_BLK_PTR, 8 
bytes 
0x07000000e0208020 
DATA #3 : Block header, PD_TYPE_BLK_HEADER, 24 bytes 
0x07000000E0208008 : FAB0 7000 000E 0200 0000 0000 0000 0000 
..p............. 
0x07000000E0208018 : 0700 0000 E020 80A8 
..... .. 
DATA #4 : Data header, PD_TYPE_BLK_DATA_HEAD, 48 bytes 
0x07000000E0208020 : 0000 0000 0000 0040 0000 0000 0000 0000 
.......@........ 
0x07000000E0208030 : 0000 0010 0000 0D00 0000 0000 0000 0000 
................ 
0x07000000E0208040 : 0100 0000 0000 0000 DB2C AFE8 0000 0038 
.........,.....8 
CALLSTCK: 
  [0] 0x0900000012970948 pdLog + 0xD4 
  [1] 0x090000000F360D64 
@79@sqloDiagnoseFreeBlockFailure__FP8SMemFBlk + 0x150 
  [2] 0x0900000012AC53FC sqlofmblkEx + 0x90 
  [3] 0x090000000EB15B78 
sqlrl_userTempDrop__FP8sqlrr_cbP19sqlrl_userTempEntryPUciT3T4UsT 
7T4 
+ 0xC30 
  [4] 0x0900000010D7F0B0 
sqlrl_userTempDropAll__FP8sqlrr_cbP16sqlr_usertemp_cb + 0x1C4 
  [5] 0x0900000010D7E8A8 
sqlrl_userTempDropAll__FP8sqlrr_cbP16sqlr_usertemp_cb@glueB8A + 
0x74 
  [6] 0x09000000105F9AF8 
sqlrr_cleanup_tran_before_DPS__FP8sqlrr_cbiN62PiT9b + 0x200 
  [7] 0x090000001270EA94 
sqlrxend__FP8sqlrr_cbP15SQLXA_CALL_INFOi + 0x638 
  [8] 0x0900000012727868 sqlrr_xend__FP14db2UCinterface + 0x1D0 
  [9] 0x0900000010AC5D54 sqljsSyncEnd__FP14db2UCinterface + 
0x5F8 
 
2010-10-18-23.47.52.234609+120 I1184233A461       LEVEL: Severe 
PID     : 1421654              TID  : 25962       PROC : db2sysc 
0 
INSTANCE: db2inst1              NODE : 000         DB   : DBNAME 
APPHDL  : 0-262                APPID: 
192.168.1.1.4032.1010182147 
AUTHID  : INSTOWNER 
EDUID   : 25962                EDUNAME: db2agent (DBNAME) 0 
FUNCTION: DB2 UDB, SQO Memory Management, 
sqloDiagnoseFreeBlockFailure, probe:30 
DATA #1 : String, 12 bytes 
Double free. 
 
 
 
2. In db2diag.log you can see following entries: 
 
2011-10-26-10.38.43.975406+120 I25272923A530      LEVEL: Error 
PID     : 32702658             TID  : 28432       PROC : db2sysc 
0 
INSTANCE: db2inst11             NODE : 000         DB   : DBNAME 
APPHDL  : 0-60658              APPID: GA91083E.O12D.111026073339 
AUTHID  : INSTOWNER 
EDUID   : 28432                EDUNAME: db2agent (DBNAME) 0 
FUNCTION: DB2 UDB, catalog services, sqlrl_userTempIUD, probe:40 
MESSAGE : entry not found tid = 
DATA #1 : Hexdump, 2 bytes 
0x070000014AB35350 : 000F 
.. 
 
==============> TID = 15 
 
2011-10-26-10.38.43.975678+120 I25273454A530      LEVEL: Error 
PID     : 32702658             TID  : 28432       PROC : db2sysc 
0 
INSTANCE: db2inst11             NODE : 000         DB   : DBNAME 
APPHDL  : 0-60658              APPID: GA91083E.O12D.111026073339 
AUTHID  : INSTOWNER 
EDUID   : 28432                EDUNAME: db2agent (DBNAME) 0 
FUNCTION: DB2 UDB, catalog services, sqlrl_userTempIUD, probe:40 
MESSAGE : entry not found fid = 
DATA #1 : Hexdump, 2 bytes 
0x070000014AB35352 : 0008 
.. 
 
==============> FID = 8 
 
 
2011-10-26-10.38.44.106795+120 I25336469A510      LEVEL: Severe 
PID     : 32702658             TID  : 28432       PROC : db2sysc 
0 
INSTANCE: db2inst11             NODE : 000         DB   : DBNAME 
APPHDL  : 0-60658              APPID: GA91083E.O12D.111026073339 
AUTHID  : INSTOWNER 
EDUID   : 28432                EDUNAME: db2agent (DBNAME) 0 
FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary 
logging 
fu, probe:0 
MESSAGE : SQLD_TCB: 
DATA #1 : String, 37 bytes 
Temp Table(15:8)=SESSION .TMP_TABLENAME 
 
 
NOTE: In your case:  TID = 15 , FID = 8 , Temp 
Table(15:8)=SESSION .TMP_TABLENAME will be different 
 
 
3. Following db2diag.log entry might be noticed: 
 
2012-08-27-14.24.23.965613+120 I56366175A1620     LEVEL: Severe 
(Origin) 
PID     : 24772858             TID  : 3432        PROC : db2sysc 
0 
INSTANCE: redacted              NODE : 000         DB   : 
redacted 
APPHDL  : 0-56246              APPID: 
140.104.235.209.51796.120827081 
AUTHID  : TLAPP 
EDUID   : 3432                 EDUNAME: db2agent (redacted) 0 
FUNCTION: DB2 UDB, data management, undoCreate, probe:2695 
MESSAGE : ZRC=0x87040055=-2029780907=SQLD_PRGERR "Unknown 
PROGRAM ERROR" 
          DIA8576C A data management services programming error 
occurred. 
DATA #1 : String, 51 bytes 
TCB fix count != 1 when undoing create data object! 
DATA #2 : Hexdump, 8 bytes 
0x0700000066AF3C80 : 0000 0000 0000 0002 
........ 
CALLSTCK: 
  [0] 0x0900000004D481D4 pdLog + 0xD4 
  [1] 0x0900000001E6D158 
@102@undoCreate__FP8sqeAgentP8SQLD_TCBPiP16SQLB_OBJECT_DESCP20SQ 
LD_TABLE_OBJECT_LRUlP9SQLP_LSN8 + 0x370 
  [2] 0x0900000001E66980 
sqldomUndo__FP8sqeAgentP10SQLDOM_LRHP9SQLP_LSN8sP15SQLD_RECOV_IN 
FO + 0x8DC 
  [3] 0x0900000002517170 
sqldmund__FP8sqeAgentP9SQLP_LSN8PcUisT4P8SQLP_TIDP15SQLD_RECOV_I 
NFO + 0x1F8 
  [4] 0x0900000004ECCE10 
sqlptudo__FP8sqeAgentPUlP15SQLD_RECOV_INFOP11SQLP_TENTRY + 0x1EC 
  [5] 0x0900000004ECCAB4 sqlptud1__FP8sqeAgentUl + 0x40 
  [6] 0x0900000004ECF800 
sqlpxrbk__FP8sqeAgentP15SQLXA_CALL_INFOPiP9SQLP_GXIDPP11sqlo_xla 
tch + 0x380 
  [7] 0x0900000004ED01F0 
sqlrrbck_dps__FP8sqlrr_cbiN22P15SQLXA_CALL_INFOP9SQLP_GXIDb + 
0x1A0 
  [8] 0x0900000004ED1AC4 
sqlrrbck__FP8sqlrr_cbiN32P15SQLXA_CALL_INFO + 0x9B4 
  [9] 0x0900000004EDB3E0 
sqlrrbck__FP8sqlrr_cbiN32P15SQLXA_CALL_INFO@glueB4E + 0x90 
 
 
NOTE: The processing code that reports the condition (FixCount 
!=1) is not the process at the root of the issue.  The reporting 
process is only finding that something is not right and having 
no choice but to quit.  There is another process that has a fix 
on this TCB, and it should not at this point. 
 
 
This problem can be observed in v9.7 fp3/3a only.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Users who use DGTT WITH REPLACE on XA connections.           * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description.                                       * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Please upgrade v9.7 fixpack 4 or later.                      * 
****************************************************************
Local Fix:
available fix packs:
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
This problem is first fixed in v9.7 fixpack 4.
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC75978 IC79479 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
23.10.2010
24.05.2011
19.10.2012
Problem solved at the following versions (IBM BugInfos)
9.7.FP4,
9.7.FP5
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.4 FixList
9.7.0.5 FixList