Bug 498056 - SASL/GSSAPI - Connection hangs when GSSAPI context expires
Summary: SASL/GSSAPI - Connection hangs when GSSAPI context expires
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.1.1
Hardware: All
OS: Linux
medium
medium
Target Milestone: 1.3
: ---
Assignee: Gordon Sim
QA Contact: MRG Quality Engineering
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-04-28 16:56 UTC by Ted Ross
Modified: 2011-08-12 16:22 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
When the GSSAPI security context expired on a running connection (i.e. when a Kerberos ticket expired), the client stopped communicating over the connection but the connection was not closed. With this update, the client closes the socket when a Kerberos ticket expires and the connection no longer appears to hang.
Clone Of:
Environment:
Last Closed: 2010-10-14 16:11:47 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2010:0773 0 normal SHIPPED_LIVE Moderate: Red Hat Enterprise MRG Messaging and Grid Version 1.3 2010-10-14 15:56:44 UTC

Description Ted Ross 2009-04-28 16:56:47 UTC
Description of problem:

When the GSSAPI security context expires on a running connection (i.e. when Kerberos ticket expires), the client stops communicating over the connection but the connection is not closed.

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

1.1.1

How reproducible:

100%

Steps to Reproduce:
1. Set up client and broker to communicate using SASL/GSSAPI
2. Configure the test KDC to issue tickets with short timeouts (i.e. 5 minutes)
3. Establish a connection from client to broker with communication (the cpp/examples/qmf-agent can be used)
  
Actual results:

When the ticket expires, messages no longer flow to the broker and the connection is not dropped.

Expected results:

Two possibilities:

1. The connection re-keys with repeated SASL exchanges so this never causes communication failure.  Note that this is an AMQP protocol change.
2. The connection should be dropped cleanly so it can be re-established.

Comment 1 Gordon Sim 2009-04-28 20:59:34 UTC
The client has been fixed to close the socket when this occurs (r769532 on qpid trunk). I've raised a new BZ for rekeying support: https://bugzilla.redhat.com/show_bug.cgi?id=498104

Comment 4 mick 2010-10-07 18:35:18 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause:
    When the GSSAPI security context expires on a running connection (i.e. when Kerberos ticket expires), the client stops communicating over the connection but the connection is not closed.


  Consequence:
    When the ticket expires, messages no longer flow to the broker and the connection is not dropped.


  Fix:
    Client now closes the socket when this occurs.


  Result:
    The connection no longer appears to hang when GSSAPI context expires.

Comment 5 Martin Prpič 2010-10-10 07:26:28 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1,14 +1 @@
-Cause:
+When the GSSAPI security context expired on a running connection (i.e. when a Kerberos ticket expired), the client stopped communicating over the connection but the connection was not closed. With this update, the client closes the socket when a Kerberos ticket expires and the connection no longer appears to hang.-    When the GSSAPI security context expires on a running connection (i.e. when Kerberos ticket expires), the client stops communicating over the connection but the connection is not closed.
-
-
-  Consequence:
-    When the ticket expires, messages no longer flow to the broker and the connection is not dropped.
-
-
-  Fix:
-    Client now closes the socket when this occurs.
-
-
-  Result:
-    The connection no longer appears to hang when GSSAPI context expires.

Comment 7 errata-xmlrpc 2010-10-14 16:11:47 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0773.html


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