On Fri, Jun 13, 2014 at 6:08 PM, Maxim Khitrov <m...@mxcrypt.com> wrote:
> Hi all, > > I don't think this is a problem with sqlite, but I'm also not sure > what external behavior could trigger this, so I'm looking for help > from someone more familiar with the sqlite internals. > > One of the users of my SQLite binding for Go is reporting a > non-deterministic segfault in the 3.8.5 amalgamation on line 20086, > which is "db->lookaside.pFree = pBuf->pNext;" in sqlite3DbMallocRaw: > > https://github.com/mxk/go-sqlite/issues/6 > > The segfault always seems to happen at the same place, but it happens > infrequently, and the actual call sequence may be different. There > don't seem to be any concurrent calls to any sqlite functions, yet > building the package with either SQLITE_THREADSAFE=1 (instead of 2) or > SQLITE_OMIT_LOOKASIDE resolves, or maybe just hides the issue. > > This feels like a concurrency problem, but I can't reproduce it or > figure out the source. Is it possible to corrupt the lookaside > allocator in some other way? > I recommend compiling with -DSQLITE_OMIT_LOOKASIDE and then running your test in valgrind (or the equivalent). That will very likely find the problem. I'm guessing this is a use-after-free issue. -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users