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 IC73633 Status: Closed

INSTANCE CRASH IN DPF ENVIRONMENT IF THERE IS A WRONG OFFSET INPUT TO
METHOD L WHILE DOING A DB2 LOAD WITH ASC SOURCE FILE.

product:
DB2 FOR LUW / DB2FORLUW / 950 - DB2
Problem description:
Regarding DB2 Load operation, one option of load "MODIFIED BY" 
with "METHOD L", specifies the start and end column numbers from 
which to load data. A column number is a byte offset from the 
beginning of a row of data. It is numbered starting from 1. This 
method can only be used with ASC files, and is the only valid 
method for that file type. 
 
In this load command's METHOD L (beginloc endloc), the offset of 
endloc must be greater or equal to beginloc otherwise the load 
operation will be failing gracefully with thus certain invalid 
input. 
 
But in a DPF environment, if there is a invalid input of METHOD 
L (The endloc is less than beginloc) to the column that is part 
of the table's distribution key, the load operation will cause 
the instance crash. Because the load db2lpart EDU (load 
partitioning SA) is handed a string with "negative length", and 
DB2 are missing code that check for this matter. 
 
As db2diag.log reported: 
 
2011-01-12-19.32.02.412374-300 I182007E1756        LEVEL: Severe 
PID     : 7133                 TID  : 183274301792 PROC : 
db2sysc 1 
INSTANCE: myname               NODE : 001          DB   : 
V95MPP2 
APPHDL  : 0-79                 APPID: *N0.myname.110113003126 
AUTHID  : MYNAME 
EDUID   : 117                  EDUNAME: db2lpart 1 
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 
0x0000002ac4d94000 
DATA #3 : Block header, PD_TYPE_BLK_HEADER, 24 bytes 
0x0000002AC4D93FE8 : 0000 0000 0000 0000 0000 0000 0000 0000 
................ 
0x0000002AC4D93FF8 : 0000 0000 0000 0000 
........ 
DATA #4 : Data header, PD_TYPE_BLK_DATA_HEAD, 48 bytes 
0x0000002AC4D94000 : 0000 0000 0000 0000 A040 D9C4 2A00 0000 
.........@..*... 
0x0000002AC4D94010 : 0000 0000 0000 0000 0000 0000 0000 0000 
................ 
0x0000002AC4D94020 : 0000 0000 0000 0000 8B4D AC02 0000 B0FA 
.........M...... 
CALLSTCK: 
  [0] 0x0000002A9684EA93 pdLog + 0xD7 
  [1] 0x0000002A97ED8C0D 
/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1 + 
0x2756C0D 
  [2] 0x0000002A98A7C4A5 sqlofmblkEx + 0x8B9 
  [3] 0x0000002A968387EC _Z9sqlofmblkPv + 0x6 
  [4] 0x0000002A96DD8DB1 _ZN13sqluCLinkList8bCleanUpEv + 0x1F 
  [5] 0x0000002A985715B4 _ZN17sqluCSerializable11iDeallocateEv + 
0x140 
  [6] 0x0000002A987C273A 
_ZN27sqlusCPartRequestDescriptor11iDeallocateEv + 0x6 
  [7] 0x0000002A987C65F1 _ZN18sqlusCPartSubAgent8iCleanUpEv + 
0x3C1 
  [8] 0x0000002A987DAD4A _Z19sqlusSubAgentRouterP8sqeAgenti + 
0x28E 
  [9] 0x0000002A973310E0 _Z20sqleSubRequestRouterP8sqeAgentPjS1_ 
+ 0x324 
 
2011-01-12-19.32.02.421800-300 E183764E953         LEVEL: 
Critical 
PID     : 7133                 TID  : 183274301792 PROC : 
db2sysc 1 
INSTANCE: myname               NODE : 001          DB   : 
V95MPP2 
APPHDL  : 0-79                 APPID: *N0.myname.110113003126 
AUTHID  : MYNAME 
EDUID   : 117                  EDUNAME: db2lpart 1 
FUNCTION: DB2 UDB, SQO Memory Management, 
sqloDiagnoseFreeBlockFailure, probe:10 
MESSAGE : ADM14001C  An unexpected and critical error has 
occurred: "Panic". 
          The instance may have been shutdown as a result. 
"Automatic" FODC 
          (First Occurrence Data Capture) has been invoked and 
diagnostic 
          information has been recorded in directory 
 
"/home/hotel20/myname/sqllib/db2dump/FODC_Panic_2011-01-12-19.32 
.02.4 
          21661/". Please look in this directory for detailed 
evidence about 
          what happened and contact IBM support if necessary to 
diagnose the 
          problem. 
 
2011-01-12-19.32.02.429430-300 E184718E1269        LEVEL: Severe 
PID     : 7133                 TID  : 183274301792 PROC : 
db2sysc 1 
INSTANCE: myname               NODE : 001          DB   : 
V95MPP2 
APPHDL  : 0-79                 APPID: *N0.myname.110113003126 
AUTHID  : MYNAME 
EDUID   : 117                  EDUNAME: db2lpart 1 
FUNCTION: DB2 UDB, SQO Memory Management, 
sqloDiagnoseFreeBlockFailure, probe:999 
MESSAGE : Memory validation failure, diagnostic file dumped. 
DATA #1 : String, 21 bytes 
Invalid block header. 
DATA #2 : File name, 37 bytes 
7133.183274301792.mem_diagnostics.txt 
CALLSTCK: 
  [0] 0x0000002A9684EA93 pdLog + 0xD7 
  [1] 0x0000002A97EDE3EA 
_ZN13SQLO_MEM_POOL32diagnoseMemoryCorruptionAndCrashEmPKc + 
0x200 
  [2] 0x0000002A97ED8E62 
/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1 + 
0x2756E62 
  [3] 0x0000002A98A7C4A5 sqlofmblkEx + 0x8B9 
  [4] 0x0000002A968387EC _Z9sqlofmblkPv + 0x6 
  [5] 0x0000002A96DD8DB1 _ZN13sqluCLinkList8bCleanUpEv + 0x1F 
  [6] 0x0000002A985715B4 _ZN17sqluCSerializable11iDeallocateEv + 
0x140 
  [7] 0x0000002A987C273A 
_ZN27sqlusCPartRequestDescriptor11iDeallocateEv + 0x6 
  [8] 0x0000002A987C65F1 _ZN18sqlusCPartSubAgent8iCleanUpEv + 
0x3C1 
  [9] 0x0000002A987DAD4A _Z19sqlusSubAgentRouterP8sqeAgenti + 
0x28E 
 
2011-01-12-19.32.02.469188-300 I185988E553         LEVEL: Error 
PID     : 7133                 TID  : 183274301792 PROC : 
db2sysc 1 
INSTANCE: myname               NODE : 001          DB   : 
V95MPP2 
APPHDL  : 0-79                 APPID: *N0.myname.110113003126 
AUTHID  : MYNAME 
EDUID   : 117                  EDUNAME: db2lpart 1 
FUNCTION: DB2 UDB, base sys utilities, sqleagnt_sigsegvh, 
probe:1 
MESSAGE : Error in agent servicing application with coor_node: 
DATA #1 : Hexdump, 2 bytes 
0x0000002AABC0FA32 : 0000 
.. 
 
... 
 
and the associated stack trace reported: 
 
<StackTrace> 
-----FUNC-ADDR---- ------FUNCTION + OFFSET------ 
0x0000002A9BB4C0E7 ossDumpStackTraceEx + 0x01f7 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2osse.so. 
1) 
0x0000002A9BB47BBA _ZN11OSSTrapFile6dumpExEmiP7siginfoPvm + 
0x00b4 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2osse.so. 
1) 
0x0000002A9BB47C81 _ZN11OSSTrapFile4dumpEmiP7siginfoPv + 0x0009 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2osse.so. 
1) 
0x0000002A97EA3C19 sqlo_trce + 0x0425 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A97EE5D24 sqloEDUCodeTrapHandler + 0x0138 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A95679260 address: 0x0000002A95679260 ; dladdress: 
0x0000002A9566D000 ; offset in lib: 0x000000000000C260 ; 
                (/lib64/tls/libpthread.so.0) 
0x0000002A97ED8A66 sqloCrashOnCriticalMemoryValidationFailure + 
0x001a 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A97EDE3EF 
_ZN13SQLO_MEM_POOL32diagnoseMemoryCorruptionAndCrashEmPKc + 
0x0205 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A97ED8E62 address: 0x0000002A97ED8E62 ; dladdress: 
0x0000002A95782000 ; offset in lib: 0x0000000002756E62 ; 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A98A7C4A5 sqlofmblkEx + 0x08b9 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A968387EC _Z9sqlofmblkPv + 0x0006 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A96DD8DB1 _ZN13sqluCLinkList8bCleanUpEv + 0x001f 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A985715B4 _ZN17sqluCSerializable11iDeallocateEv + 
0x0140 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A987C273A 
_ZN27sqlusCPartRequestDescriptor11iDeallocateEv + 0x0006 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A987C65F1 _ZN18sqlusCPartSubAgent8iCleanUpEv + 0x03c1 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A987DAD4A _Z19sqlusSubAgentRouterP8sqeAgenti + 0x028e 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A973310E0 _Z20sqleSubRequestRouterP8sqeAgentPjS1_ + 
0x0324 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A973307B5 _Z21sqleProcessSubRequestP8sqeAgent + 0x005f 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A96941765 _ZN8sqeAgent6RunEDUEv + 0x04b7 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A96E4CE3D _ZN9sqzEDUObj9EDUDriverEv + 0x006d 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A96E4CDCD _Z10sqlzRunEDUPcj + 0x0009 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A96C32E06 sqloEDUEntry + 0x02ea 
 
(/view/db2_v95fp5_linuxamd64_s091123/vbs/INST/lib/libdb2e.so.1) 
0x0000002A95673919 address: 0x0000002A95673919 ; dladdress: 
0x0000002A9566D000 ; offset in lib: 0x0000000000006919 ; 
                (/lib64/tls/libpthread.so.0) 
0x0000002A9C497573 __clone + 0x0043 
                (/lib64/tls/libc.so.6) 
</StackTrace> 
 
If striptblanks or striptnulls option is used in the load 
command, then there may not be memory validation failure error 
entries in db2diag.log, but it will still show the db2lpart EDU 
crashing, and the stack trace may look like 
 
<StackTrace> 
-------Frame------ ------Function + Offset------ 
0x090000000EB1FE10 
iPartitionData__18sqlusCPartSubAgentFP16sqluIMediaListIOT1 + 
0x3E4 
0x090000000E8BFD28 iRun__18sqlusCPartSubAgentFv + 0x96C 
0x090000000D7A8558 sqlusSubAgentRouter__FP8sqeAgenti + 0x8CC 
0x090000000D79C478 sqleSubRequestRouter__FP8sqeAgentPUiT2 + 
0x1008 
0x090000000D79AE58 sqleProcessSubRequest__FP8sqeAgent + 0x124 
0x090000000EA46D04 RunEDU__8sqeAgentFv + 0x300 
0x090000000DF79FCC EDUDriver__9sqzEDUObjFv + 0x78 
0x090000000DD14ED0 sqlzRunEDU__FPcUi + 0xC 
0x090000000DD14F18 sqloEDUEntry + 0x4 
</StackTrace>
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* Regarding DB2 Load operation, one option of load "MODIFIED   * 
* BY"with "METHOD L", specifies the start and end column       * 
* numbers from which to load data. A column number is a byte   * 
* offset from the beginning of a row of data. It is numbered   * 
* starting from 1. This method can only be used with ASC       * 
* files, and is the only valid method for that file type.      * 
*                                                              * 
* In this load command's METHOD L (beginloc endloc), the       * 
* offset of endloc must be greater or equal to beginloc        * 
* otherwise the load operation will be failing gracefully with * 
* thus certain invalid input.                                  * 
*                                                              * 
* But in a DPF environment, if there is a invalid input of     * 
* METHOD L (The endloc is less than beginloc) to the column    * 
* that is part of the table's distribution key, the load       * 
* operation will cause the instance crash. Because the load    * 
* db2lpart EDU (load partitioning SA) is handed a string with  * 
* "negative length", and DB2 are missing code that check for   * 
* this matter.                                                 * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 Version 9.5 Fix Pack 8                        * 
*                                                              * 
* OR                                                           * 
*                                                              * 
* Correcting usage of the db2 load option METHOD L             * 
* (beginloc  endloc), the offset of endloc must be greater or  * 
* equal to beginloc.                                           * 
****************************************************************
Local Fix:
To correct usage of the db2 load option METHOD L (beginloc 
endloc), the offset of endloc must be greater or equal to 
beginloc.
available fix packs:
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 10 for Linux, UNIX, and Windows

Solution
Problem was first fixed in DB2 Version 9.5 Fix Pack 8
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC75339 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
04.01.2011
03.04.2011
03.04.2011
Problem solved at the following versions (IBM BugInfos)
9.5.FP8
Problem solved according to the fixlist(s) of the following version(s)
9.5.0.8 FixList