[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#9159) mdb_put failed: MDB_MAP_FULL: Environment mapsize limit reached(-30792)




I could see some stats from mdb-stat tool as mentioned below,

mdb_stat.exe -rne "C:\openldap\mdb\data.mdb"
Environment Info
  Map address: 0000000000000000
  Map size: 268435456   (we have set the value as ‭104,857,600,000,000‬ in mdb.c and back_mdb.h files, but it has taken only 256 MB, not sure why?)
  Page size: 4096
  Max pages: 65536
  Number of pages used: 65527
  Last transaction ID: 9555
  Max readers: 126
  Number of readers used: 0
Reader Table Status
(no active readers)

when i try to increase to set the dbMaxSize it fails,

addDbMaxSize.ldif  has content as mentioned below,

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcDbMaxSize
olcDbMaxSize: 1073741824


olcDbMaxSize: 1073741824  - stops the service in windows

openldap \bin>ldapmodify -H ldaps://localhost:6565 -D cn=admin,cn=config -w d -f addDbMaxSize.ldif
modifying entry "olcDatabase={1}mdb,cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)
        additional info: failed to reopen database, rc=87



olcDbMaxSize: ‭536870912‬ - failed as below

openldap \bin>ldapmodify -H ldaps://localhost:6565 -D cn=admin,cn=config -w d -f addDbMaxSize.ldif
modifying entry "olcDatabase={1}mdb,cn=config"
ldap_modify: Invalid syntax (21)
        additional info: olcDbMaxSize: value #0 invalid per syntax



back-mdb.h  -  we added as below
#define DEFAULT_MAPSIZE (10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 1048576)

mdb.c - we added as below 
#define DEFAULT_MAPSIZE (10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 1048576)  
if ((i = mdb_env_read_header(env, &meta)) != 0) {
        if (i != ENOENT)
            return i;
        DPUTS("new mdbenv");
        newenv = 1;
        env->me_psize = env->me_os_psize;
        if (env->me_psize > MAX_PAGESIZE)
            env->me_psize = MAX_PAGESIZE;
        memset(&meta, 0, sizeof(meta));
        mdb_env_init_meta0(env, &meta);
        meta.mm_mapsize = DEFAULT_MAPSIZE;
    } else {
        env->me_psize = meta.mm_psize;
    }


1. i am not getting why the size of the map (as per the stats info given above) - 256 MB (268435456) only ? please provide me a clue once to understand this.
2. Kindly let me know how to get debug logs ? i use DPRINTF, DPUT in mdb.c but dint get see as logs printed.!

We observed this in Windows 2012 R2 and Window10 OS x64 Arch machines.



Regards,
Vijay Kumar


On Thu, Jan 30, 2020 at 12:46 PM Quanah Gibson-Mount <quanah@symas.com> wrote:


--On Thursday, January 30, 2020 6:09 AM +0000
pasumarthivijaykumar@gmail.com wrote:

> --00000000000025b743059d554b79
> Content-Type: text/plain; charset="UTF-8"
> Content-Transfer-Encoding: quoted-printable
>
> Thanks for your reply I do know that info for windows also is it the
> same.? I am unable to use stats tool also.

As I already stated, the maxsize parameter specifies the maximum size the
database can reach.

> As I don=E2=80=99t see any reply from our many mails to
> openldap-technical@openldap.org I have created this case to clarify.


The openldap-technical list is only open to subscribers, if you want to
post to it you must subscribe first.


> Why don=E2=80=99t you forward the query to the concerned team instead
> closi= ng.

Your query would not be forwarded because you failed to read and/or
understand the documentation.  This system is for bug reports only.

> No reply to us.!

I did reply.  This is clearly shown in the ITS.

> Please let us know answer to solve a issue.!


I already provided you the answer in my earlier response.  Set an
approprate maxsize setting, the default of 10MB is clearly too low.

Regards,
Quanah


--

Quanah Gibson-Mount
Product Architect
Symas Corporation
Packaged, certified, and supported LDAP solutions powered by OpenLDAP:
<http://www.symas.com>


--
Thanks & Regards,
 
Vijay Kumar
+91-94944 44009