Hi ?? ? ?I?used?SQLite(SQLITE_VERSION_NUMBER?3008011)?in?production?environment?on?Android?platform.?SQLite?was?built?with?encryption?extension?which?implemented?by?myself.?Recently?there?were?crash?cases?for?got?signal?11,?it?seemed?that?SQLite?has?visited?invalid?memory?address.?The?code?line?was?"id->pMethods->xWrite(id,?pBuf,?amt,?offset)",?actually?the?value?of?id?was?00004c77?and?pMethods?was?NULL. ? ? ?SQLite?runned?with?multithread?mode?and?the?journal?mode?was?DELELE.?There?were?1?write?thread?and?3?read?threads,?each?of?thread?has?own?DB?hand?which?can?not?be?passed?between?threads.?Threads?was?controlled?by?RWLOCK,?so?there?should?be?only?1?write?thread?or?only?read?threads?can?visit?DB?simultaneously.?I?got?confused?why?did?"id"?and?"pMethods"?became?an?invalid?address.I?tried?to?reproduce?the?crash?but?failed. ? ? ?By?the?way,?when?SQLite?runned?with?one?write?thread?and?only?one?read?thread,?there?were?no?crash?cases. ? Looking?forward?your?help,thanks!
Crash?stack?as?follows: sqlite3OsWrite jni/sqlitecrypto/sqlite3/sqlite3.c:16651 syncJournal jni/sqlitecrypto/sqlite3/sqlite3.c:46501 sqlite3PagerCommitPhaseOne jni/sqlitecrypto/sqlite3/sqlite3.c:48567 sqlite3BtreeCommitPhaseOne jni/sqlitecrypto/sqlite3/sqlite3.c:57490 vdbeCommit jni/sqlitecrypto/sqlite3/sqlite3.c:67962 sqlite3VdbeExec jni/sqlitecrypto/sqlite3/sqlite3.c:75110 sqlite3Step jni/sqlitecrypto/sqlite3/sqlite3.c:70740 sqlite3_exec My?Compiler?parameters?as?follows: -DSQLITE_HAS_CODEC -DSQLITE_THREADSAFE=2 -DNDEBUG=1 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_POWERSAFE_OVERWRITE=1 -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576