I'm running SQLite 3.6.17 (almagamation source) on linux Ubuntu 8.04
and i got a strange SIGSEGV (see stack below).
The strange thing is: the pPager parameter to sqlite3PagerAcquire
function is NULL but right above the stack, its value seems to be
correct.
Any help is appreciated.
Please, check the debugger information:
(gdb) where
#0 0xb7e40e79 in sqlite3PagerAcquire (pPager=0x0, pgno=10,
ppPage=0xb47d24c0, noContent=0) at extsrc/sqlite/src/sqlite3.c:34349
#1 0xb7e44797 in btreeGetPage (pBt=0x8970528, pgno=10,
ppPage=0xb262810c, noContent=0) at extsrc/sqlite/src/sqlite3.c:38391
#2 0xb7e44871 in getAndInitPage (pBt=0x8970528, pgno=10,
ppPage=0xb262810c) at extsrc/sqlite/src/sqlite3.c:38442
#3 0xb7e47a3e in moveToRoot (pCur=0xb26280b0) at extsrc/sqlite/src/
sqlite3.c:40920
#4 0xb7e47ea5 in sqlite3BtreeMovetoUnpacked (pCur=0xb26280b0,
pIdxKey=0xb47d27e8, intKey=0, biasRight=0, pRes=0xb47d27dc) at extsrc/
sqlite/src/sqlite3.c:41137
#5 0xb7e5b19b in sqlite3VdbeExec (p=0xb2627a58) at extsrc/sqlite/src/
sqlite3.c:54136
#6 0xb7e5500b in sqlite3Step (p=0xb2627a58) at extsrc/sqlite/src/
sqlite3.c:49497
#7 0xb7e55213 in sqlite3_step (pStmt=0xb2627a58) at extsrc/sqlite/src/
sqlite3.c:49556
#8 0xb7bd7075 in sqlite3_blocking_step (pStmt=0xb2627a58) at extsrc/
apr-util/dbd/apr_dbd_sqlite3_v2.c:220
#9 0xb7bd79ab in dbd_sqlite3_query (sql=0x8924e98, nrows=0xb47d2a68,
query=0x8d2b855 "INSERT INTO orderdb.CurrentOrderItem(OrderId,
LineNumber, ItemId, Level, PartCode, OrderedQty, PriceKey) SELECT
OI.OrderId, OI.LineNumber, PI.ItemId, PI.RecursionLevel, PI.PartCode,
NULL, PP.PriceKey "...) at extsrc/apr-util/dbd/apr_dbd_sqlite3_v2.c:477
#10 0xb7f2cff0 in apr_dbd_query (driver=0xb7bdde60, handle=0x8924e98,
nrows=0xb47d2a68, statement=0x8d2b2e0 "DROP TABLE IF EXISTS
temp.TempModifiers;CREATE TEMPORARY TABLE IF NOT EXISTS TempModifiers
AS SELECT OIM.OrderId AS OrderId,OIM.LineNumber AS
LineNumber,PI.PartCode AS ModifiedCode,OIM.PartCode AS Mod"...) at dbd/
apr_dbd.c:311
#11 0x0804eefd in sqlDBExecScrt (mpool=0x8bb4150, pdbconn=0x8924e48,
sqlstmt=0x8d2b2e0 "DROP TABLE IF EXISTS temp.TempModifiers;CREATE
TEMPORARY TABLE IF NOT EXISTS TempModifiers AS SELECT OIM.OrderId AS
OrderId,OIM.LineNumber AS LineNumber,PI.PartCode AS
ModifiedCode,OIM.PartCode AS Mod"..., nRows=0xb47d2a68) at src/kernel/
persistcomp/npersistcommon/npersistcommon.c:251
#12 0x0804d172 in execute_script (pool=0x8bb4150, connpool=0xbfb88410,
connid=0x8bb6090 "30883532-9d9e-11de-aba1-d3df98c78e4e",
stmt_array=0x8bb53a8, timeout=0x8bb60b8 "10000", resp=0xb47d2b28,
szresp=0xb47d2b24) at src/kernel/persistcomp/npersistagent/
npersistagent.c:923
#13 0x0804c0f6 in request_processor (self=0x8904338,
jobctxt=0x8bb4190) at src/kernel/persistcomp/npersistagent/
npersistagent.c:428
#14 0xb7f24cb9 in thread_pool_func (t=0x8904338, param=0x8904150) at
misc/apr_thread_pool.c:276
#15 0xb7f55446 in dummy_worker (opaque=0x8904338) at threadproc/unix/
thread.c:142
#16 0xb79ff50f in start_thread () from /lib/tls/i686/cmov/
libpthread.so.0
#17 0xb7b2e7ee in clone () from /lib/tls/i686/cmov/libc.so.6
(gdb) up
#1 0xb7e44797 in btreeGetPage (pBt=0x8970528, pgno=10,
ppPage=0xb262810c, noContent=0) at extsrc/sqlite/src/sqlite3.c:38391
38391 rc = sqlite3PagerAcquire(pBt->pPager, pgno,
(DbPage**)&pDbPage, noContent);
(gdb) p pBt->pPager
$40 = (Pager *) 0x8941808
(gdb) p pBt->pPager->state
$42 = 1 '\001'
(gdb) p pBt->pPager->tempFile
$43 = 0 '\0'
Additional informations:
- Preprocessor definitions used to build the library:
- SQLITE_THREADSAFE=1
- TEMP_STORE=3
- SQLITE_DEFAULT_CACHE_SIZE=65568
- SQLITE_DEFAULT_TEMP_CACHE_SIZE=65568
- SQLITE_MAX_ATTACHED=30
- SQLITE_ENABLE_COLUMN_METADATA
- SQLITE_ENABLE_UNLOCK_NOTIFY
- uname -a: Linux amerolli-ubuntu 2.6.27-14-generic #1 SMP Tue Aug 18
16:25:45 UTC 2009 i686 GNU/Linux
- I'm using "Unlock Notification Feature" (sqlite3_unlock_notify) as
described in http://www.sqlite.org/unlock_notify.html.
Regards,
Alessandro Merolli.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users