[OpenAFS-devel] Re: idle dead timeout processing in clients

Andrew Deason adeason@sinenomine.net
Wed, 30 Nov 2011 12:58:32 -0600


On Wed, 30 Nov 2011 18:48:47 +0000
Simon Wilkinson <sxw@inf.ed.ac.uk> wrote:

> The idle dead code isn't in any shipping versions of 1.4. Current 1.4
> clients won't get RX_CALL_TIMEOUT, or RX_CALL_DEAD.

I'm not sure if we're talking about completely different things or what.
The afs_BlackListOnce code exists in (shipping) 1.4 and, I mean, it
certainly gets _called_. If I insert a sleep(10000) into the FetchStatus
handler, the client will give an error (or failover to another site,
etc); it won't just hang forever on the request.

And this exists in 1.4 rxi_CheckCall:

    /* see if we have a non-activity timeout */
    if (call->startWait && conn->idleDeadTime
        && ((call->startWait + conn->idleDeadTime) < now) &&
        (call->flags & RX_CALL_READER_WAIT)) {
        if (call->state == RX_STATE_ACTIVE) {
            rxi_CallError(call, RX_CALL_TIMEOUT);
            return -1;
        }
    }

-- 
Andrew Deason
adeason@sinenomine.net