[krbdev.mit.edu #7508] Indefinite FD polling

Joschi Brauchle via RT rt-comment at krbdev.mit.edu
Mon Dec 17 09:48:20 EST 2012


 >Confidential:  no
 >Synopsis:      Indefinite polling on (possibly non-existent) FD causes 
hang and user lockout
 >Severity:      serious
 >Priority:      medium
 >Category:      krb5-libs
 >Class:         sw-bug
 >Release:       1.10.2
 >Environment:
OS: openSUSE 12.2
System: Linux st-brauchle 3.4.11-2.16-desktop #1 SMP PREEMPT Wed Sep 26 
17:05:00 UTC 2012 (259fc87) x86_64 x86_64 x86_64 GNU/Linux
Architecture: x86_64

 >Description:
After ticket expired, user ran 'kinit'. Then, rpc.gssd process was at 
100%. Strace on process shows indefinite polling of FD.

This the GDB bt:
------------
#0  0x00007fa04f857104 in __GI___poll (fds=0x7fa051ce70b8, nfds=1, 
timeout=-1242459) at ../sysdeps/unix/sysv/linux/poll.c:83
#1  0x00007fa04fda0134 in service_fds () from /usr/lib64/libkrb5.so.3
#2  0x00007fa04fda0f8c in k5_sendto () from /usr/lib64/libkrb5.so.3
#3  0x00007fa04fda140c in krb5_sendto_kdc () from /usr/lib64/libkrb5.so.3
#4  0x00007fa04fd776b5 in krb5_tkt_creds_get () from /usr/lib64/libkrb5.so.3
#5  0x00007fa04fd7781d in krb5_get_credentials () from 
/usr/lib64/libkrb5.so.3
#6  0x00007fa04e6bcc1d in get_credentials.isra.0 () from 
/usr/lib64/libgssapi_krb5.so
#7  0x00007fa04e6d2eaa in krb5_gss_init_sec_context_ext () from 
/usr/lib64/libgssapi_krb5.so
#8  0x00007fa04e6d3541 in krb5_gss_init_sec_context () from 
/usr/lib64/libgssapi_krb5.so
#9  0x00007fa04e6c4d86 in gss_init_sec_context () from 
/usr/lib64/libgssapi_krb5.so
#10 0x00007fa04fffcbad in gss_init_sec_context 
(minor_status=minor_status at entry=0x7fffe9b73d70, 
claimant_cred_handle=0x7fa051caf9b0,
     context_handle=context_handle at entry=0x7fa051cc1f68, 
target_name=0x7fa051cbf6f0, req_mech_type=<optimized out>, req_flags=2, 
time_req=time_req at entry=0,
     input_chan_bindings=input_chan_bindings at entry=0x0, 
input_token=input_token at entry=0x0, 
actual_mech_type=actual_mech_type at entry=0x0,
     output_token=output_token at entry=0x7fffe9b73d80, 
ret_flags=ret_flags at entry=0x7fffe9b73d74, time_rec=time_rec at entry=0x0) 
at g_init_sec_context.c:160
#11 0x00007fa05021fed7 in authgss_refresh 
(auth=auth at entry=0x7fa051cae090) at auth_gss.c:422
#12 0x00007fa0502202b9 in authgss_create 
(clnt=clnt at entry=0x7fa051cabcb0, name=0x7fa051cbc100, 
sec=sec at entry=0x7fffe9b73ef0) at auth_gss.c:201
#13 0x00007fa0502203cf in authgss_create_default 
(clnt=clnt at entry=0x7fa051cabcb0, service=0x7fa051ca8880 
"nfs at gemini.lnt.ei.tum.de",
     sec=sec at entry=0x7fffe9b73ef0) at auth_gss.c:233
#14 0x00007fa050655c53 in create_auth_rpc_client 
(clp=clp at entry=0x7fa051ca6360, 
clnt_return=clnt_return at entry=0x7fffe9b74388,
     auth_return=auth_return at entry=0x7fffe9b74390, uid=uid at entry=10011, 
authtype=authtype at entry=0) at gssd_proc.c:889
#15 0x00007fa050656180 in process_krb5_upcall 
(clp=clp at entry=0x7fa051ca6360, uid=10011, fd=12, 
tgtname=tgtname at entry=0x0, service=service at entry=0x0)
     at gssd_proc.c:1014
#16 0x00007fa050656903 in handle_gssd_upcall 
(clp=clp at entry=0x7fa051ca6360) at gssd_proc.c:1228
#17 0x00007fa05065487c in scan_poll_results (ret=1) at gssd_main_loop.c:84
#18 gssd_run () at gssd_main_loop.c:221
#19 0x00007fa0506535ef in main (argc=<optimized out>, argv=<optimized 
out>) at gssd.c:194
78	in ../sysdeps/unix/sysv/linux/poll.c
$1 = {fd = 16, events = 1, revents = 1}
93	in ../sysdeps/unix/sysv/linux/poll.c
0x00007fa04fda0134 in service_fds () from /usr/lib64/libkrb5.so.3
Single stepping until exit from function service_fds,
which has no line number information.
__GI___errno_location () at errno-loc.c:27
27	errno-loc.c: No such file or directory.
28	in errno-loc.c
0x00007fa04fda013b in service_fds () from /usr/lib64/libkrb5.so.3
Single stepping until exit from function service_fds,
which has no line number information.
__memcpy_ssse3_back () at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:60
60	../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: No such file or 
directory.
74	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
75	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
95	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
96	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
128	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
130	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
131	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
132	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
134	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
135	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
136	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
137	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
138	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
139	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
140	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
141	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
142	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
143	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
144	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
145	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
146	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
147	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
148	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
149	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
150	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
845	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
847	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
848	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
849	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
851	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
852	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
853	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
855	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
856	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
857	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
859	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
860	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
861	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
863	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
864	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
865	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
867	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
868	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
869	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
871	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
872	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
873	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
875	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
876	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
877	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
879	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
880	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
881	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
Run till exit from #0  __memcpy_ssse3_back () at 
../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:881
0x00007fa04fda0123 in service_fds () from /usr/lib64/libkrb5.so.3
881	in ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S
Run till exit from #0  0x00007fa04fda0123 in service_fds () from 
/usr/lib64/libkrb5.so.3

Program received signal SIGINT, Interrupt.
0x00007fa04f857104 in __GI___poll (fds=0x7fa051ce70b8, nfds=1, 
timeout=-1378045) at ../sysdeps/unix/sysv/linux/poll.c:83
83	../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
A debugging session is active.

	Inferior 1 [process 3228] will be detached.

Quit anyway? (y or n) Detaching from program: /usr/sbin/rpc.gssd, 
process 3228
------------

Note that there is a very similar bug report #7454 at 
http://krbdev.mit.edu/rt/Ticket/Display.html?id=7454, the proposed fix 
from 
https://github.com/krb5/krb5/commit/9eb2b4dfc136da326e54081ae18cb4d648c6500d 
has *already been applied*. Hence, there must be another problem with 
the FDs in the service_fds/k5_sendto function.


 >How-To-Repeat:
Not reproducible yet




More information about the krb5-bugs mailing list