Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jul 2020 09:56:25 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 248300] databases/mongodb42-tools: mongo crashes on start
Message-ID:  <bug-248300-7788-goURaDo9GY@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-248300-7788@https.bugs.freebsd.org/bugzilla/>
References:  <bug-248300-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D248300

Ronald Klop <ronald-lists@klop.ws> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|maintainer-feedback?(ronald |maintainer-feedback+
                   |-lists@klop.ws)             |

--- Comment #1 from Ronald Klop <ronald-lists@klop.ws> ---
Hi.

I had one report about this earlier. I'll paste the mail conversation below.
You hit a limit of mlock-able memory.

As mentioned in the man page of mlock you can take a look at the values of:
sysctl vm.stats.vm.v_wire_count vm.max_wired

count should be less than max_wired.

The other person did not have the problem anymore after a reboot.

And if you are running "mongo" in a jail you shouls set "allow.mlock" in the
jail.conf.

Ronald.


-------------------------------------------------------------------------

    Do you have any other settings which might influence this? In rc.conf of
sysctl.conf or make.conf/src.conf?

I don't think so. It's a brand new install of freeBSD and mongo is one of t=
he
first package I installed. The server has 64GB of memory.

Just these settings in `sysctl.conf` :

kern.randompid=3D1
vfs.zfs.min_auto_ashift=3D12
vfs.usermount=3D1

sysctl vm.stats.vm.v_wire_count vm.max_wired security.bsd.unprivileged_mlock
vm.stats.vm.v_wire_count: 13913803
vm.max_wired: 5381304
security.bsd.unprivileged_mlock: 1

I run `service mongod` to start the daemon, and it starts without problem.

Anyway, I restarted my server and the mongo cli started without error=E2=80=
=A6

Strange=E2=80=A6

Thanks,

Stan.
On 03/07/2020 10:45, Ronald Klop wrote:



    Van: Stanislas SABATIER <***>
    Datum: vrijdag, 3 juli 2020 09:33
    Aan: Ronald Klop <***>
    Onderwerp: Re: bug in mongo 4.2.8 on FreeBSD 12.1-p6 ?

        Hello Ronald,

        Thank you for your quick response.

        I'm not running `mongo` into a jail, neither `mongod`. And I launch
`mongo` as root=E2=80=A6

        All the mongo binaries are working (mongod, mongodump, etc.),
**except** `mongo` client.

        `ulimit -a` :

        ```

        #  ulimit -a
        -t: cpu time (seconds)              unlimited
        -f: file size (blocks)              unlimited
        -d: data seg size (kbytes)          33554432
        -s: stack size (kbytes)             524288
        -c: core file size (blocks)         unlimited
        -m: resident set size (kbytes)      unlimited
        -l: locked-in-memory size (kbytes)  unlimited
        -u: processes                       63493
        -n: file descriptors                1876410
        -b: socket buffer size (bytes)      unlimited
        -v: virtual memory size (kbytes)    unlimited
        -p: pseudo-terminals                unlimited
        -w: swap size (kbytes)              unlimited
        -k: kqueues                         unlimited
        -o: umtx shared locks               unlimited
        ```

        This is weird.

        Stan.


    Interesting indeed. I'm running this on 12.1-p6/aarch64 instead of amd6=
4. I
can try amd64 tonight or this weekend.

    Do you have any other settings which might influence this? In rc.conf of
sysctl.conf or make.conf/src.conf?

    "man 2 mlock" also has some information about the limits:
    "     Since physical memory is a potentially scarce resource, processes=
 are
         limited in how much they can lock down.  The amount of memory that=
 a
         single process can mlock() is limited by both the per-process
         RLIMIT_MEMLOCK resource limit and the system-wide "wired pages" li=
mit
         vm.max_wired.  vm.max_wired applies to the system as a whole, so t=
he
         amount available to a single process at any given time is the
difference
         between vm.max_wired and vm.stats.vm.v_wire_count.

         If security.bsd.unprivileged_mlock is set to 0 these calls are only
         available to the super-user.
    "

    For these values I have (when mongodb is not running):
    # sysctl vm.stats.vm.v_wire_count vm.max_wired
security.bsd.unprivileged_mlock
    vm.stats.vm.v_wire_count: 50341
    vm.max_wired: 75456
    security.bsd.unprivileged_mlock: 1

    With mongod + mongo runiing v_wire_count peaked to 53735.

    Can you show the exact commands you use to run mongod and mongo? As mon=
god
runs as user "mongodb" if you use the rc.d/mongod script.

    If you want to have more people involved I advise to cc a freebsd
mailinglist also.

    Regards,
    Ronald.



        On 02/07/2020 19:19, Ronald Klop wrote:



            Van: ***
            Datum: 2 juli 2020 17:02
            Aan: ***
            Onderwerp: bug in mongo 4.2.8 on FreeBSD 12.1-p6 ?

                Hello Ronald,

                Thank you for your work as a maintainer of the mongo42 port.

                I installed mongo42 on a brand new FreeBSD 12.1-p6 server.
Installation went well and I'm able to run the `mongod` daemon.

                But, when I try to run the mongo client `mongo`, I get the
error below :

                ```

                2020-07-02T16:51:32.389+0200 F - [main] Failed to mlock: Ca=
nnot
allocate locked memory. For more details see:
https://dochub.mongodb.org/core/cannot-allocate-locked-memory: Resource
temporarily unavailable
                2020-07-02T16:51:32.389+0200 F - [main] Fatal Assertion 288=
32
at src/mongo/base/secure_allocator.cpp 255
                2020-07-02T16:51:32.389+0200 F - [main]

                ***aborting after fassert() failure


                2020-07-02T16:51:32.390+0200 F - [main] Got signal: 6 (Abort
trap).
                0x28aeea6 0x28ae71b 0x803c843ce
                ----- BEGIN BACKTRACE -----
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
{"backtrace":[{"b":"1021000","o":"188DEA6","s":"_ZN5mongo15printStackTraceE=
RNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEE"},{"b":"1021000","o":"188D=
71B","s":"_ZN5mongo29reportOutOfMemoryErrorAndExitEv"},{"b":"803C70000","o"=
:"143CE","s":"_pthread_sigmask"}],"processInfo":{
"mongodbVersion" : "4.2.8", "gitVersion" :
"43d25964249164d76d5e04dd6cf38f6111e21f5f", "compiledModules" : [], "uname"=
 : {
"sysname" : "FreeBSD", "release" : "12.1-RELEASE-p6", "version" : "FreeBSD
12.1-RELEASE-p6 GENERIC", "machine" : "amd64" } }}
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
mongo(_ZN5mongo15printStackTraceERNSt3__113basic_ostreamIcNS0_11char_traits=
IcEEEE+0x36)
[0x28aeea6]
                mongo(_ZN5mongo29reportOutOfMemoryErrorAndExitEv+0x15B)
[0x28ae71b]
                libthr.so.3(_pthread_sigmask+0x53E) [0x803c843ce]
                ----- END BACKTRACE -----
                [1] 9183 abort (core dumped) mongo

                ```

                Do you have any idea of this issue ?

                Thank you in advance for your response.

                Regards,

                Stan.



            Hi,

            is this in a jail? In jails you need to set allow.mlock.
            Outside of a jail I have not seen this yet, but the error messa=
ge
points in the same direction. A setting/limit in the account of mlock-able
memory for this user.

            Regards,
            Ronald.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-248300-7788-goURaDo9GY>