[OpenAFS-devel] When is an AFS request-response completed?

Nickolai Zeldovich kolya@MIT.EDU
Fri, 02 Nov 2001 22:46:50 -0500


> I am observing (epoch, cid) pairs issued as AFS operations with various,
> sequential callNumbers without any response packets from the server that
> contain any data, only ACKs.  After the ACKs, the client increments the
> callNumber and issues an additional operation.

That's rather strange; as you point out, there should only be one
active call on a channel at any given time, and that matches my
understanding as well..

> What is the correct action for a server to take in this case?  Only
> respond to the last AFS Operation sent along that (epoch, cid) pair?

I believe this is what the BUSY packet type indicates: if the server
thinks a certain channel is assigned to an active call, and receives
a packet with a higher call number than that, it replies with a BUSY
packet, indicating that it dropped the packet and isn't done with
the previous call on that channel yet.

> Any insights or ways I could further clarify the situation?

Is this in the context of AFS, or just something else that's using Rx?
How are you analyzing the packets?  Could you run tcpdump (which should
include some Rx parsing code) and see what these calls are?

In theory it might be that the responses are coming back to another IP
address and port, but have the same epoch with the high bit set, which
makes it the same Rx connection, but I'm not sure the current Rx code
would actually do something like this.

-- kolya