On 15/05/13 09:00, Lukas Slebodnik wrote:
On (14/05/13 23:42), steve wrote:
> On 14/05/13 23:11, Lukas Slebodnik wrote:
>> On (14/05/13 23:00), steve wrote:
>>> Hi
>>> with id_provider=ad, sssd exits after e.g. issuing d <user>
>>> It works fine with id_provider=ldap
>>>
>>> here are te errors with the ad:
>>>
>>> (Tue May 14 22:55:31 2013) [sssd[pam]] [sbus_reconnect] (0x0080):
>>> Making reconnection attempt 3 to
>>> [unix:path=/usr/local/var/lib/sss/pipes/private/sbus-dp_default]
>>> (Tue May 14 22:55:31 2013) [sssd[pam]] [sbus_reconnect] (0x0080):
>>> Reconnected to
>>> [unix:path=/usr/local/var/lib/sss/pipes/private/sbus-dp_default]
>>> (Tue May 14 22:55:31 2013) [sssd[pam]] [pam_dp_reconnect_init]
>>> (0x0020): Reconnected to the Data Provider.
>>> (Tue May 14 22:55:31 2013) [sssd[nss]] [sbus_reconnect] (0x0080):
>>> Making reconnection attempt 3 to
>>> [unix:path=/usr/local/var/lib/sss/pipes/private/sbus-dp_default]
>>> (Tue May 14 22:55:31 2013) [sssd[nss]] [sbus_reconnect] (0x0080):
>>> Reconnected to
>>> [unix:path=/usr/local/var/lib/sss/pipes/private/sbus-dp_default]
>>> (Tue May 14 22:55:31 2013) [sssd[nss]] [nss_dp_reconnect_init]
>>> (0x0020): Reconnected to the Data Provider.
>>> (Tue May 14 22:55:31 2013) [sssd[nss]] [nss_cmd_getby_dp_callback]
>>> (0x0040): Unable to get information from Data Provider
>>> Error: 3, 5, (null)
>>> Will try to return what we have in cache
>>> (Tue May 14 22:55:31 2013) [sssd[be[default]]] [be_run_online_cb]
>>> (0x0080): Going online. Running callbacks.
>>> (Tue May 14 22:55:32 2013) [sssd] [sbus_dispatch] (0x0080):
>>> Connection is not open for dispatching.
>>> (Tue May 14 22:55:32 2013) [sssd[pam]] [sbus_dispatch] (0x0020):
>>> Performing auto-reconnect
>>> (Tue May 14 22:55:32 2013) [sssd[nss]] [sbus_dispatch] (0x0020):
>>> Performing auto-reconnect
>>> (Tue May 14 22:55:32 2013) [sssd] [mt_svc_exit_handler] (0x0040):
>>> Child [default] terminated with signal [11]
>
>> Signal 11 is SIGSEGV and it is bad.
>> Could you generate a backtrace?
>
> (gdb) bt full
> #0 0xb7fdd416 in __kernel_vsyscall ()
> No symbol table info available.
> #1 0xb7d95f18 in epoll_wait () from /lib/i386-linux-gnu/libc.so.6
> No symbol table info available.
> #2 0xb7ee1a8a in ?? () from /usr/lib/i386-linux-gnu/libtevent.so.0
> No symbol table info available.
> #3 0xb7eddef8 in _tevent_loop_once ()
> from /usr/lib/i386-linux-gnu/libtevent.so.0
> No symbol table info available.
> #4 0xb7ede0cc in tevent_common_loop_wait ()
> from /usr/lib/i386-linux-gnu/libtevent.so.0
> No symbol table info available.
> #5 0xb7ede167 in _tevent_loop_wait ()
> from /usr/lib/i386-linux-gnu/libtevent.so.0
> No symbol table info available.
> #6 0xb7f525de in server_loop (main_ctx=0x8070490) at src/util/server.c:602
> No locales.
> #7 0x0804bd65 in main (argc=3, argv=0xbffff804) at
> src/monitor/monitor.c:2801
> opt = <optimized out>
> pc = <optimized out>
> opt_daemon = 0
> opt_interactive = 1
> opt_version = 0
>
> How do I build to get the debugging?
>
You have debug symbols in sssd (frame #7,#6), but you don't have debug symbols
in library libtevent (frame #5-#2) and glibc (frame #1,#0)
It seems that either you found bug in libteven or you did not properly generate
backtrace. It is litle bit tricky to debug multi process application.
The best way, how to obtain backtrace is from core dump file.
Core file is not generated by default. You can allow it with command:
sh4.2# ulimit -c unlimited
//then you have to run sssd from the same terminal, debug level is optional in
//this case
sh4.2# sssd -i -d7
//perform action to reproduce bug (segfault)
//New file(core) should be created in current directory
//It is very likely, that core will be generated from sssd_be (I guess)
//You can check it by calling command
sh4.2# file ./core
//you can see similar output from file command
//./core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from
'xterm'
^^^^^^^^
This information is important
name_of_segfaulted_process
//run gdb
sh4.2# gdb <name_of_segfaulted_proces> ./core
(gdb) bt full
LS
Hi Thanks for the explanation. It was sssd_be
steve@pinoso:~$ sudo file ./core
./core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV),
SVR4-style, from '/usr/local/libexec/sssd/sssd_be --domain default -d
0x00f0'
steve@pinoso:~$ sudo gdb /usr/local/libexec/sssd/sssd_be ./core
GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntu
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<
http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Para las instrucciones de informe de errores, vea:
<
http://www.gnu.org/software/gdb/bugs/>...
Leyendo símbolos desde /usr/local/libexec/sssd/sssd_be...hecho.
[Nuevo LWP 27356]
aviso: No se puede leer el nombre de la ruta para cargar el mapa: Error
de entrada/salida.
[Depuración de hilo usando libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
El núcleo se generó por «/usr/local/libexec/sssd/sssd_be --domain
default -d 0x00f0».
El programa terminó con la señal 11, Segmentation fault.
#0 0xb65c3a7c in ad_subdomains_get_netlogon_done (req=0x0)
at src/providers/ad/ad_subdomains.c:317
317 ret = sysdb_attrs_get_el(reply[0], AD_AT_NETLOGON, &el);
(gdb) bt full
#0 0xb65c3a7c in ad_subdomains_get_netlogon_done (req=0x0)
at src/providers/ad/ad_subdomains.c:317
ret = <optimized out>
reply_count = 0
reply = 0x0
ctx = 0x843c3f8
el = <optimized out>
blob = {data = 0x1 <Address 0x1 out of bounds>, length =
3075350213}
ndr_err = <optimized out>
ndr_pull = 0x0
response = {ntver = 3077177344, data = {nt4 = {command =
138736448,
pdc_name = 0x0, user_name = 0x844f370 "",
domain_name = 0xb769b885
"\213D$\034\213\070\205\377\017\205\363\376\377\377\203\304<[^_]Ð\215t&",
nt_version
= 0, lmnt_token = 60952,
lm20_token = 49116}, nt5 = {command = 138736448, pdc_name
= 0x0,
user_name = 0x844f370 "",
domain_name = 0xb769b885
"\213D$\034\213\070\205\377\017\205\363\376\377\377\203\304<[^_]Ð\215t&",
domain_uuid
= {time_low = 0,
time_mid = 60952, time_hi_and_version = 49116,
clock_seq = "\330;", node = "ڶ@\244a\267"}, zero_uuid
= {
time_low = 138754536, time_mid = 60968,
time_hi_and_version = 49116, clock_seq = "\001",
node = "\000\000\324\016E\b"}, forest = 0x0,
---Type <return> to continue, or q <return> to quit---
---Type <return> to continue, or q <return> to quit---
dns_domain = 0x8450ef8 "",
pdc_dns_name = 0xb769da50 "TALLOC_FREE_FILL",
pdc_ip = 0x5 <Address 0x5 out of bounds>,
server_type = 3067879244, nt_version = 3218927144,
lmnt_token = 46937, lm20_token = 46953}, nt5_ex = {
command = 138736448, sbz = 0, server_type = 138736496,
domain_uuid = {time_low = 3077159045, time_mid = 0,
time_hi_and_version = 0,
clock_seq = <incomplete sequence \356>, node =
"ܿ\330;ڶ"},
forest = 0xb761a440 "", dns_domain = 0x84539e8 "",
pdc_dns_name = 0xbfdcee28 "\350\071E\b",
domain_name = 0x1 <Address 0x1 out of bounds>,
pdc_name = 0x8450ed4 "", user_name = 0x0,
server_site = 0x8450ef8 "",
client_site = 0xb769da50 "TALLOC_FREE_FILL",
sockaddr_size = 5 '\005', sockaddr = {
sockaddr_family = 3067879244,
pdc_ip = 0xbfdcee28 "\350\071E\b", remaining = {
data = 0xb769b759 "\201çH", length = 3077177344}},
next_closest_site = 0x844f068 "\300\016E\b\030\370D\b
\370D\b",
nt_version = 0, lmnt_token = 3832, lm20_token = 2117}}}
__FUNCTION__ = "ad_subdomains_get_netlogon_done"
#1 0xb76a5043 in _tevent_req_notify_callback ()
---Type <return> to continue, or q <return> to quit---
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#2 0xb76a51fa in _tevent_req_done ()
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#3 0xb641117a in sdap_get_generic_done (subreq=0x0)
at src/providers/ldap/sdap_async.c:1558
req = 0x844f758
ret = 0
__FUNCTION__ = "sdap_get_generic_done"
#4 0xb76a5043 in _tevent_req_notify_callback ()
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#5 0xb76a51fa in _tevent_req_done ()
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#6 0xb64177da in sdap_get_generic_ext_done (op=0x8450430, reply=0x844f168,
error=0, pvt=0x844f098) at src/providers/ldap/sdap_async.c:1407
req = 0x844f098
state = <optimized out>
errmsg = 0x0
result = 0
ret = <optimized out>
---Type <return> to continue, or q <return> to quit---
lret = <optimized out>
total_count = <optimized out>
cookie = {bv_len = 3077177344, bv_val = 0xb773a000 "P\016\a"}
returned_controls = 0x0
page_control = <optimized out>
__FUNCTION__ = "sdap_get_generic_ext_done"
#7 0xb64159e1 in sdap_process_message (msg=0x8457138, ev=<optimized out>,
sh=<optimized out>) at src/providers/ldap/sdap_async.c:366
msgtype = <optimized out>
ret = 0
reply = 0x844f168
op = 0x8450430
msgid = <optimized out>
#8 sdap_process_result (ev=<optimized out>, pvt=<optimized out>)
at src/providers/ldap/sdap_async.c:209
sh = <optimized out>
no_timeout = {tv_sec = 0, tv_usec = 0}
te = <optimized out>
msg = 0x8457138
ret = 101
__FUNCTION__ = "sdap_process_result"
#9 0xb76a7b4b in ?? () from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#10 0xb76a3ef8 in _tevent_loop_once ()
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#11 0xb76a40cc in tevent_common_loop_wait ()
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#12 0xb76a4167 in _tevent_loop_wait ()
from /usr/lib/i386-linux-gnu/libtevent.so.0
No symbol table info available.
#13 0xb77195de in server_loop (main_ctx=0x841a788) at src/util/server.c:602
No locales.
#14 0x0804c423 in main (argc=5, argv=0xbfdcf304)
at src/providers/data_provider_be.c:2771
opt = <optimized out>
pc = <optimized out>
be_domain = 0x8419230 "default"
srv_name = <optimized out>
main_ctx = 0x841a788
confdb_path = <optimized out>
ret = <optimized out>
long_options = {{longName = 0x0, shortName = 0 '\000', argInfo
= 4,
arg = 0x8085520 <poptHelpOptions@@LIBPOPT_0>, val = 0,
descrip = 0x8079b1b "Help options:", argDescrip = 0x0}, {
---Type <return> to continue, or q <return> to quit---
longName = 0x8079b29 "debug-level", shortName = 100 'd',
argInfo = 2, arg = 0x8085590 <debug_level>, val = 0,
descrip = 0x8079b35 "Debug level", argDescrip = 0x0}, {
longName = 0x8079b41 "debug-to-files", shortName = 102
'f',
argInfo = 0, arg = 0x8085510 <debug_to_file>, val = 0,
descrip = 0x807b078 "Send the debug output to files instead
of stderr", argDescrip = 0x0}, {longName = 0x8079b50 "debug-timestamps",
shortName = 0 '\000', argInfo = 2,
arg = 0x8085500 <debug_timestamps>, val = 0,
descrip = 0x8079b61 "Add debug timestamps", argDescrip =
0x0}, {
longName = 0x8079b76 "debug-microseconds", shortName = 0
'\000',
argInfo = 2, arg = 0x8085594 <debug_microseconds>, val = 0,
descrip = 0x807b0ac "Show timestamps with microseconds",
argDescrip = 0x0}, {longName = 0x807b67c "domain",
shortName = 0 '\000', argInfo = 1, arg = 0xbfdcf164, val = 0,
descrip = 0x807b0d0 "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"
(gdb)