[Bug 1225844] [NEW] applications sometimes get into an infinite busy loop when doing krb5 authentication

Steve Langasek steve.langasek at canonical.com
Mon Sep 16 02:51:47 UTC 2013


Public bug reported:

>From time to time, kerberos authentication fails for me and the calling
application goes into a busy loop, using 100% of CPU.  I usually notice
this when the fan on my laptop kicks into high gear due to the sudden
excessive CPU utilization.

I've seen this both with local services using pam_krb5 (lightdm, gnome-
screensaver), and with clients to remote services that use libkrb5
directly (openssh-client).

Here's a gdb backtrace (with libkrb5-3 debugging symbols) of an ssh
client that's stuck this way.  The process never leaves service_fds.

#0  service_fds (context=context at entry=0x7fd6663a3b00, 
    selstate=selstate at entry=0x7fd6663aabf0, interval=interval at entry=1, 
    conns=conns at entry=0x7fd6663aa5a0, seltemp=seltemp at entry=0x7fd6663acc08, 
    msg_handler=msg_handler at entry=0x7fd6628d6fc0 <check_for_svc_unavailable>, 
    msg_handler_data=msg_handler_data at entry=0x7fff7b237ab8, 
    winner_out=winner_out at entry=0x7fff7b237978)
    at ../../../../src/lib/krb5/os/sendto_kdc.c:1169
#1  0x00007fd6628d85c1 in k5_sendto (context=context at entry=0x7fd6663a3b00, 
    message=message at entry=0x7fff7b237b40, 
    servers=servers at entry=0x7fff7b237ac0, socktype1=socktype1 at entry=2, 
    socktype2=socktype2 at entry=1, callback_info=callback_info at entry=0x0, 
    reply=reply at entry=0x7fff7b237b50, remoteaddr=remoteaddr at entry=0x0, 
    remoteaddrlen=remoteaddrlen at entry=0x0, 
    server_used=server_used at entry=0x7fff7b237abc, 
    msg_handler=msg_handler at entry=0x7fd6628d6fc0 <check_for_svc_unavailable>, 
    msg_handler_data=msg_handler_data at entry=0x7fff7b237ab8)
    at ../../../../src/lib/krb5/os/sendto_kdc.c:1290
#2  0x00007fd6628d89fa in krb5_sendto_kdc (
    context=context at entry=0x7fd6663a3b00, 
    message=message at entry=0x7fff7b237b40, realm=realm at entry=0x7fff7b237b60, 
    reply=reply at entry=0x7fff7b237b50, 
    use_master=use_master at entry=0x7fff7b237b3c, tcp_only=tcp_only at entry=0)
    at ../../../../src/lib/krb5/os/sendto_kdc.c:339
---Type <return> to continue, or q <return> to quit---
#3  0x00007fd6628b00e5 in krb5_tkt_creds_get (
    context=context at entry=0x7fd6663a3b00, ctx=0x7fd6663a8900)
    at ../../../../src/lib/krb5/krb/get_creds.c:1151
#4  0x00007fd6628b020d in krb5_get_credentials (
    context=context at entry=0x7fd6663a3b00, options=options at entry=0, 
    ccache=0x7fd6663a4630, in_creds=in_creds at entry=0x7fff7b237c50, 
    out_creds=out_creds at entry=0x7fff7b237c40)
    at ../../../../src/lib/krb5/krb/get_creds.c:1229
#5  0x00007fd66336117e in get_credentials (
    context=context at entry=0x7fd6663a3b00, cred=cred at entry=0x7fd6663a45b0, 
    now=1379278536, endtime=0, out_creds=out_creds at entry=0x7fff7b237ea0, 
    server=<optimized out>)
    at ../../../../src/lib/gssapi/krb5/init_sec_context.c:203
#6  0x00007fd6633765aa in kg_new_connection (exts=0x7fff7b237fa0, 
    context=0x7fd6663a3b00, time_rec=0x0, ret_flags=0x0, 
    output_token=0x7fff7b2380e0, actual_mech_type=0x0, input_token=0x0, 
    input_chan_bindings=0x0, time_req=0, req_flags=34, 
    mech_type=<optimized out>, target_name=0x7fd6663a4180, 
    context_handle=0x7fd6663a4060, cred=0x7fd6663a45b0, 
    minor_status=0x7fd6663a19d4)
    at ../../../../src/lib/gssapi/krb5/init_sec_context.c:619
#7  krb5_gss_init_sec_context_ext (minor_status=0x7fd6663a19d4, 
    claimant_cred_handle=0x7fd6663a45b0, context_handle=0x7fd6663a4060, 
---Type <return> to continue, or q <return> to quit---
    target_name=0x7fd6663a4180, mech_type=<optimized out>, req_flags=34, 
    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=0x7fff7b2380e0, 
    ret_flags=ret_flags at entry=0x0, time_rec=time_rec at entry=0x0, 
    exts=exts at entry=0x7fff7b237fa0)
    at ../../../../src/lib/gssapi/krb5/init_sec_context.c:1009
#8  0x00007fd663376ce1 in krb5_gss_init_sec_context (
    minor_status=<optimized out>, claimant_cred_handle=<optimized out>, 
    context_handle=<optimized out>, target_name=<optimized out>, 
    mech_type=<optimized out>, req_flags=<optimized out>, time_req=0, 
    input_chan_bindings=0x0, input_token=0x0, actual_mech_type=0x0, 
    output_token=0x7fff7b2380e0, ret_flags=0x0, time_rec=0x0)
    at ../../../../src/lib/gssapi/krb5/init_sec_context.c:1117
#9  0x00007fd663368cbd in gss_init_sec_context (minor_status=0x7fd6663a19d4, 
    claimant_cred_handle=0x0, context_handle=0x7fd6663a19d8, 
    target_name=0x7fd6663a2650, req_mech_type=<optimized out>, 
    req_flags=<optimized out>, time_req=0, input_chan_bindings=0x0, 
    input_token=0x0, actual_mech_type=0x0, output_token=0x7fff7b2380e0, 
    ret_flags=0x0, time_rec=0x0)
    at ../../../../src/lib/gssapi/mechglue/g_init_sec_context.c:211
---Type <return> to continue, or q <return> to quit---
#10 0x00007fd6644300f0 in ?? ()
#11 0x00007fd664430355 in ?? ()
#12 0x00007fd66442f983 in ?? ()
#13 0x00007fd66442fbe0 in ?? ()
#14 0x00007fd664407e22 in ?? ()
#15 0x00007fd664404a52 in ?? ()
#16 0x00007fd6643f96da in ?? ()
#17 0x00007fd662fb0de5 in __libc_start_main (main=0x7fd6643f8220, argc=5, 
    ubp_av=0x7fff7b23a8b8, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fff7b23a8a8) at libc-start.c:260
#18 0x00007fd6643fa7f5 in ?? ()
(gdb) info local
e = <optimized out>
selret = 1
now = {tv_sec = 1379278539, tv_usec = 792945}
state = <optimized out>
(gdb)

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: libkrb5-3 1.10.1+dfsg-6.1ubuntu1
ProcVersionSignature: Ubuntu 3.11.0-7.13-generic 3.11.0
Uname: Linux 3.11.0-7-generic x86_64
ApportVersion: 2.12.1-0ubuntu4
Architecture: amd64
Date: Sun Sep 15 19:46:40 2013
InstallationDate: Installed on 2010-09-24 (1087 days ago)
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
MarkForUpload: True
SourcePackage: krb5
UpgradeStatus: Upgraded to saucy on 2013-05-06 (132 days ago)

** Affects: krb5 (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug saucy

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to krb5 in Ubuntu.
https://bugs.launchpad.net/bugs/1225844

Title:
  applications sometimes get into an infinite busy loop when doing krb5
  authentication

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/krb5/+bug/1225844/+subscriptions



More information about the Ubuntu-server-bugs mailing list