From 1364c1880c3dda9017073f69ff40ec16492d21a3 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 7 Nov 2007 04:09:13 +0000 Subject: [PATCH] DEVEL15-windows-notes-20071106 1.5.27 --- doc/txt/winnotes/afs-changes-since-1.2.txt | 113 +++++++++++++++++++++ doc/txt/winnotes/afs-issues.txt | 2 +- 2 files changed, 114 insertions(+), 1 deletion(-) diff --git a/doc/txt/winnotes/afs-changes-since-1.2.txt b/doc/txt/winnotes/afs-changes-since-1.2.txt index 8eba5ed6c..eef61dc5b 100644 --- a/doc/txt/winnotes/afs-changes-since-1.2.txt +++ b/doc/txt/winnotes/afs-changes-since-1.2.txt @@ -1,3 +1,116 @@ +Since 1.5.26 + * Fix NSIS uninstall from the .MSI installer. + + * Add Stack Frame logging for AMD64 + + * Add support for EWOULDBLOCK to cm_Analyze. If the file + server returns EWOULDBLOCK, retry the request every two + seconds for up to the RDRtimeout. + + * Reorganize the order of the includes to ensure that EWOULDBLOCK + is not assigned the same value as EIO. + + * Update CellServDB to GCO Public 25 Oct 2007 + + * Add additional validation and error handling code after + each call to getSlot(). If an invalid slot is returned, + return NONODE. If the invalid slot is returned when + extracting a data node, invalidate the tree. + + * Modify compareKeys() to always perform a case-insensitive + comparison and only perform a case sensistive comparison + if the case-insensitive one matches. This ensures the + ordering is consistently reported. + + * Add lock assertions to ensure that all calls are being + performed with the correct locks being held. There have been + some crash reports that provide stack data that does not appear + to be possible unless there is a race. However, there are no + obvious locations where the race is taking place and the test + suite indicates that all of the correct locks are being held. + We shall see what happens in the field. + + * For consistency replace all calls to findKey in which the range i + s (1,numentries) with calls to getSlot(). + + * Optimize the depth search loop by testing the slot value in the + for statement instead of forcing the loop to be broken later. + + * Reorganize the locking for cm_BeginDirOp and cm_EndDirOp. + There are a number of locations where locks are obtained, dropped, + and reobtained. This reorganization attempts to accomplish several + things: + + (1) be optimistic for the most common case so it will be fast + + (2) add consistency checks after each location where locks are + dropped and re-obtained. If we lose a race in cm_BeginDirOp + and the bplus tree is out of date, retry until we get to a + consistent state that we can use. + + (3) Ensure that all operations take place with the correct locks. + + * One of the issues that has become a serious problem since the + addition of the local directory updates is that although cm_SyncOp + synchronizes operations, it does not preserve the order of requests. + This has always been a problem in that it has been possible for a + request to fail to complete due to its worker thread's bad luck. + When a request takes longer than the Windows SMB Redirector's timeout, + the SMB Redirector tears down the SMB virtual circuit. + + When using the local directory updates it is really important that + the directory update operations complete in the order that they were + sent to the file server. If they don't, then the local directory state + and the file server state will not match and the local directory state + must be discarded which in turn forces a new read of the entire + directory contents over the network. + + This patch adds a new cm_scache_waiter_t object that is used to store + the current thread, buffer, and syncop flags within a waiters queue + on each cm_scache_t object. If a thread is forced to sleep in + cm_SyncOp, upon waking it will check to see if there are any other + threads waiting that are attempting to perform a similar task ahead + of it in the queue. If yes, the thread goes back to sleep. If not, + it goes ahead and enters the cm_SyncOp conflict resolution block. + + This patch has the additional side effect of reducing the number of + competing threads that must obtain the cm_scache_t mutex and process + the cm_SyncOp conflict resolution block. As a result, the overall CPU + utilization of the service and the clock time associated with processing + requests will be reduced. + + * assert that the cm_scache_t mutex is held when calling + buf_ForceDataVersion(). + + * rename findNode to leafNode in bplus_Lookup + + * replace all OutputDebugString calls with osi_LogX calls + + * modify bestMatch to special case the return values for leaf nodes. + If an entry is above or below the values available in the leaf node + return BTLOWER or BTUPPER instead of BTERROR. + + * In insert and delete operations check for BTLOWER/BTUPPER and isleaf, + if true convert to either slot 0 or Max and perform the insertion. + This produces easier to read code when performing lookups. + + * modify lock_AssertXXX macros to call osi_assertx() and provide a + descriptive message. + + * the difference between osi_assert() and osi_assertx() is whether or not + a description is specified as part of the call. When no message is + specified afsd_notifier() is called with a NULL msgp parameter. This + results in a null pointer dereference during the EventLog() call. + + As a result, none of the information describing the assertion is written + to the log file. + + This commit sets a default message for use when no other message is + provided and it replaces all calls to osi_assert with osi_assertx and + adds descriptions. + + * Migrate B+ tree search key into thread local storage + Since 1.5.25 * Fix an uninitialized variable in lana_IsLoopback() which could result in a random determination that a loopback diff --git a/doc/txt/winnotes/afs-issues.txt b/doc/txt/winnotes/afs-issues.txt index 97aa38068..095df49fe 100644 --- a/doc/txt/winnotes/afs-issues.txt +++ b/doc/txt/winnotes/afs-issues.txt @@ -1,4 +1,4 @@ -This file is a rough list of known issues with the 1.5.23 release of OpenAFS +This file is a rough list of known issues with the 1.5.27 release of OpenAFS on Windows. This list is not complete. There are probably other issues which can be found in the RT database or on the mailing list. -- 2.39.5