DB2 - Problem description
Problem IT18919 | Status: Closed |
READAHEAD PREFETCHING COULD FIX INDEX RESERVED PAGE AND CAUSED UNPREDICTABLE BEHAVIORS | |
product: | |
DB2 FOR LUW / DB2FORLUW / A50 - DB2 | |
Problem description: | |
DB2 could be locating keys on a reserved page during readahead prefetching. This could happen when the index is under tree structure modification on its root node and a rollback has happened, which could result in an abandoned page. Under this scenario, db2 could be fixing a reserved page other than normal index pages that stores index key records, and perform searching mechanism on the reserved page. As a result, db2 could be behaving unexpectedly, such as bringing db2 down, or even cause memory corruption under extreme case. The following are example stacktraces for the crash: 29 Signal #11 (SIGSEGV): si_addr is 0x0000000000000000, si_code is 0x00000080 (SI_KERNEL:Send by kernel.) ... 77 0x00002B062D3E24DC sqloEDUCodeTrapHandler + 0x02ac 78 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) 79 0x0000003B4660F500 address: 0x0000003B4660F500 ; dladdress: 0x0000003B46600000 ; offset in lib: 0x000000000... 80 (/lib64/libpthread.so.0) 81 0x0000000000427ADA __intel_ssse3_rep_memcpy + 0x206a 82 (db2sysc 0) 83 0x00002B062BB591F5 _Z8sqlickeyP9SQLD_IDEFP8SQLD_KEYS2_ + 0x0085 84 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) 85 0x00002B062BB523D2 _Z26sqliDoReadaheadPrefetchingP7SQLI_CBP28SQLI_READAHEAD_PREFETC H_INFO + 0x0472 86 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) 87 0x00002B062BB50DD5 _Z21sqliReadaheadPrefetchP7SQLI_CBP14SQLI_PAGE_DESCP28SQLI_READA HEAD_PREFETCH_INFO + 0x0... 88 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) 89 0x00002B062BB844F5 address: 0x00002B062BB844F5 ; dladdress: 0x00002B0627243000 ; offset in lib: 0x000000000... 90 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) 91 0x00002B062E450534 _Z8sqlifnxtP7SQLI_CBP11SQLI_SFGLOB + 0x0bb4 92 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) 93 0x00002B062E44B764 _Z7sqlirdkP8sqeAgentP10SQLI_IXPCRP9SQLD_IXCBmP8SQLD_KEYP12SQLI_K EYDATAP9sqli_scanPi + 0x... 94 (/db2/db2bsp/sqllib/lib64/libdb2e.so.1) <StackTrace> [0] 0x090000000BCD87D4 pdLog + 0x2D4 [1] 0x09000000109444F0 sqlifix__FP7SQLI_CBP14SQLI_PAGE_DESCUii + 0xE90 [2] 0x0900000013144C40 sqliCheckThisPageForEndMilestone__FP7SQLI_CBP28SQLI_READAHEAD_PR EFETCH_INFOPP14SQLI_PAGE_DESCT3li + 0x5C0 [3] 0x0900000013148BB8 sqliGetNextReadaheadPrefetchStartPoint__FP7SQLI_CBP28SQLI_READAH EAD_PREFETCH_INFOPP14SQLI_PAGE_DESCT3i + 0x358 [4] 0x0900000013149938 sqliDoReadaheadPrefetching__FP7SQLI_CBP28SQLI_READAHEAD_PREFETCH _INFO + 0x558 [5] 0x090000001314C320 sqliReadaheadPrefetch__FP7SQLI_CBP14SQLI_PAGE_DESCP28SQLI_READAH EAD_PREFETCH_INFO + 0xD80 [6] 0x09000000133ADD58 sqldSeqDetCheck__FUiUsP16SQLB_OBJECT_DESCP16SQLD_SEQDET_INFOT1P8 sqeAgentP7SQLI_CBT1 + 0x318 [7] 0x09000000133AE048 sqliSeqDetCheck__FUiP7SQLI_CBP16SQLD_SEQDET_INFOT1Us + 0x148 [8] 0x09000000133B34DC sqliMoveToNextLeaf__FP7SQLI_CBP12SQLI_KEYDATAi + 0x93C [9] 0x09000000133CFA2C sqlifnxt__FP7SQLI_CBP11SQLI_SFGLOB + 0xD4C [10] 0x090000000C263DE0 sqlirdk__FP8sqeAgentP10SQLI_IXPCRP9SQLD_IXCBUlP8SQLD_KEYP12SQLI_ KEYDATAP9sqli_scanPi + 0x11E0 [11] 0x090000000EC52E60 sqldIndexFetch__FP8SQLD_CCBP8SQLZ_RID + 0x5E0 [12] 0x090000000EC5FC98 sqldRowFetch__FP8sqeAgentP8SQLD_CCBUlT3PP10SQLD_VALUEP8SQLZ_RIDT 3P12SQLD_ID_LISTP9SQLP_LSN8 + 0x1798 [13] 0x09000000137FEA64 sqlriFetchPerm__FP8sqlrr_cbP9sqlri_taol + 0x104 [14] 0x09000000137FEE28 sqlritaSimplePerm__FP8sqlrr_cb + 0x348 [15] 0x09000000138612CC sqlriExecThread__FP8sqlrr_cbP12sqlri_opparm + 0x84C [16] 0x090000001386901C sqlrihsjn__FP8sqlrr_cb + 0x6DC [17] 0x090000000C485328 sqlriExecThread__FP8sqlrr_cbP12sqlri_opparm + 0x848 [18] 0x090000000C487EFC sqlriSectInvoke__FP8sqlrr_cbP12sqlri_opparm + 0x121C [19] 0x0900000017ED7CF0 sqlrr_dss_router__FP8sqlrr_cb + 0xC90 [20] 0x0900000017EDBE50 sqlrr_subagent_router__FP8sqeAgentP12SQLE_DB2RA_T + 0x1D50 [21] 0x090000000C069A7C sqleSubRequestRouter__FP8sqeAgentPUiPUl + 0xE9C [22] 0x090000000C0874AC sqleProcessSubRequest__FP8sqeAgent + 0x34C [23] 0x090000000BFEE12C RunEDU__8sqeAgentFv + 0x38C [24] 0x090000000BFAB7B8 EDUDriver__9sqzEDUObjFv + 0x238 [25] 0x090000000BFABB1C sqlzRunEDU__FPcUi + 0x3C [26] 0x090000000BDE24F8 sqloEDUEntry + 0x778 [27] 0x09000000004F6D30 _pthread_body + 0xF0 [28] 0xFFFFFFFFFFFFFFFC ?unknown + 0xFFFFFFFF | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 10.5 Fix Pack 9. * **************************************************************** | |
Local Fix: | |
This problem can be avoided by disabling readahead prefetching. db2set DB2_READAHEAD_PREFETCH=false followed by db2stop/db2start to pick up this change | |
Solution | |
First fixed in DB2 Version 10.5 Fix Pack 9. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 20.01.2017 27.09.2017 27.09.2017 |
Problem solved at the following versions (IBM BugInfos) | |
9.0. | |
Problem solved according to the fixlist(s) of the following version(s) |