]> git.michaelhowe.org Git - packages/o/openafs.git/commit
STABLE12-rx-deal-with-missed-keepalives-by-accurately-tracking-call-number-20011229
authorGarry Zacheiss <zacheiss@mit.edu>
Sat, 29 Dec 2001 23:17:48 +0000 (23:17 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sat, 29 Dec 2001 23:17:48 +0000 (23:17 +0000)
commit5e79c1ce4feb25a560b0c1f74b6a790e43062c87
tree1f42092745d8a9bf10841e1900d69243815e9ed8
parent676b66d3e5c3b88411059053e49db68d2c5fbdbf
STABLE12-rx-deal-with-missed-keepalives-by-accurately-tracking-call-number-20011229

(as originally discovered by ted@mit.edu)

"This fix deals with the following lose case:
  Client starts a call that, for some reason, takes a long time on the
  server.  While the client waits for the server to finish, client and
  server usually send each other keep alive packets.  If something
  causes those packets to be delayed or dropped, then the client will
  conclude that the call has failed or finished (usually failed), while
  the server is still *busy* doing the call.

  In this circumstance, the client will initiate another call and the
  server will correctly respond that it is busy.  Unfortunately, if the
  callNumber of a received packet doesn't match the callNumber of the
  outstanding call, then the client never sees that the server says it's
  busy.  Instead the server appears as a black hole to the client.

  This fix ensures that the client sees the busy packets when its
  callNumber is reasonably out of sync with the server."
src/rx/rx_packet.c