Bug 852195 - Poll loop in krb5_get_credentials in saslauthd [NEEDINFO]
Poll loop in krb5_get_credentials in saslauthd
Status: CLOSED INSUFFICIENT_DATA
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: krb5 (Show other bugs)
5.8
x86_64 Linux
unspecified Severity high
: rc
: ---
Assigned To: Nalin Dahyabhai
BaseOS QE Security Team
:
Depends On:
Blocks: 1049888
  Show dependency treegraph
 
Reported: 2012-08-27 16:07 EDT by Jonathan Reams
Modified: 2014-02-04 10:07 EST (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-01-07 10:56:18 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
dpal: needinfo? (jr3074)


Attachments (Terms of Use)
Core dump of saslauthd stuck in poll loop (11.79 MB, application/octet-stream)
2012-08-27 16:07 EDT, Jonathan Reams
no flags Details

  None (edit)
Description Jonathan Reams 2012-08-27 16:07:23 EDT
Created attachment 607342 [details]
Core dump of saslauthd stuck in poll loop

Description of problem:

Saslauthd periodically ends up in a tight loop inside krb5_get_credentials, with the kerberos libraries continuously calling poll and getting an error on one of the file descriptors back. lsof is unable to decode what the file descriptor is. Eventually all saslauthd processes are deadlocked, and nothing can authenticate. When strace'd, a saslauthd process is just doing this:

poll([{fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=12, events=POLLIN|POLLOUT}], 3, -5521820) = 1 ([{fd=12, revents=POLLIN|POLLERR|POLLHUP}])
poll([{fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=12, events=POLLIN|POLLOUT}], 3, -5521820) = 1 ([{fd=12, revents=POLLIN|POLLERR|POLLHUP}])
poll([{fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=12, events=POLLIN|POLLOUT}], 3, -5521820) = 1 ([{fd=12, revents=POLLIN|POLLERR|POLLHUP}])
poll([{fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=12, events=POLLIN|POLLOUT}], 3, -5521820) = 1 ([{fd=12, revents=POLLIN|POLLERR|POLLHUP}])
poll([{fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=12, events=POLLIN|POLLOUT}], 3, -5521820) = 1 ([{fd=12, revents=POLLIN|POLLERR|POLLHUP}])

Version-Release number of selected component (if applicable):

krb5-libs-1.6.1-70.el5
cyrus-sasl-2.1.22-5.el5_4.3

How reproducible:

This occurs periodically as our users authenticate, but we have not found the trigger that causes the failure. It can take as long as a few hours or as short as a few minutes for the problem to manifest. 

Since we cannot find the cause, the next few questions are unanswered.

Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Attached is the core dump of a saslauthd process with the issue.
Comment 1 Dmitri Pal 2013-11-07 19:38:53 EST
Is there any consistent reproducer?
If not we might have to close it as INSUFFICIENT DATA.
Comment 2 Nalin Dahyabhai 2014-01-07 10:56:18 EST
Marking as closed due to insufficient data.

Note You need to log in before you can comment on or make changes to this bug.