Re: [Patch] CLD: fix hang in ncld_sess_open if session open fails
Jeff Garzik <[email protected]> Wed, 14 Apr 2010 00:01:37 -0400
| Newsgroups | org.kernel.vger.hail-devel |
|---|---|
| Message-ID | <[email protected]> |
On 04/13/2010 08:22 PM, Pete Zaitcev wrote: > The problem turned out to be two-fold, with the same symptom. > > Firstly, we use is_open to signal that the caller thread may > proceed, but this is incorrect in case the thread open fails: > we still want the caller thread to proceed and deliver the > error indicator from ncld_sess_open to the application. > So, let's split is_up from the condition variable mechanism. > It continues to mean that the session is open and up, and > open_done is introduced for the waiting mechanism. > > In addition, we forgot to take a mutex around a call into > the cldc layer. It manifested itself in timers not firing, > and so we would hang waiting for an answer from CLD server. > > Signed-off-by: Pete Zaitcev<[email protected]> > > --- > include/ncld.h | 1 + > lib/cldc.c | 15 +++++++++++++-- > 2 files changed, 14 insertions(+), 2 deletions(-) > > This, I think, can go either before or after the e2e verbose. > My previous patch added a HAIL_VERBOSE in a strategic location, > but it's not really necessary and I took it out. applied