Looks like the same issue as reported here: http://www.sqlite.org/cvstrac/tktview?tn=3869
Fix will be included in 3.6.15. Or just grab the patch here if you're in a hurry: http://www.sqlite.org/cvstrac/chngview?cn=6666 Dan. On May 27, 2009, at 12:12 PM, Brian Dantes wrote: > We've run into an alignment issue in SQLite 3.6.14.2 which only > seems to cause a problem under Solaris Sparc in our testing. > > Failure narrowed down to: > src/rowset.c:186 > pEntry->v = rowid > pEntry is 0xXXXXX4 > __alignof(*pEntry) is 8 (because of an i64) > > However sizeof(RowSet) is 28 (and 28%8 = 4), and pEntry starts 1 > RowSet > after freshly allocated, 8-bytes aligned) memory (see > sqlite3RowSetInit) > So it crashes. This is definitely a bug in sqlite. > > Suggested patch that seems to work for us: > > ===== sqlite/src/rowset.c 1.1 vs edited ===== > --- 1.1/sqlite/src/rowset.c 2009-05-19 14:07:53 -07:00 > +++ edited/sqlite/src/rowset.c > 2009-05-26 15:43:56 -07:00 > @@ -127,6 +127,7 @@ > */ > RowSet *sqlite3RowSetInit(sqlite3 *db, void *pSpace, unsigned int N){ > RowSet *p; > + int n; > assert( N >= sizeof(*p) ); > p = pSpace; > p->pChunk = 0; > @@ -134,8 +135,14 @@ > p->pEntry = 0; > p->pLast = 0; > p->pTree = 0; > - p->pFresh = (struct RowSetEntry*)&p[1]; > - p->nFresh = (u16)((N - sizeof(*p))/sizeof(struct RowSetEntry)); > + /* Alignment must be a power of 2, and at least equal to > + __alignof(struct RowSetEntry) */ > + #define MIN_ALIGNMENT 8 > + n = sizeof(*p); > + /* Round up to next alignment */ > + n = (n - 1) / MIN_ALIGNMENT * MIN_ALIGNMENT + MIN_ALIGNMENT; > + p->pFresh = (struct RowSetEntry*)((char *)p + n); > + p->nFresh = (u16)((N - n)/sizeof(struct RowSetEntry)); > p->isSorted = 1; > p->iBatch = 0; > return p; > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users