Skip to content
This repository has been archived by the owner on Sep 13, 2023. It is now read-only.

Fix support for larger than 2 GB databases on Windows #24

Closed
wants to merge 6 commits into from

Conversation

repi
Copy link

@repi repi commented Dec 31, 2018

This was discussed and allegedly fixed in LMDB in January 2016 by defining _FILE_OFFSET_BITS but that doesn't work because Windows headers do not support that POSIX define (link).

In this fix I re-define off_t in build.rs to int64 instead.

Original discussion and non-working fix:
https://www.openldap.org/lists/openldap-bugs/201605/msg00015.htm
LMDB/lmdb@20dec1f

Should be fixed properly in upstream LMDB though, this is a workaround until then.

This PR is based on #23 which uses the latest LMDB version.

This will fail on older versions of LMDB on Windows
that doesn't have the ITS#3824 fix
This includes important improvements such as ITS#8324
which enables sparse file allocation on Windows
This was discussed and allegedly fixed in LMDB in January 2016 by defining
_FILE_OFFSET_BITS but that doesn't work because Windows headers do not
support that POSIX define.

In this fix I re-define `off_t` in build.rs to int64 instead.

Original discussion and non-working fix:

https://www.openldap.org/lists/openldap-bugs/201605/msg00015.htm

LMDB/lmdb@20dec1f

Should be fixed properly in upstream LMDB though, this is a workaround until then.
//
// was discussed here and allgedly fixed in January 2016 but fix doesn't work as
// Windows doesn't support _FILE_OFFSET_BITS
// https://www.openldap.org/lists/openldap-bugs/201605/msg00015.htm
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This URL returns a 404 NOT FOUND error. It looks like the correct URL is https://www.openldap.org/lists/openldap-bugs/201605/msg00015.html (with the trailing "l"; perhaps due to a recent reconfiguration of the server?).

@mykmelez
Copy link

mykmelez commented Jan 7, 2019

Should be fixed properly in upstream LMDB though, this is a workaround until then.

I'm ok with taking a fix like this downstream, however I agree that it should ultimately be fixed upstream. Are you planning to submit a fix or comment in https://www.openldap.org/its/index.cgi/Incoming?id=8420 about the persistence of the bug despite the original fix for it?

@victorporof
Copy link

Closing due to inactivity, please reopen if there's updates.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants