I am aware that ARM64 is not supported, however the library was working with the commits before Feb 20 (366a3ec156601b75afaa34ba253cbdaf1470cae5). Any opinion on what causes this would be greatly appreciated.
The crash happens when the query returns at least one document.(Windows UWP, ARM64 Release build, the Debug build works fine).
I tried to:
- set the sqlite3 library to run single threaded, to set it to use 0 workers.(In case it was this problem malloc()/free() in several threads crahes on Windows - what's wrong?)
- use compilation flags that could have affected this like /MDd, different optimization levels.
Below are a few stack traces obtained during this crash.
App.C.Core.dll!sqlite3MemMalloc(int nByte) Line 23627 C
App.C.Core.dll!mallocWithAlarm(int n, void * * pp) Line 27519 C
App.C.Core.dll!sqlite3Malloc(unsigned __int64 n) Line 27550 C
App.C.Core.dll!dbMallocRawFinish(sqlite3 * db, unsigned __int64 n) Line 27812 C
App.C.Core.dll!sqlite3VdbeMemGrow(sqlite3_value * pMem, int n, int bPreserve) Line 75881 C
App.C.Core.dll!sqlite3VdbeExec(Vdbe * p) Line 87926 C
App.C.Core.dll!sqlite3Step(Vdbe * p) Line 83475 C
App.C.Core.dll!sqlite3_step(sqlite3_stmt * pStmt) Line 83540 C
App.C.Core.dll!SQLite::Statement::executeStep() Line 265 C++
App.C.Core.dll!litecore::SQLiteQueryRunner::fastForward() Line 517 C++
App.C.Core.dll!litecore::SQLiteQuery::createEnumerator(const litecore::Query::Options * options) Line 577 C++
App.C.Core.dll!C4Query::_createEnumerator(const C4QueryOptions * encodedParameters, fleece::slice) Line 106 C++
App.C.Core.dll!C4Query::Enumerator::Enumerator(C4Query * query, const C4QueryOptions * encodedParameters, fleece::slice) Line 132 C++
App.C.Core.dll!C4Query::run(const C4QueryOptions * params, fleece::slice) Line 116 C++
[Inline Frame] App.C.Core.dll!CBLQuery::execute() Line 254 C++
App.C.Core.dll!CBLQuery_Execute(CBLQuery * query, CBLError * outError) Line 51 C++
[Inline Frame] App.C.Core.dll!cbl::Query::execute() Line 152 C++
App.C.Core.dll!operator new(unsigned __int64 size) Line 35 C++
> App.C.Core.dll!litecore::SQLiteQueryRunner::fastForward() Line 510 C++
App.C.Core.dll!litecore::SQLiteQuery::createEnumerator(const litecore::Query::Options * options) Line 577 C++
App.C.Core.dll!C4Query::_createEnumerator(const C4QueryOptions * encodedParameters, fleece::slice) Line 106 C++
App.C.Core.dll!C4Query::Enumerator::Enumerator(C4Query * query, const C4QueryOptions * encodedParameters, fleece::slice) Line 132 C++
App.C.Core.dll!C4Query::run(const C4QueryOptions * params, fleece::slice) Line 116 C++
[Inline Frame] App.C.Core.dll!CBLQuery::execute() Line 254 C++
App.C.Core.dll!CBLQuery_Execute(CBLQuery * query, CBLError * outError) Line 51 C++
[Inline Frame] App.C.Core.dll!cbl::Query::execute() Line 152 C++
App.C.Core.dll!sqlite3_free(void * p) Line 27649 C
App.C.Core.dll!sqlite3VdbeMemGrow(sqlite3_value * pMem, int n, int bPreserve) Line 75881 C
App.C.Core.dll!sqlite3VdbeExec(Vdbe * p) Line 87926 C
App.C.Core.dll!sqlite3Step(Vdbe * p) Line 83475 C
App.C.Core.dll!sqlite3_step(sqlite3_stmt * pStmt) Line 83540 C
App.C.Core.dll!SQLite::Statement::executeStep() Line 265 C++
> App.C.Core.dll!litecore::SQLiteQueryRunner::fastForward() Line 517 C++
App.C.Core.dll!litecore::SQLiteQuery::createEnumerator(const litecore::Query::Options * options) Line 577 C++
App.C.Core.dll!litecore::LiveQuerier::_runQuery::__l2::<lambda>(litecore::DataFile * df) Line 145 C++
[Inline Frame] App.C.Core.dll!litecore::access_lock<litecore::DataFile *,std::recursive_mutex>::useLocked(litecore::LiveQuerier::_runQuery::__l2::void <lambda>(litecore::DataFile *)) Line 138 C++
App.C.Core.dll!litecore::LiveQuerier::_runQuery(litecore::Query::Options options) Line 136 C++
[External Code]
[Inline Frame] App.C.Core.dll!std::_Func_class<void>::operator()() Line 968 C++
App.C.Core.dll!litecore::actor::ThreadedMailbox::safelyCall(const std::function<void __cdecl(void)> & f) Line 223 C++
[External Code]
[Inline Frame] App.C.Core.dll!std::_Func_class<void>::operator()() Line 968 C++
App.C.Core.dll!litecore::actor::ThreadedMailbox::performNextMessage() Line 268 C++
App.C.Core.dll!litecore::actor::Scheduler::task(unsigned int taskID) Line 111 C++