On Monday, August 29, 2005 12:32:23 +0200 Harald Barth <[EMAIL PROTECTED]>
wrote:
Thanks! Now I can try something ;-) I'll give it a run at my cluster, so
we should know in a few days if it's fixed. Does this patch modify the
kernel module, the afsd or both?
this rx code ends up client side in the kernel module and in the
(userland) fileserver. I don't think there is much at all that afsd
does after the client has started. Looks to me that the patch changes
the behaviour in rx_NewCall() which decides what happens if the call
(which probably got recycled in rx.c line 1104) has error set. This
should convince the client to throw away the call (where later?). So
we're talking about the kernel module, aren't we? I don't know if the
error condition propagates to the other end of the rx-connection and
the patch is helpful in the fileserver, too.
Hm. What about doing something about call->error sooner around the
check for RX_STATE_DALLY? Somethink like if (call->error)
rxi_ResetCall()? Or is that too soon?
No; you're missing the point. The issue is not that we're recycling a call
that _does_ have an error; either rxi_NewCall or rxi_ResetCall will make
sure call->error is set to 0. The problem I'm trying to correct is that
when we attach a new call to a _connection_ which is already in an error
state, the error doesn't propagate down to the new call.
In any event, as Harald points out, this code ends up in pretty much
anything that uses Rx. However, the component you're going to care about
is the kernel module, since it's your clients that are originating new
calls on connections already in error.
-- Jeff
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel