Hello,
I am running Docker on OS X Monterey, and starting up a vanilla alpine:latest Linux image. I only installed build-base and lmdb-dev and ran /bin/sh as root.

LMDB version (Alpine): lmdb-dev-0.9.33-r0

Inside the container, I wrote this test code:

/* test_open.c */
#include <stdio.h>
#include "lmdb.h"

#define DEFAULT_MAPSIZE 1UL<<40

int main() {
    int rc;
    MDB_env *env;

    rc = mdb_env_create(&env);
    printf ("env create: %d\n", rc);

    rc = mdb_env_set_maxdbs (env, 10);
    printf ("env set maxdbs: %d\n", rc);
    rc = mdb_env_set_mapsize (env, DEFAULT_MAPSIZE);
    printf ("env set mapsize: %d\n", rc);

    rc = mdb_env_open (env, "/tmp", 0, 0640);
    printf ("env open: %d\n", rc);

    mdb_env_close (env);
    return rc;
}

I compiled with `gcc test_open.c -llmdb -o test_open` and ran as root, and got this output:

env create: 0
env set maxdbs: 0
env set mapsize: 0
env open: 38

The lock file was created, not the data file.

This only occurs in the guest setup. On the OS X host and on a native Linux host it exits with 0.

Any hints?

Reply via email to