I am not an expert at this, so I might be doing things incorrectly.
I used Mingw x86_64 to build LMDB (just changed the CC in the Makefile). I had an issue with srandom and random in the test programs and switch to rand instead. Now I can build successfully and make test runs mtest successfully.
Now if I try one of the other mtest[2-5] or mtest itself, I get sporadic segmentation fault. If I wait long enough it will always work, but running the programs in a kind of loop guarantees a seg fault error.
I wanted to try running with gdb but it seems that it doesn't ship with cygwin for Mingw. Using standard gdb gives me a 193 error. Again this is getting past my expertise here.
Has anyone successfully build LMDB for Windows and can help here.
Cheers, Alain
Now if I try one of the other mtest[2-5] or mtest itself, I get sporadic
segmentation fault. If I wait long enough it > will always work, but running the programs in a kind of loop guarantees a seg fault error.
Has anyone successfully build LMDB for Windows and can help here.
Alain,
I've just built the latest version of LMDB and when running the tests, I experience same issues. All tests seem to fail at the same point/function:
Program received signal SIGSEGV, Segmentation fault. 0x00403b08 in mdb_txn_renew0 () (gdb) bt #0 0x00403b08 in mdb_txn_renew0 () #1 0x00404248 in mdb_txn_begin () #2 0x00413bb2 in main ()
It happens when you run the same test for a second, third, etc time. But I remove the test database (testdb folder) and run the same test again, it works.
I don't have the solution right now. I'll keep investigating the issue and keep you posted.
Cheers.
Sergio.
Date: Sat, 28 Sep 2013 16:04:35 -0400 Subject: Building LMDB for Windows 64bits From: alpic80@gmail.com To: openldap-technical@openldap.org
I am not an expert at this, so I might be doing things incorrectly.
I used Mingw x86_64 to build LMDB (just changed the CC in the Makefile). I had an issue with srandom and random in the test programs and switch to rand instead. Now I can build successfully and make test runs mtest successfully.
I wanted to try running with gdb but it seems that it doesn't ship with cygwin for Mingw. Using standard gdb gives me a 193 error. Again this is getting past my expertise here.
Cheers, Alain
Alain wrote:
I am not an expert at this, so I might be doing things incorrectly.
I used Mingw x86_64 to build LMDB (just changed the CC in the Makefile). I had an issue with srandom and random in the test programs and switch to rand instead. Now I can build successfully and make test runs mtest successfully.
Now if I try one of the other mtest[2-5] or mtest itself, I get sporadic segmentation fault. If I wait long enough it will always work, but running the programs in a kind of loop guarantees a seg fault error.
That's pretty normal. The test programs don't do any error checking. You're welcome to submit a patch adding the requisite error checking.
When you run the tests repeatedly eventually the DB grows to its maxsize limit and a write request fails. After that things crash because the library is returning failure codes that the test programs ignore.
I wanted to try running with gdb but it seems that it doesn't ship with cygwin for Mingw. Using standard gdb gives me a 193 error. Again this is getting past my expertise here.
The test programs are actually only intended to be used with gdb, but yes, it's a pain finding a working gdb for MinGW64. The one I'm currently using is 7.1.90.20100730-cvs
http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages...
Has anyone successfully build LMDB for Windows and can help here.
Cheers, Alain
Howard,
Thanks for the reply. See below
On Sat, Sep 28, 2013 at 9:44 PM, Howard Chu hyc@symas.com wrote:
Alain wrote:
I am not an expert at this, so I might be doing things incorrectly.
I used Mingw x86_64 to build LMDB (just changed the CC in the Makefile). I had an issue with srandom and random in the test programs and switch to rand instead. Now I can build successfully and make test runs mtest successfully.
Now if I try one of the other mtest[2-5] or mtest itself, I get sporadic segmentation fault. If I wait long enough it will always work, but running the programs in a kind of loop guarantees a seg fault error.
That's pretty normal. The test programs don't do any error checking. You're welcome to submit a patch adding the requisite error checking.
When you run the tests repeatedly eventually the DB grows to its maxsize limit and a write request fails. After that things crash because the library is returning failure codes that the test programs ignore.
This is surely not the case here. As I noted, "if I wait long enough it will always work". I was not trying to run the test programs hundreds of times, but simply like once or twice each. Again, if it fails, wait about 30 secs, and try again and it will work.
I wanted to try running with gdb but it seems that it doesn't ship with
cygwin for Mingw. Using standard gdb gives me a 193 error. Again this is getting past my expertise here.
The test programs are actually only intended to be used with gdb, but yes, it's a pain finding a working gdb for MinGW64. The one I'm currently using is 7.1.90.20100730-cvs
http://sourceforge.net/**projects/mingw-w64/files/** External%20binary%20packages%**20%28Win64%20hosted%29/gdb/http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/gdb/
Great will use it.
Has anyone successfully build LMDB for Windows and can help here.
Cheers, Alain
-- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/**project/http://www.openldap.org/project/
Howard,
First I installed gdb for MinGW64 and I took your advice and added tests for rc in the many calls to start the database. I never got a non-zero return code. And running with gdb I have not been able to reproduce the problem even when running as:" while true ; do gdb -ex run mtest -ex quit ; done ;" which I killed after about 25 runs.
I then added a bunch of printf, starting before the call to rand() and when I get a seg fault, I see none of the messages. Also a bit strange, it seems that it's getting harder to get the issue to happen and the "wait time" to retry is shorter. Really looks like a timing issue.
Cheers, Alain
On Sun, Sep 29, 2013 at 8:11 AM, Alain alpic80@gmail.com wrote:
Howard,
Thanks for the reply. See below
On Sat, Sep 28, 2013 at 9:44 PM, Howard Chu hyc@symas.com wrote:
Alain wrote:
I am not an expert at this, so I might be doing things incorrectly.
I used Mingw x86_64 to build LMDB (just changed the CC in the Makefile). I had an issue with srandom and random in the test programs and switch to rand instead. Now I can build successfully and make test runs mtest successfully.
Now if I try one of the other mtest[2-5] or mtest itself, I get sporadic segmentation fault. If I wait long enough it will always work, but running the programs in a kind of loop guarantees a seg fault error.
That's pretty normal. The test programs don't do any error checking. You're welcome to submit a patch adding the requisite error checking.
When you run the tests repeatedly eventually the DB grows to its maxsize limit and a write request fails. After that things crash because the library is returning failure codes that the test programs ignore.
This is surely not the case here. As I noted, "if I wait long enough it will always work". I was not trying to run the test programs hundreds of times, but simply like once or twice each. Again, if it fails, wait about 30 secs, and try again and it will work.
I wanted to try running with gdb but it seems that it doesn't ship with
cygwin for Mingw. Using standard gdb gives me a 193 error. Again this is getting past my expertise here.
The test programs are actually only intended to be used with gdb, but yes, it's a pain finding a working gdb for MinGW64. The one I'm currently using is 7.1.90.20100730-cvs
http://sourceforge.net/**projects/mingw-w64/files/** External%20binary%20packages%**20%28Win64%20hosted%29/gdb/http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/gdb/
Great will use it.
Has anyone successfully build LMDB for Windows and can help here.
Cheers, Alain
-- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/**project/http://www.openldap.org/project/
openldap-technical@openldap.org