[Date Prev][Date Next]
LMDB: issue with mdb_cursor_del
- To: firstname.lastname@example.org
- Subject: LMDB: issue with mdb_cursor_del
- From: email@example.com
- Date: Mon, 16 Oct 2017 10:00:41 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:date:mime-version :content-transfer-encoding; bh=y+oQydUgU+E1DJARw0E48A37g+xXeqnrMIQuBkj1SbA=; b=qkYiTqpWOWaxY5iSOYkHKHdrslqcPUYgIY5HigmKSjYscAKzTvkaqDayJyQrcuW213 T21n9/ZIpkxWsUjYAZO8beYcVEZOqZvLz4lkKKXbN7S2ves/2+gamh4fviGq9prx5ECE ZeIwHhi/hNRowN1AaiO1fwr+t90KbJy61aIR9eQ0dtVKiID3Gju+LnMnu/c//2D8Lpl6 DTisrCFSSANgrGLVt519b5u1veCCGwsaoVSBJUH3cSkpAEFNnULT5h2mcVyrapblcE5S MiIRFIx8/cV23d3o7ns2npCRh6R2TOw25ksUb9pKWROqJ/521CpfWYE8WbNZ9sgLrOWb XQVg==
I have an app that uses LMDB, and I've experienced an interesting
issue: when trying to delete a certain item with mdb_cursor_del, it
crashed with the following backtrace: https://pastebin.com/7p9wtkj9
It appears that it couldn't mark a page as dirty.
Here is the relevant assertion from mdb_page_dirty:
rc = insert(txn->mt_u.dirty_list, &mid);
mdb_tassert(txn, rc == 0); // assertion failed
What might I be doing wrong in my application that triggers this sort
The database was about 60MB, and I now compacted it using mdb_copy -c.
Now it is only ~6MB, and running the app with the compacted database,
the above error also disappeared.
I'm not sure why the compacting fixed the problem, could somebody offer
an insight about this?
Thank you guys in advance for your answers!