#50455 Crash in checkpoint thread with vlv
Opened 5 months ago by firstyear. Modified 5 months ago

Issue Description

While executing the VLV test, the test had a sleep introduced "just after" the M2.backend.create statement. gdb was attached, and while configuring breakpoints, then the continue, in the remaining time (about 20 seconds) the checkpoint thread initiated. This triggered a segfault in the code as seen below.

Thread 2 "ns-slapd" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f434f53e700 (LWP 893)]
0x00007f435865a584 in checkpoint_threadmain (param=0x6120000415c0) at /home/william/development/389ds/ds/ldap/servers/slapd/back-ldbm/dblayer.c:4342
4342                if (!dblayer_db_uses_transactions(priv->dblayer_env->dblayer_DB_ENV)) {
(gdb) bt
#0  0x00007f435865a584 in checkpoint_threadmain (param=0x6120000415c0) at /home/william/development/389ds/ds/ldap/servers/slapd/back-ldbm/dblayer.c:4342
#1  0x00007f435ca7f075 in ?? () from /usr/lib64/libnspr4.so
#2  0x00007f435ca1cfaa in start_thread () from /lib64/libpthread.so.0
#3  0x00007f435cf4b71f in clone () from /lib64/libc.so.6
(gdb) print priv
$1 = (dblayer_private *) 0x61100021a380
(gdb) print priv->dblayer_env
$2 = (struct dblayer_private_env *) 0x0
(gdb) list
4337                slapi_timespec_expire_check(&checkpoint_expire) == TIMER_EXPIRED) {
4338
4339                /* If our interval has changed, update it. */
4340                checkpoint_interval = checkpoint_interval_update;
4341
4342                if (!dblayer_db_uses_transactions(priv->dblayer_env->dblayer_DB_ENV)) {
4343                    continue;
4344                }
4345
4346                /* now checkpoint */
(gdb) bt full
#0  0x00007f435865a584 in checkpoint_threadmain (param=0x6120000415c0) at /home/william/development/389ds/ds/ldap/servers/slapd/back-ldbm/dblayer.c:4342
        interval = 2500
        rval = -1
        priv = 0x61100021a380
        li = 0x6120000415c0
        debug_checkpointing = 0
        home_dir = 0x60400008b010 <error: Cannot access memory at address 0x60400008b010>
        list = <error reading variable list (Cannot access memory at address 0x7f434f53cb10)>
        listp = 0x0
        penv = <error reading variable penv (Cannot access memory at address 0x7f434f53cac0)>
        checkpoint_expire = <error reading variable checkpoint_expire (Cannot access memory at address 0x7f434f53cb70)>
        compactdb_expire = <error reading variable compactdb_expire (Cannot access memory at address 0x7f434f53cb90)>
        compactdb_interval_update = <error reading variable compactdb_interval_update (Cannot access memory at address 0x7f434f53cac8)>
        checkpoint_interval_update = <error reading variable checkpoint_interval_update (Cannot access memory at address 0x7f434f53cad0)>
        compactdb_interval = 2592000
        checkpoint_interval = 60
        txn = <error reading variable txn (Cannot access memory at address 0x7f434f53cb30)>
#1  0x00007f435ca7f075 in ?? () from /usr/lib64/libnspr4.so
No symbol table info available.
#2  0x00007f435ca1cfaa in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#3  0x00007f435cf4b71f in clone () from /lib64/libc.so.6
No symbol table info available.
(gdb) print *priv
Cannot access memory at address 0x61100021a380

Metadata Update from @mreynolds:
- Custom field origin adjusted to None
- Custom field reviewstatus adjusted to None
- Issue set to the milestone: 1.4.2

5 months ago

Login to comment on this ticket.

Metadata