mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 05:27:44 +00:00
1e5496856b
Commit 496fb87372555f6acddd4fd88b03c94c85f48511 ("rx: avoid nat ping until connection is attached") introduced functionality to defer turning on NAT ping for server connections until after reachability had been established for the client. Unfortunately, this feature could never work correctly because it assigned an out-of-range flag value of 256 (0x100) for the u_char flags field. Instead of calling this out as an error, both gcc and Solaris cc elide this flag so that it is never set in rx_SetConnSecondsUntilNatPing(), Furthermore, the test in rxi_ConnClearAttachWait() will always fail; therefore rxi_ScheduleNatKeepAliveEvent is never called after attach wait has ended. Fortunately, this bug is currently moot - not actually exposed in OpenAFS. (It was discovered by inspection). This is because there are currently no rx_connection objects in the tree that have both NAT ping and checkReach (rx_SetCheckReach) enabled. I also searched git history and found no time when this bug could ever have been exposed. This does raise the question of why the original commit was needed; but instead of reverting the original commit, this commit attempts to fix it. To prevent problems if NAT ping and checkReach are ever both enabled for an rx_connection, enlarge the rx_connection flags member so that the RX_CONN_NAT_PING value is no longer out of range. Reviewed-on: https://gerrit.openafs.org/13041 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit 55fca11421055d0bcee79f118ea2a035393cc6e5) Change-Id: I9b02ff06d7bf6ba0dfa30ed5ca17ddb89b517987 Reviewed-on: https://gerrit.openafs.org/14513 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
- dafs-fsa.dot is a description of the finite-state machine for volume states in the Demand Attach fileserver - dafs-vnode-fsa.dot is a description of the finite-state machine for vnodes in the Demand Attach fileserver. Both diagrams are in Dot (http://www.graphviz.org) format, and can be converted to graphics formats via an an invocation like: dot -Tsvg dafs-fsa.dot > dafs-fsa.svg