I have this trivial program:
int main(int argc, char **argv)
{
lsm_db* db;
lsm_new(lsm_default_env(), &db);
lsm_open(db, "lsm");
lsm_cursor *csr;
lsm_csr_open(db, &csr);
lsm_csr_seek(csr, "a", 1, LSM_SEEK_GE);
lsm_csr_seek(csr, "a", 1, LSM_SEEK_EQ);
lsm_csr_seek(csr, "a", 1, LSM_SEEK_EQ);
lsm_csr_close(csr);
lsm_begin(db, 1);
lsm_insert(
db, "abc", 3,
"def", 3
);
lsm_commit(db, 0);
lsm_close(db);
}
And I run it under valgrind with --leak-check=full it reports this:
==1741== 1,008 (112 direct, 896 indirect) bytes in 1 blocks are definitely lost
in loss record 4 of 4
==1741==at 0x4C28BED: malloc (vg_replace_malloc.c:263)
==1741==by 0x413D4B: lsmPosixOsMalloc (lsm_unix.c:472)
==1741==by 0x4046C5: lsmMallocZero (lsm_mem.c:50)
==1741==by 0x404730: lsmMallocZeroRc (lsm_mem.c:69)
In a more complex program, lsm seems to leak memory to no bounds, causing my
application.
Are bug reports against LSM even helpful?
Charles
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users