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

Reply via email to