Hi, On Debian and amd64 architecture SQLite3 has a severe problem. If I just start it, I can create a simple table like "create table a(b int);". However when I set "export MALLOC_CHECK_=1" then the mentioned table creation reports: *** glibc detected *** sqlite3: free(): invalid pointer: 0x00007fba85c30560 ***
If MALLOC_CHECK_ set to 2 then it just aborts with a zero length database and a database-journal being 512 bytes long. gdb reports the following related backtrace: #2 0x00007ffff75ddae0 in malloc_printerr (action=2, str=0x7ffff76b186a "free(): invalid pointer", ptr=0x2399) at malloc.c:6288 #3 0x00007ffff7b4d070 in sqlite3_free (p=0x555555791e10) at sqlite3.c:19059 #4 sqlite3_free (p=0x555555791e10) at sqlite3.c:19051 #5 0x00007ffff7bb1312 in sqlite3VdbeExec (p=0x555555793e10) at sqlite3.c:69790 #6 0x00007ffff7b9a731 in sqlite3Step (p=0x555555793e10) at sqlite3.c:63163 #7 sqlite3_step (pStmt=0x555555793e10) at sqlite3.c:63236 I tried to set a breakpoint on sqlite3VdbeExec and see what's going on. Then p is (Vdbe *) 0x5555557950c0 and its db part (print *p->db): {pVfs = 0x7ffff7dda2a0, pVdbe = 0x5555557950c0, pDfltColl = 0x5555557772b0, mutex = 0x0, aDb = 0x555555780c80, nDb = 2, flags = 1744833024, lastRowid = 0, openFlags = 6, errCode = 0, errMask = 255, autoCommit = 1 '\001', temp_store = 0 '\000', mallocFailed = 0 '\000', dfltLockMode = 0 '\000', nextAutovac = -1 'ΓΏ', suppressErr = 0 '\000', vtabOnConflict = 0 '\000', isTransactionSavepoint = 0 '\000', nextPagesize = 0, magic = 2687084183, nChange = 0, nTotalChange = 0, aLimit = {1000000000, 1000000000, 2000, 1000, 500, 25000, 127, 10, 50000, 999, 1000}, init = {newTnum = 1, iDb = 0 '\000', busy = 1 '\001', orphanTrigger = 0 '\000'}, activeVdbeCnt = 1, writeVdbeCnt = 0, vdbeExecCnt = 1, nExtension = 0, aExtension = 0x0, xTrace = 0, pTraceArg = 0x0, xProfile = 0, pProfileArg = 0x0, pCommitArg = 0x0, xCommitCallback = 0, pRollbackArg = 0x0, xRollbackCallback = 0, pUpdateArg = 0x0, xUpdateCallback = 0, xWalCallback = 0x7ffff7bbbc70 <sqlite3WalDefaultHook>, pWalArg = 0x3e8, xCollNeeded = 0, xCollNeeded16 = 0, pCollNeededArg = 0x0, pErr = 0x555555777380, zErrMsg = 0x0, zErrMsg16 = 0x0, u1 = {isInterrupted = 0, notUsed1 = 0}, lookaside = { sz = 128, bEnabled = 0 '\000', bMalloced = 1 '\001', nOut = 0, mxOut = 0, anStat = {0, 0, 0}, pFree = 0x555555791ac0, pStart = 0x555555782140, pEnd = 0x555555791b40}, xAuth = 0, pAuthArg = 0x0, xProgress = 0, pProgressArg = 0x0, nProgressOps = 0, nVTrans = 0, aModule = {htsize = 0, count = 5, first = 0x555555782100, ht = 0x0}, pVtabCtx = 0x0, aVTrans = 0x0, pDisconnect = 0x0, aFunc = {a = {0x0, 0x5555557819f0, 0x0, 0x555555781d50, 0x555555781e30, 0x0, 0x0, 0x555555781c90, 0x555555781f60, 0x555555781fd0, 0x0, 0x555555791b50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5555557810b0}}, aCollSeq = {htsize = 0, count = 3, first = 0x555555780df0, ht = 0x0}, busyHandler = {xFunc = 0, pArg = 0x0, nBusy = 0}, aDbStatic = {{zName = 0x7ffff7bbdafe "main", pBt = 0x555555780e30, inTrans = 0 '\000', safety_level = 3 '\003', pSchema = 0x555555780f90}, {zName = 0x7ffff7bbd0ca "temp", pBt = 0x0, inTrans = 0 '\000', safety_level = 1 '\001', pSchema = 0x555555781020}}, pSavepoint = 0x0, busyTimeout = 0, nSavepoint = 0, nStatement = 0, nDeferredCons = 0, pnBytesFreed = 0x0, pBlockingConnection = 0x0, pUnlockConnection = 0x0, pUnlockArg = 0x0, xUnlockNotify = 0, pNextBlocked = 0x0} After four continue it aborts with the backtrace mentioned on top. The compilation options (CFLAGS) were: -O2 -fno-strict-aliasing -DSQLITE_SECURE_DELETE -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_SOUNDEX=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_OMIT_LOOKASIDE=1 -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 Removing -DSQLITE_OMIT_LOOKASIDE=1 helps a bit, the basic table creation works. It still doesn't pass the SQLite3 tests during compilation of bogofilter 1.2.2+dfsg1 . The Debian bugreport #665363 [1] states that 3.7.9 was working and the problem first noted in 3.7.10 . What should I do to help it being fixed? Would you need *p->db _right before_ the abort? Regards, Laszlo/GCS [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=665363 _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users