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
Metadata Update from @mreynolds: - Issue tagged with: Needs Info
@firstyear, any info how to reproduce and investigate this issue ? It looks it happened while gdb attached at a specific time. Is that a realistic reproducer ?
I don't have a reproducer, let's close this and leave it in case someone else sees it. :)
Metadata Update from @firstyear: - Issue close_status updated to: invalid - Issue status updated to: Closed (was: Open)
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/3513
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: invalid)
Login to comment on this ticket.