On March 4, 2003, a delta which is git commit 30f3ae458cb8ad84ceb1a8e2c6acc45af535d08e (a.k.a. new-giveup-all-callbacks-rpc-20030303) introduced RXAFS_GiveUpAllCallBacks.
This function had a defect in that the global host lock was not held by the server while the host list was manipulated, and in some cases the host list was corrupted. The function was not present in any 1.2 releases, however was included in 1.4.0 and was not fixed until 1.4.6, with, in that case, commit c9263a258a0aeb91d6ad27daa87cee67616874bc (a.k.a. STABLE146-giveupallcallbacks-locking-20071121) which landed on December 13, 2007. The change at http://gerrit.openafs.org/3404 would greatly increase client shutdown performance as well as taking some pressure off server callback utilization by allowing clients to relinquish callbacks to all servers in a single "multi-Rx" call. The drawback is that as there is no way with current RPCs to know what server version is running, sites running 1.4.0 through 1.4.5 would risk host list corruption and potentially a crash. An alternate version of 3404, patchset one, includes an implementation which cheats, namely, within a few months of GiveUpAllCallBacks being fixed, the GetStatistics64 RPC was introduced. Its existance would be used as a sentinel that GiveUpAllCallBacks was safe to issue. However, this was objected to as it ties unrelated RPCs together. Before this code appears in any release, comment would be welcome, appropriate and desired. -- Derrick _______________________________________________ OpenAFS-info mailing list [email protected] https://lists.openafs.org/mailman/listinfo/openafs-info
