Hi,
I converted an application from BDB to LMDB (using Java/JNI) and now I'm getting this error when doing an mdb_cursor_get with SET.
In debugging, at that point mp is empty: mp = 0x0000000015ddb000 {mp_p={p_pgno=0 p_next=0x0000000000000000 } mp_pad=0 mp_flags=0 ...}
The code where this happens is called many times before without issue, so I'm at a lost to explain what is going on.
I'm including the debug output from the session. If anybody can point me in the right direction, I will do whatever tests or debugging is needed.
BTW, lines numbers might be a bit off as I needed to make minor changes to run under MS VS
at line 329, added code for lack of support for __func__:
#ifdef _MSC_VER //MS C++ doesn't support __func__ # define DPRINTF0(fmt, ...) \ fprintf(stderr, "%s:%d " fmt "\n", __FUNCTION__, __LINE__, __VA_ARGS__) #else # define DPRINTF0(fmt, ...) \ fprintf(stderr, "%s:%d " fmt "\n", __func__, __LINE__, __VA_ARGS__) #endif
Thanks Alain
I managed to find some issues with the transaction management of the application and this problem has gone away so please disregard, but please add the debug for Windows
Alain
On Sun, Dec 1, 2013 at 12:37 PM, Alain alpic80@gmail.com wrote:
Hi,
I converted an application from BDB to LMDB (using Java/JNI) and now I'm getting this error when doing an mdb_cursor_get with SET.
In debugging, at that point mp is empty: mp = 0x0000000015ddb000 {mp_p={p_pgno=0 p_next=0x0000000000000000 } mp_pad=0 mp_flags=0 ...}
The code where this happens is called many times before without issue, so I'm at a lost to explain what is going on.
I'm including the debug output from the session. If anybody can point me in the right direction, I will do whatever tests or debugging is needed.
BTW, lines numbers might be a bit off as I needed to make minor changes to run under MS VS
at line 329, added code for lack of support for __func__:
#ifdef _MSC_VER //MS C++ doesn't support __func__ # define DPRINTF0(fmt, ...) \ fprintf(stderr, "%s:%d " fmt "\n", __FUNCTION__, __LINE__, __VA_ARGS__) #else # define DPRINTF0(fmt, ...) \ fprintf(stderr, "%s:%d " fmt "\n", __func__, __LINE__, __VA_ARGS__) #endif
Thanks Alain
Offtopic: gcc knew __FUNCTION__ years ago already...
Alain alpic80@gmail.com schrieb am 01.12.2013 um 18:37 in Nachricht
CACokUmLaYxpk0VfS1EdncCnDQA1iOrwMWcrocYCXSheNL0Da6Q@mail.gmail.com:
Hi,
I converted an application from BDB to LMDB (using Java/JNI) and now I'm getting this error when doing an mdb_cursor_get with SET.
In debugging, at that point mp is empty: mp = 0x0000000015ddb000 {mp_p={p_pgno=0 p_next=0x0000000000000000 } mp_pad=0 mp_flags=0 ...}
The code where this happens is called many times before without issue, so I'm at a lost to explain what is going on.
I'm including the debug output from the session. If anybody can point me in the right direction, I will do whatever tests or debugging is needed.
BTW, lines numbers might be a bit off as I needed to make minor changes to run under MS VS
at line 329, added code for lack of support for __func__:
#ifdef _MSC_VER //MS C++ doesn't support __func__ # define DPRINTF0(fmt, ...) \ fprintf(stderr, "%s:%d " fmt "\n", __FUNCTION__, __LINE__, __VA_ARGS__) #else # define DPRINTF0(fmt, ...) \ fprintf(stderr, "%s:%d " fmt "\n", __func__, __LINE__, __VA_ARGS__) #endif
Thanks Alain
openldap-technical@openldap.org