clayton.stangeland(a)gmail.com wrote:
Full_Name: Clayton Stangeland
Version: gitorious mdb 2014-02-19 e2bdd44624a525
OS: Fedora 20 64 bit
URL:
http://www.strerror.com/mdb_bug_report/
Submission from: (NULL) (192.94.73.31)
DUPLICATE bug report. New URL: for data file
http://www.strerror.com/mdb_bug_report/.
You can use the 3 non tgz files or download the tgz file which includes all of
them.
Thanks for the report. This is now fixed in mdb.master.
I have a text file of words (words.txt). Each is 511 or less
characters. When
inserting them into the database there comes a point when I can no longer
retrieve words that were successfully added with mdb_cursor_put.
It should be put in the libraries/liblmdb directory. The Makefile has an added
command at the end. So put that, words.txt, and word_test.c in liblmdb directory
and run 'make words'.
It will build and run a failing test. First it reads each line of words.txt.
Then it inserts them with their index as the value into mdb. If you change count
= 29523 on line 145 to be count = 29522 then it works. Inserting the next word
causes it to fail.
It doesn't fail at the insert but it fails later. When iterating the cursor the
words are not in order and looking up individually not all words can be
retrieved.
Also, changing line 151 to set val.mv_data, and val.mv_size to a string version
of i (the index, using sprintf), it works.
This fails the same way on 64 bit Fedora and 64 bit Windows 7.
--
-- Howard Chu
CTO, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/