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