Jan Zelený <jzel...@redhat.com> writes:

>> > There must be something else going on. I tested 2307 on a group with
>> > ~1000 users and I found no problem.
>> > 
>> > Could you provide me a backtrace of the place where the process hangs?
>> > Any other information you might have will be useful as well.
>> 
>> I don't have a backtrace, since I compiled this as an rpm. However, an
>> strace of sssd_be hopefully holds a clue or two:
>> PS. I forgot to mention that I'm using sssd 1.5.12 + memberof patch on
>> rhel6 x86_64, since it required the least amount of effort to compile
>> and install.
>
> I managed to reproduce this issue, however I'm not sure it was related to the 
> plugin itself. What seemed to resolve it was update to latest packages in F15 
> and restart. However I did a small memory optimization, so I'm sending the 
> corrected patch. Please let me know if everything works for you now. In not, 
> try attaching gdb to sssd_be process *after* it freezes and send me a 
> backtrace.

Sorry about the delay, I've been crazy busy the last few days. The
updated patch didn't resolve the issue. A backtrace of sssd_be is
attached, captured while sssd_be was in the "unkillable" state.

#0  __lll_lock_wait_private ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
No locals.
#1  0x0000003b8a47bb68 in _L_lock_9159 () at malloc.c:3503
No symbol table info available.
#2  0x0000003b8a479502 in __libc_malloc (bytes=255726235264) at malloc.c:3657
        ignore1 = 128
        ignore2 = -1971802496
        ignore3 = -512
        ar_ptr = <error reading variable ar_ptr (Asked for position 0 of stack, 
stack only has 0 elements on it.)>
        victim = <value optimized out>
        hook = <value optimized out>
#3  0x0000003b8a004c62 in local_strdup (
    s=0x7f68a48257bc "/lib64/libgcc_s.so.1") at dl-load.c:162
        len = 21
        new = <value optimized out>
#4  0x0000003b8a0085f6 in _dl_map_object (loader=0x3b8a221188, 
    name=0x3b8a5516de "libgcc_s.so.1", type=2, trace_mode=0, 
    mode=<value optimized out>, nsid=<value optimized out>) at dl-load.c:2162
        cached = 0x7f68a48257bc "/lib64/libgcc_s.so.1"
        namelen = 14
        fd = <value optimized out>
        realname = <value optimized out>
        name_copy = <value optimized out>
        l = <value optimized out>
        fb = {len = 832, 
          buf = 
"\177ELF\002\001\001\000\000\000\000\000\000\000\000\000\003\000>\000\001\000\000\000\020)\300\220;\000\000\000@\000\000\000\000\000\000\000hd\001\000\000\000\000\000\000\000\000\000@\000\070\000\006\000@\000\037\000\036\000\001\000\000\000\005",
 '\000' <repeats 13 times>"\300, 
\220;\000\000\000\000\000\300\220;\000\000\000\324V\001\000\000\000\000\000\324V\001\000\000\000\000\000\000\000
 
\000\000\000\000\000\001\000\000\000\006\000\000\000\330V\001\000\000\000\000\000\330V\341\220;\000\000\000\330V\341\220;\000\000\000\240\003\000\000\000\000\000\000
 \006\000\000\000\000\000\000\000\000 
\000\000\000\000\000\002\000\000\000\006\000\000\000\bW\001\000\000\000\000\000\bW\341\220;\000\000\000\bW\341\220;\000\000\000\260\001\000\000\000\000\000\000\260\001\000\000\000\000\000\000\b"...}
        found_other_class = false
        stack_end = <value optimized out>
#5  0x0000003b8a0128d2 in dl_open_worker (a=0x7fff7b826a90) at dl-open.c:226
        args = 0x7fff7b826a90
        file = 0x3b8a5516de "libgcc_s.so.1"
        mode = -2147483647
        call_map = <value optimized out>
        dst = <value optimized out>
        new = <value optimized out>
        r = <value optimized out>
        reloc_mode = <value optimized out>
        l = <value optimized out>
        any_tls = <value optimized out>
#6  0x0000003b8a00e0a6 in _dl_catch_error (objname=0x7fff7b826ae0, 
    errstring=0x7fff7b826ad8, mallocedp=0x7fff7b826aef, 
    operate=0x3b8a0127b0 <dl_open_worker>, args=0x7fff7b826a90)
    at dl-error.c:178
        errcode = 0
        old = 0x7fff7b826b80
        c = {objname = 0x7f68aa7048c8 "\237-", errstring = 0x0, 
          malloced = 200, env = {{__jmpbuf = {2147483649, 6337619303767480908, 
                -2, 0, 4, 255723902686, 6337619303828298316, 
                -6306626998392448436}, __mask_was_saved = 44158276, 
              __saved_mask = {__val = {32975296, 32961840, 32977600, 
                  223390941224, 0, 115984560, 140735265532912, 0, 17212846784, 
                  115984560, 140735265532984, 0, 33850008, 140735265532968, 
                  140735265532512, 129195568}}}}}
        catchp = 0x7f68aa6db6f8
#7  0x0000003b8a01238a in _dl_open (file=0x3b8a5516de "libgcc_s.so.1", 
    mode=-2147483647, caller_dlopen=0x0, nsid=-2, argc=4, 
    argv=<value optimized out>, env=0x1f03360) at dl-open.c:555
        args = {file = 0x3b8a5516de "libgcc_s.so.1", mode = -2147483647, 
          caller_dlopen = 0x0, caller_dl_open = 0x3b8a522f20, map = 0x0, 
          nsid = 0, argc = 4, argv = 0x7fff7b828158, env = 0x1f03360}
        objname = <value optimized out>
        errstring = <value optimized out>
        malloced = <value optimized out>
        errcode = <value optimized out>
#8  0x0000003b8a522f20 in do_dlopen (ptr=<value optimized out>) at dl-libc.c:86
        args = 0x7fff7b826c80
#9  0x0000003b8a00e0a6 in _dl_catch_error (objname=0x7fff7b826ca0, 
    errstring=0x7fff7b826c98, mallocedp=0x7fff7b826caf, 
    operate=0x3b8a522ee0 <do_dlopen>, args=0x7fff7b826c80) at dl-error.c:178
        errcode = 0
        old = 0x0
        c = {objname = 0x2e5c8ba "\263\a", errstring = 0x0, malloced = false, 
          env = {{__jmpbuf = {64, 6337619303679400524, 103, 140735265533328, 
                103, 7, 6337619303761189452, -6306626998392448436}, 
              __mask_was_saved = 1, __saved_mask = {__val = {140735265534816, 
                  140735265534348, 140735265533168, 140735265533168, 
                  4294967297, 253403070465, 140735265534816, 140735265534704, 
                  0, 140735265533144, 140735265533148, 140735265533148, 
                  140735265533300, 140735265533300, 4294967297, 
                  140733193388033}}}}}
        catchp = 0x7f68aa6db6f8
#10 0x0000003b8a523077 in dlerror_run (name=<value optimized out>, 
    mode=<value optimized out>) at dl-libc.c:47
        objname = 0x7fff7b826d58 "\034"
        last_errstring = 0x0
        malloced = <value optimized out>
        result = <value optimized out>
#11 __libc_dlopen_mode (name=<value optimized out>, mode=<value optimized out>)
    at dl-libc.c:160
        args = {name = 0x3b8a5516de "libgcc_s.so.1", mode = -2147483647, 
          map = 0x0}
#12 0x0000003b8a4fb6e5 in init () at ../sysdeps/ia64/backtrace.c:41
No locals.
#13 0x0000003b8b00cab3 in pthread_once ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:104
No locals.
#14 0x0000003b8a4fb7e4 in __backtrace (array=<value optimized out>, size=64)
    at ../sysdeps/ia64/backtrace.c:85
        __p = <value optimized out>
        arg = {array = 0x7fff7b827310, cnt = -1, size = 64}
        once = 1
#15 0x0000003b8a46f83b in __libc_message (do_abort=2, 
    fmt=0x3b8a554840 "*** glibc detected *** %s: %s: 0x%s ***\n")
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:178
        addrs = {0x3000000018, 0x0, 0x7c8efd0, 0xd, 0x2244ed0, 0xd, 0x3, 
          0x7fff7b827430, 0x1ee7990, 0x5704afe4, 0xd, 0x3ba28021e2, 0x18, 
          0x7fff7b8273f0, 0x7fff00000018, 0x7fff7b827400, 0x7fff7b8273b0, 
          0x3ba2803c1f, 0x55, 0x206fd30, 0x7fff7b827410, 0x3ba2804dcf, 
          0x7fff7b827420, 0x3522d4, 0x3, 0x1ee7990, 0x3ba2804c60, 0x1ee7990, 
          0x2, 0x3ba28080a2, 0x3, 0x3ba2806937, 0x7fff7b82744c, 0x1, 0x2, 
          0x30, 0x1, 0x3b00000000, 0xd, 0x0, 0xd, 0x55, 0x7c8efd0, 0x0, 0x3, 
          0x3ba2802d2a, 0x206fd30, 0x7eb0730, 0x7fff7b8274d0, 0x70, 0x206fd30, 
          0x55, 0x7eb0730, 0x55, 0x7c8efd0, 0xd, 0x8000000000, 0x550000000d, 
          0x260119995704afe4, 0x3b8a47950d, 0x1364, 0x1ee7990, 0x1, 
          0x3ba2807e4a}
        n = <value optimized out>
        ap = {{gp_offset = 40, fp_offset = 48, 
            overflow_arg_area = 0x7fff7b827640, 
            reg_save_area = 0x7fff7b827550}}
        ap_copy = {{gp_offset = 16, fp_offset = 48, 
            overflow_arg_area = 0x7fff7b827640, 
            reg_save_area = 0x7fff7b827550}}
        fd = 2
        on_2 = <value optimized out>
        list = <value optimized out>
        nlist = <value optimized out>
        cp = <value optimized out>
        written = <value optimized out>
#16 0x0000003b8a475146 in malloc_printerr (action=3, 
    str=0x3b8a552822 "corrupted double-linked list", ptr=<value optimized out>)
    at malloc.c:6283
        buf = "0000000007ebca30"
        cp = <value optimized out>
#17 0x0000003b8a478bb4 in _int_malloc (av=0x3b8a78ae80, 
    bytes=<value optimized out>) at malloc.c:4636
        p = <value optimized out>
        iters = <value optimized out>
        nb = 144
        idx = <value optimized out>
        bin = <value optimized out>
        victim = 0x7ebca30
        size = 130985616
        victim_index = <value optimized out>
        remainder = <value optimized out>
        remainder_size = 130985472
        block = <value optimized out>
        bit = <value optimized out>
        map = <value optimized out>
        fwd = <value optimized out>
        bck = <value optimized out>
        errstr = 0x0
#18 0x0000003b8a47950d in __libc_malloc (bytes=122) at malloc.c:3660
        ar_ptr = 0x3b8a78ae80
        victim = <value optimized out>
        hook = <value optimized out>
#19 0x0000003b8d00335f in __talloc (ctx=<value optimized out>, 
    el_size=<value optimized out>, count=<value optimized out>, 
    name=<value optimized out>) at talloc.c:405
        tc = 0x0
#20 _talloc_named_const (ctx=<value optimized out>, 
    el_size=<value optimized out>, count=<value optimized out>, 
    name=<value optimized out>) at talloc.c:516
        ptr = 0x2a
#21 _talloc_array (ctx=<value optimized out>, el_size=<value optimized out>, 
    count=<value optimized out>, name=<value optimized out>) at talloc.c:1849
No locals.
#22 0x0000003403a12af9 in ldb_dn_explode (dn=0x7db2860) at common/ldb_dn.c:348
        p = <value optimized out>
        ex_name = <value optimized out>
        ex_value = <value optimized out>
        data = <value optimized out>
        d = <value optimized out>
        dt = <value optimized out>
        t = <value optimized out>
        trim = false
        in_extended = false
        in_ex_name = false
        in_ex_value = false
        in_attr = false
        in_value = false
        in_quote = false
        is_oid = false
        escape = false
        x = <value optimized out>
        l = <value optimized out>
        ret = <value optimized out>
        parse_dn = <value optimized out>
        is_index = false
#23 0x00007f68a408307d in mbof_mod_process (req=<value optimized out>, 
    ares=0x7c70aa0) at src/ldb_modules/memberof.c:3033
        rc_el = <value optimized out>
        ctx = <value optimized out>
        added = 0x494b770
        removed = 0x494a5f0
        key = {type = HASH_KEY_STRING, {
            str = 0x7e983f0 "name=joakidy,cn=users,cn=default,cn=sysdb", 
            ul = 132744176}}
        value = {type = HASH_VALUE_LONG, {ptr = 0x1, i = 1, ui = 1, l = 1, 
            ul = 1, f = 1.40129846e-45, d = 4.9406564584124654e-324}}
        add_member = false
        ldb = 0x1ed3bc0
        valdn = 0x7db2860
        ret = <value optimized out>
        el = 0x6e7b140
        i = <value optimized out>
#24 mbof_mod_execute_cb (req=<value optimized out>, ares=0x7c70aa0)
    at src/ldb_modules/memberof.c:2925
        ldb = <value optimized out>
        mod_ctx = 0x6e9e830
        ctx = 0x1f01de0
        ret = 0
#25 0x0000003403a1b7ed in ltdb_callback (ev=<value optimized out>, 
    te=<value optimized out>, t=..., private_data=<value optimized out>)
    at ldb_tdb/ldb_tdb.c:1222
        ctx = 0x49574c0
        ret = <value optimized out>
#26 0x0000003b8bc034e5 in tevent_common_loop_timer_delay (ev=0x1ed3620)
    at tevent_timed.c:254
        current_time = {tv_sec = 0, tv_usec = 0}
        te = 0x4953310
#27 0x0000003b8bc0531b in std_event_loop_once (ev=<value optimized out>, 
    location=<value optimized out>) at tevent_standard.c:537
        std_ev = 0x1ee69b0
        tval = {tv_sec = 0, tv_usec = 0}
#28 0x0000003b8bc026d0 in _tevent_loop_once (ev=0x1ed3620, 
    location=0x3403a27303 "common/ldb.c:578") at tevent.c:490
        ret = <value optimized out>
        nesting_stack_ptr = 0x0
#29 0x0000003403a0a464 in ldb_wait (handle=0x22962d0, type=LDB_WAIT_ALL)
    at common/ldb.c:578
        ev = 0x1ed3620
        ret = <value optimized out>
#30 0x0000003403a0b7ec in ldb_autotransaction_request (ldb=0x1ed3bc0, 
    req=0x6e9f960) at common/ldb.c:530
        ret = 0
#31 0x0000003403a0b971 in ldb_modify (ldb=0x1ed3bc0, message=0x218ce70)
    at common/ldb.c:1423
        req = 0x6e9f960
        ret = 0
#32 0x00007f68a3e3cdbc in sysdb_set_entry_attr (mem_ctx=<value optimized out>, 
    ctx=0x1ed27f0, entry_dn=0x6ea13b0, attrs=0x1ef7620, mod_op=2)
    at src/db/sysdb_ops.c:466
        msg = 0x218ce70
        i = <value optimized out>
        ret = <value optimized out>
        __FUNCTION__ = "sysdb_set_entry_attr"
#33 0x00007f68a3e45b49 in sysdb_store_group (mem_ctx=<value optimized out>, 
    ctx=0x1ed27f0, domain=0x1ed12e0, name=0x203a330 "spss-usr", gid=70212, 
    attrs=0x1ef7620, cache_timeout=5400) at src/db/sysdb_ops.c:1591
        tmpctx = 0x206e970
        src_attrs = {0x7f68a3e5d675 "name", 0x7f68a3e59abe "gidNumber", 
          0x7f68a3e5d951 "originalModifyTimestamp", 0x0}
        msg = 0x20a7a00
        new_group = <value optimized out>
        now = <value optimized out>
        ret = 0
        __FUNCTION__ = "sysdb_store_group"
#34 0x00007f68a3e125f9 in sdap_store_group_with_gid (memctx=0x1ef7b10, 
    sysdb=0x1ed27f0, dom=0x1ed12e0, opts=0x1eece60, 
    groups=<value optimized out>, num_groups=1, populate_members=true, 
    _usn_value=0x1ef7b48) at src/providers/ldap/sdap_async_accounts.c:688
        ret = <value optimized out>
#35 sdap_save_group (memctx=0x1ef7b10, sysdb=0x1ed27f0, dom=0x1ed12e0, 
    opts=0x1eece60, groups=<value optimized out>, num_groups=1, 
    populate_members=true, _usn_value=0x1ef7b48)
    at src/providers/ldap/sdap_async_accounts.c:860
        ret = <value optimized out>
        tmpctx = 0x2177e10
        posix_group = true
        el = 0x6e8df30
        group_attrs = 0x1ef7620
        name = 0x203a330 "spss-usr"
        gid = 70212
        usn_value = 0x0
#36 sdap_save_groups (memctx=0x1ef7b10, sysdb=0x1ed27f0, dom=0x1ed12e0, 
    opts=0x1eece60, groups=<value optimized out>, num_groups=1, 
    populate_members=true, _usn_value=0x1ef7b48)
    at src/providers/ldap/sdap_async_accounts.c:1004
        tmpctx = 0x218f540
        higher_usn = <value optimized out>
        usn_value = 0x0
        twopass = false
        ret = <value optimized out>
        i = <value optimized out>
        saved_groups = 0x0
        nsaved_groups = <value optimized out>
        __FUNCTION__ = "sdap_save_groups"
#37 0x00007f68a3e12dd7 in sdap_get_groups_done (subreq=0x0)
    at src/providers/ldap/sdap_async_accounts.c:1837
        req = 0x1ef6dc0
        state = 0x1ef7b10
        ret = <value optimized out>
        sysret = <value optimized out>
        __FUNCTION__ = "sdap_get_groups_done"
#38 0x0000003b8bc03707 in tevent_common_loop_immediate (ev=0x1ecf490)
    at tevent_immediate.c:135
        im = 0x1ef7bd0
        handler = 0x3b8bc046d0 <tevent_req_trigger>
        private_data = 0x1ef7740
#39 0x0000003b8bc0530a in std_event_loop_once (ev=0x1ecf490, 
    location=<value optimized out>) at tevent_standard.c:532
        std_ev = 0x1ecf550
        tval = {tv_sec = 0, tv_usec = 0}
#40 0x0000003b8bc026d0 in _tevent_loop_once (ev=0x1ecf490, 
    location=0x435373 "src/util/server.c:550") at tevent.c:490
        ret = <value optimized out>
        nesting_stack_ptr = 0x0
#41 0x0000003b8bc0273b in tevent_common_loop_wait (ev=0x1ecf490, 
    location=0x435373 "src/util/server.c:550") at tevent.c:591
        ret = <value optimized out>
#42 0x0000000000429493 in server_loop (main_ctx=0x1ed0590)
    at src/util/server.c:550
No locals.
#43 0x000000000040d1e7 in main (argc=<value optimized out>, 
    argv=<value optimized out>) at src/providers/data_provider_be.c:1254
        opt = <value optimized out>
        pc = <value optimized out>
        be_domain = 0x1ece400 "default"
        srv_name = <value optimized out>
        main_ctx = 0x1ed0590
        confdb_path = <value optimized out>
        ret = 0
        long_options = {{longName = 0x0, shortName = 0 '\000', argInfo = 4, 
            arg = 0x63ad40, val = 0, descrip = 0x42e452 "Help options:", 
            argDescrip = 0x0}, {longName = 0x42e460 "debug-level", 
            shortName = 100 'd', argInfo = 2, arg = 0x63ad14, val = 0, 
            descrip = 0x42e431 "Debug level", argDescrip = 0x0}, {
            longName = 0x42e46c "debug-to-files", shortName = 102 'f', 
            argInfo = 0, arg = 0x63ae20, val = 0, 
            descrip = 0x42f048 "Send the debug output to files instead of 
stderr", argDescrip = 0x0}, {longName = 0x42e47b "debug-timestamps", 
            shortName = 0 '\000', argInfo = 2, arg = 0x63ad18, val = 0, 
            descrip = 0x42e43d "Add debug timestamps", argDescrip = 0x0}, {
            longName = 0x42f9ac "domain", shortName = 0 '\000', argInfo = 1, 
            arg = 0x7fff7b828018, val = 0, 
            descrip = 0x42f080 "Domain of the information provider 
(mandatory)", argDescrip = 0x0}, {longName = 0x0, shortName = 0 '\000', argInfo 
= 0, 
            arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0}}
        __FUNCTION__ = "main"
A debugging session is active.

        Inferior 1 [process 11655] will be detached.

Quit anyway? (y or n) Detaching from program: /usr/libexec/sssd/sssd_be, 
process 11655
Regards,
-- 
Trond H. Amundsen <t.h.amund...@usit.uio.no>
Center for Information Technology Services, University of Oslo
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to