#252 389 programs linked against openldap crash during shutdown
Closed: wontfix Opened by rmeggins.

https://bugzilla.redhat.com/show_bug.cgi?id=755725

Description of problem:
When restarting the dirsrv process, it receives a segfault
Version-Release number of selected component (if applicable):
389-ds-base-1.2.10-0.5.a5.fc15.x86_64
How reproducible:
100%
Steps to Reproduce:
1. Install FreeIPA
2. Restart DIRSRV
3. check dmesg for segfaults
Actual results:
restart generates segfault
Expected results:
Restart without crashing
Additional info:
(gdb) thread apply all bt all
Thread 1 (Thread 0x7f4a76a387e0 (LWP 918)):
No symbol "all" in current context.
(gdb) thread apply all bt full
Thread 1 (Thread 0x7f4a76a387e0 (LWP 918)):
#0  __GI___libc_free (mem=0x185) at malloc.c:3709
        ar_ptr = <optimized out>
        p = <optimized out>
        hook = 0
#1  0x000000352be0e510 in ldap_int_destroy_global_options () at
../../../libraries/libldap/init.c:496
        gopts = 0x352c049360
#2  0x000000352660e896 in _dl_fini () at dl-fini.c:244
        array = 0x352c0475c8
        i = <optimized out>
        nmaps = 94
        nloaded = <optimized out>
        i = <optimized out>
        l = 0x7f4a76a459b0
        ns = 0
        maps = 0x7fff3ccac680
        maps_size = 752
        do_audit = 0
#3  0x0000003526a38991 in __run_exit_handlers (status=0, listp=0x3526d935a8,
run_list_atexit=true) at exit.c:78
        atfct = <optimized out>
        onfct = <optimized out>
        cxafct = <optimized out>
        f = <optimized out>
#4  0x0000003526a38a15 in __GI_exit (status=<optimized out>) at exit.c:100
No locals.
#5  0x0000003526a213a4 in __libc_start_main (main=0x40c8d0 <main>, argc=7,
ubp_av=0x7fff3ccacb08, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fff3ccacaf8) at libc-start.c:258
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -6666163846686787399,
4255964, 140734213311232, 0, 0, 6666311345183307961, -6694800918663219015},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fff3ccacb48, 0x1}, data =
{prev = 0x0, cleanup = 0x0,
              canceltype = 1019923272}}}
        not_first_call = <optimized out>
#6  0x000000000040f105 in _start ()
No symbol table info available.

commit changeset:91fa21f6af7871d73bb9d5e738ec4e31b5298463/389-ds-base
Author: Rich Megginson rmeggins@redhat.com
Date: Wed Dec 14 20:04:48 2011 -0700
Reviewed by: nhosoi (Thanks!)
Branch: master
Fix Description: With recent versions of openldap, you cannot link with both
ldap_r and ldap - when the shared object _fini is run, the _fini from the one
will stomp on the _fini from the other, and the program will crash. The fix
is to link with ldap_r only in a threaded program, and ldap otherwise.
Platforms tested: Fedora 16, RHEL6 x86_64
Flag Day: no
Doc impact: no

Ticket has been cloned to Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=788764

Added initial screened field value.

Metadata Update from @nkinder:
- Issue assigned to rmeggins
- Issue set to the milestone: 1.2.10

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/252

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Fixed)

Metadata