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