Hello again ! On mac os x some time ago I was getting segfaults here and tought that it was caused by the way os x manage memory but it doesn't seem correct.
The error happens on this code that is called before call sqlite3_close: ??????? sqlite3 *db = sdb->db; ??????? sqlite3_stmt* statement = NULL; ??????? int count = 0; ??????? while ((statement = sqlite3_next_stmt(db, statement))) ??????? { ??????? ??? //do no close statements because garbage collector will do it ??????? ??? //on MacOSX we get segfaults finalizing statements here ??????????? printf("sq_sqlite3_close_release:stmt:%s\n", sqlite3_sql(statement)); ??????????? sqlite3_finalize(statement); ??????????? count++; ??????? } ??????? if (count) return sq_throwerror(v, _SC("closing database with %d statements not closed."), count); ? > Fri Sep 04 2015 4:18:01 pm CEST CEST from "Domingo Alvarez Duarte" ><sqlite-mail at dev.dadbiz.es> Subject: Re: [sqlite] SQLite3 trunk error with >old database with fts3/4 > > Hello ! > > I'm not sure where the problem is but this code worked without any problem > with previous sqlite3. > > Here is a backtrace of a segfault using gdb (the line numbers will not >match > standard sqlite3.c because I have some custom extensions): > > enter mutex 0x7fffe405f570 (1213663847) with nRef=1919906927 > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x7ffff3c70700 (LWP 22336)] > 0x0000000000479d85 in freeEphemeralFunction (db=0x7fffe4000078, > ??? pDef=0xaaaaaaaaaaaaaaaa) > ??? at sqlite3.c:66869 > 66869??? ? if( ALWAYS(pDef) && (pDef->funcFlags & SQLITE_FUNC_EPHEM)!=0 > ){ > (gdb) bt > #0? 0x0000000000479d85 in freeEphemeralFunction (db=0x7fffe4000078, > ??? pDef=0xaaaaaaaaaaaaaaaa) > ??? at sqlite3.c:66869 > #1? 0x0000000000479e39 in freeP4 (db=db at entry=0x7fffe4000078, > ??? p4type=-1431655766, p4=0x7fffe4181588) > ??? at sqlite3.c:66884 > #2? 0x0000000000479f14 in vdbeFreeOpArray (db=0x7fffe4000078, > ??? aOp=0x7fffe40df508, nOp=<optimised out>) > ??? at sqlite3.c:66933 > #3? 0x000000000047a01c in sqlite3VdbeClearObject (db=0x7fffe4000078, > ??? p=0x7fffe408ac88) at sqlite3.c:68920 > #4? 0x000000000047a0c3 in sqlite3VdbeDelete (p=0x7fffe408ac88) > ??? at sqlite3.c:68941 > #5? 0x00000000004e6044 in sqlite3VdbeFinalize (p=0x7fffe408ac88) > ??? at sqlite3.c:68861 > #6? 0x00000000004e60cd in sqlite3_finalize (pStmt=0x7fffe408ac88) > ??? at sqlite3.c:70500 > > ? > >>Fri Sep 04 2015 4:05:12 pm CEST CEST from "Dan Kennedy" >> <danielk1977 at gmail.com> Subject: Re: [sqlite] SQLite3 trunk error with old >> database with fts3/4 >> >> On 09/04/2015 07:35 PM, Domingo Alvarez Duarte wrote: >> >> >>>Hello ! >>> >>> After fix the index issues using an old sqlite3 executable (the trunk >>> refuse >>> to work on indexes created with single quotes on field names) I'm getting >>> ocasionaly memory errors when using fts3/4 searches, see error below: >>> >>> free(): corrupted unsorted chunks: 0x00007fa3a01073a0 >>> >>> >> Is this error on the trunk or with the old version? >> >> If it's on the trunk, is the error reproducible using the sqlite3 shell >> tool? >> >> If not, what does valgrind have to say about the app? >> >> Thanks, >> Dan. >> >> _______________________________________________ >> sqlite-users mailing list >> sqlite-users at mailinglists.sqlite.org >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >> >> >> >> >> >> > ? > _______________________________________________ > sqlite-users mailing list > sqlite-users at mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > ?