Needs to retry connect() when interrupted by a signal

Bug #214770 reported by Andrew Pollock
8
Affects Status Importance Assigned to Milestone
librpcsecgss (Ubuntu)
Fix Released
Undecided
Unassigned
Hardy
Fix Released
Medium
Steve Langasek

Bug Description

The daemon rpc.gssd uses the clnttcp_create function from librpcsecgss.so to build authentication connections NFS servers providing Kerberized NFS. If a connect() call is taking a long time, then there is a good chance that a change to the pipefs will cause rpc.gssd to get a signal.

We've provided a patch to upstream, which they've accepted. 0.18 contains the fix. I'll also add the patch here, and look at providing a debdiff that incorporates the patch, if I can wrap my head around CDBS.

This bug impacts users of systems that utilise Kerberised NFS in an environment with automounting. On sufficiently loaded systems, the signal from a new mount may interrupt a connect() in progress for an existing mount being made. This can render NFS in such environments ineffective.

A patch has been provided upstream, which they have incorporated into the released 0.18 version of the software. 0.18-1 is in Debian, and A sync has been requested in #234297

A patch and debdiff are attached to this bug report.

TEST CASE:

Probably a difficult one, you'd need a Kerberised NFS environment to start with, then you'd have put the client mounting shares under load, and make subsequent mount attempts. I think it's fairly non-deterministic, but I'm not the original internal bug submitter, so I don't have first-hand details.

Revision history for this message
Andrew Pollock (apollock) wrote :
Revision history for this message
Andrew Pollock (apollock) wrote :
description: updated
Revision history for this message
Steve Langasek (vorlon) wrote :

marking as fixed in intrepid, which has 0.18.

Changed in librpcsecgss:
status: New → Fix Released
Steve Langasek (vorlon)
Changed in librpcsecgss:
assignee: nobody → vorlon
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Steve Langasek (vorlon) wrote :

uploaded to hardy-proposed, waiting for review from another member of ubuntu-sru.

Changed in librpcsecgss:
status: Triaged → In Progress
Revision history for this message
Martin Pitt (pitti) wrote :

Oh, the infamous EINTR again. My favourite on my personal list of "ten things I hate about Unix" :-). Looks ok for an SRU, thanks Andrew and Steve.

Changed in librpcsecgss:
status: In Progress → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

Accepted into -proposed, please test and give feedback here

Revision history for this message
Andrew Pollock (apollock) wrote :

We've been running this internally for some time now without any ill-effects

Revision history for this message
Martin Pitt (pitti) wrote :

Thanks for testing!

Revision history for this message
Martin Pitt (pitti) wrote :

Copied to hardy-updates.

Changed in librpcsecgss:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.