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

Andrew J Klosterman andrew5@andrew.cmu.edu
Sat, 3 Nov 2001 10:39:13 -0500 (EST)


On Sat, 3 Nov 2001, Jeffrey Hutzelman wrote:
> On Fri, 2 Nov 2001, Andrew J Klosterman wrote:
> > 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.
>
> Do the RPC's in question have any OUT arguments?  If not, then the server
> will have no data to send.

Yes, they certainly do.  The operations I see most often are FetchData,
in the previously described circumstances.

And, the second part of your comment intrigues me.  If the FetchData
operation fails for some reason -- e.g., the requested data does not exist
-- does the server have respond with the OUT arguments?

Or can it simply tell the client in an ACK packet "Hey, you're doing
something stupid, this call is finished!  Feel free to move on to
something else on this channel."

This idea indicates to me that I would need to look deeper into the
semantics of interactions between AFS operations and Rx ACK packets.
Anyone have any idea on this?  Where to look, experience with it?

> Do the ACK packets you're seeing have the LAST-PACKET bit set?  If so,
> that serves as an indication that the call is complete and was successful,
> and no more packets will be sent for that call.

The LAST_PACKET flag is not set in the Rx ACK packets.  From the cursory
glance I've just taken of my trace, none of the ACK packets appear to have
the LAST_PACKET flag set.

--Andrew J. Klosterman
andrew5@andrew.cmu.edu
http://www.ece.cmu.edu/~andrew5