Windows: change log for 1.5.9905
[openafs.git] / doc / txt / winnotes / afs-changes-since-1.2.txt
index cc1b1c2..54ca21d 100644 (file)
@@ -1,3 +1,283 @@
+Since 1.5.9904 (1.6pre4)
+ * Fix caching of non-existent volumes.  The test to
+   trigger an immediate CM_ERROR_NOSUCHVOLUME in
+   cm_UpdateVolumeLocation() was backwards.
+
+ * Prevent the background daemon from checking the
+   status of non-existent volumes.  cm_CheckOfflineVolumes()
+   should skip volume groups with the CM_VOLUMEFLAG_NOEXIST
+   flag set.
+
+ * The afskfw library should return an error immediately
+   if the krb5_32.dll library cannot be loaded.  Affects
+   afslogon.dll and afscreds.exe.
+
+ * No longer depend on leashw32.dll in afskfw library.
+
+ * NPLogonNotify must provide the user password in all
+   calls to KFW_AFS_get_cred().  It cannot count on a
+   credential cache being preserved between calls.  Permits
+   tokens to be acquired for all cells listed in the
+   TheseCells registry value for a domain.
+
+ * Improve the trace logging from NPLogonNotify().
+
+ * Avoid a race when writing the cm_scache_t mountPointString
+   when acquiring mount point or symlink target data via
+   cm_GetData().  The race could result in bogus target
+   data being cached.
+
+ * Permit the use of des-cbc-md5 and des-cbc-md4 enctypes
+   as DES keys in asetkey.exe.
+
+Since 1.5.9903 (1.6pre3)
+ * Fix automatic addition of Freelance cell mount points
+   broken in 1.5.9902.
+
+ * Avoid recursive offline volume checks which could cause
+   a crash due to stack exhaustion.
+
+Since 1.5.9902 (1.6pre2)
+ * rx calls issued on a busy call channel are now specially
+   handled and logged.  All calls are automatically retried.
+
+ * The vos support for multi-homed servers was incorrectly
+   implemented.  The changes have been reverted.
+
+ * Avoid wasting cm_buf_t objects and associated data buffers
+   for obtaining mountpoint and symlink target strings.  Instead
+   read them directly into the cm_scache_t mountPointTarget
+   buffer.
+
+ * Optimize the evaluation of mountpoint and symlink targets
+   by skipping the FetchStatus and a full round-trip if
+   the cache manager does not have valid status information
+   for the object.
+
+ * Fix the abstraction of cm_FreelanceAddMount() by passing
+   in volume names that do not include the trailing dot.
+
+Since 1.5.78
+ [there was no 1.6pre1 for Windows]
+
+ * vos commands now manipulate servers by UUID and can
+   recognize multi-homed servers.
+
+ * afs_config will not longer set the Tray Icon State
+   in the registry if the checkbox is not present in
+   the dialog. [RT 128591]
+
+ * Heimdal's roken utility library has been added
+   as \Program Files\Common\afsroken.dll
+
+ * When probing servers to determine if they are up or down
+   no longer issue an RXAFS_GetTime RPC to servers that indicated
+   that they do not understand the RXAFS_GetCapabilities RPC.
+   Since they responded it is known that they are up.
+
+ * AFS Explorer Shell Extension now works from folder
+   backgrounds.  Overlays for mount points and symlinks
+   are present in the dll, but are not registered at present
+   by the installers.
+
+ * Do not use RankServerInterval registry value as the value for
+   PerformanceTuningInterval.
+
+ * CellServDB updated to 13 Dec 2010 release from grand.central.org
+
+ * Add "fs chmod" command and display current mode as part
+   of "fs examine" output.
+
+ * When the data version of a mountpoint or symlink changes,
+   the target string in the cm_scache_t object must be cleared.
+   Otherwise, the new target will not be queried.
+
+ * "fs checkservers" now includes vldb servers in the output
+   and only lists multi-homed servers once.  A multi-homed
+   server that has at least one up interface is no longer
+   considered to be down.
+
+ * When asynchronously storing dirty data buffers to the
+   file server ensure that (a) the cm_scache_t object and
+   the cm_buf_t object are for the same File ID so that
+   locking and signalling work properly; and (b) if the
+   FID no longer exists on the file server, do not panic,
+   just discard the buffer.
+
+ * When processing VNOVOL, VMOVED and VOFFLINE errors perform
+   server comparisons by UUID or address and not simply by
+   cm_server_t pointer.  Otherwise, server failover may not
+   succeed.
+
+ * Do not preserve status information for cm_scache_t objects
+   when the issuing server is multi-homed.
+
+ * Giving up all callbacks when shutting down or suspending
+   the machine is now significantly faster due to the use
+   of an rx_multi implementation.  (This functionality is
+   still off by default and must be activated by a registry
+   value.)
+
+ * Race conditions were possible when updating the state
+   of the cm_volume_t flags and when moving the volumes
+   within the least recently used list.
+
+ * Ensure that the lanahelper library does not perform a
+   NCBRESET of each lan adapter when enumerating the
+   current network bindings.  Correcting this permits OpenAFS
+   to work on Windows 7 when the network adapter settings
+   change.
+
+ * Fix creation of mount points and symlinks as \\AFS\xxxx
+
+
+Since 1.5.77
+ * Reimplement FetchData and StoreData operations to make
+   use of rx_Writev and rx_Readv which is faster than than
+   multiple calls to rx_Write and rx_Read.  Throughput
+   improvements of up to 20% are possible.
+
+ * Many improvements to the rx rpc stack:
+
+   - RTT measurements
+
+   - Fast recovery is not triggered by packet resend timeouts
+
+   - Socket errors are now detected and reported
+
+   - avoid repetitive memory allocations
+
+   - avoid calling gettimeofday() for every packet
+
+   - reduced dependency on the call->lock
+
+   - When a call receive is completed, ack all of the packets
+     immediately.  Do not wait for the first response packet
+     to be sent.
+
+   - Do not hold the call->lock during rx_Write* and rx_Read*
+     operations when the call fields in use can only be accessed
+     by the application thread.
+
+   - Reduce the default window size from 128 back to 32 because
+     the current overhead from walking packet queues in the rx
+     listener thread significantly hampers the ability to
+     process incoming packets from the network.
+
+   - Only backoff the peer timeout once for a series of naks.
+
+   - Release builds are lean and mean.  All debugging and
+     packet tracking code is disabled.
+
+ * Version number is logged to the Windows Application Event
+   Log as part of the start pending message.
+
+ * MSI installers now backup and restore configuration
+   data during upgrades.
+
+ * Rx pmtu discovery has been disabled by default.  Use
+     HKLM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
+       RxPMTUDiscovery "DWORD"
+   value to re-activate.
+
+ * cm_BkgDaemon event evaluation has been optimized to avoid
+   unnecessary overhead.
+
+ * If a volume is known to be readonly, then locally fail any
+   change request without sending it to the file server.  This
+   avoids triggering the file server's abort threshold.
+
+ * Do not leak cm_volume_t objects from the volume LRU queue.
+
+ * Ensure that cm_NameI errors are acted upon promptly.
+   There are many cases in the SMB server where an error from cm_NameI()
+   was either ignored or not acted upon until several other operations
+   are performed that could result in the same error being repeated.
+   This is a mistake which did not have negative side effects until
+   additional checks for callback status were added recently.
+
+   At present, if a CM_ERROR_ACCESS error is returned and ignored,
+   subsequent attempts to operate on the same cm_scache_t will result
+   in additional queries to the file server that will also end in an
+   abort response.  This can trigger the file server to delay responses
+   to the client.
+
+ * Fix fs mount point and symlink create operations which were
+   failing due to improper directory separator termination.
+
+ * RXAFS_GetVolumeStatus can return VNOVOL, VMOVED, etc.  In
+   order to process them and update volume state a fid must
+   be passed to cm_Analyze().  Use the volume root fid.
+
+ * Negative caching for volume lookups that fail with either
+   VL_NOENT or VL_BADNAME.  The expiration time is five minutes.
+   This prevents volume lookup storms.
+
+ * Provide each volume lookup its own two hour lifetime instead
+   of reseting all volume location information every two hours.
+   This prevents the first smb path evaluation after the volume
+   location data has been discarded from potentially causing an
+   smb client timeout.
+
+Since 1.5.76
+ * When the SYSTEM account is in use, the SMB connection is
+   not always established as S-1-5-18.  Sometimes it uses an
+   anonymous, S-1-5-7, connection.  In both cases the SMB
+   authentication name is the nul string.  To better identify
+   when an SMB connection is local system, the smb_username_t
+   is now stored as a SID instead of a user name.  When a SID
+   is used, a new flag bit is set SMB_USERNAMEFLAG_SID.
+
+   In smb_SetToken if AFS_PIOCTL_AFSLOGON is set and the user
+   connection is not SYSTEM, the RPC SID is checked.  If RPC
+   SID is SYSTEM, that supercedes the SMB authentication.
+
+ * Replace STATUS_IO_TIMEOUT with RPC_NT_SERVER_TOO_BUSY for
+   CM_ERROR_ALLBUSY.
+
+ * Replace STATUS_PATH_NOT_FOUND with RPC_NT_SERVER_UNAVAILABLE
+   for CM_ERROR_ALLOFFLINE and CM_ERROR_ALLBUSY.
+
+ * Optimize behavior of buf_CleanAsyncLocked().  Avoid searching
+   for the cm_scache_t object by FID if it is already known.
+
+ * If the readonly file attribute is set (stored as a unix mode)
+   then a CreateFile operation should fail if the file is opened
+   for DELETE in combination with any other privilege.
+
+ * If the directory buffer contents are garbage we can crash
+   the service.  Add some simple validation checks to ensure
+   that cm_dirEntry_t objects have the correct flag value and
+   that the name strings are not too long.
+
+ * If the bulkStat errorCode indicates that a particular object
+   is inaccessible due to a VIO error, we must update the server
+   status appropriately in order to permit failover.
+
+ * An RX_MSGSIZE error is returned by the new PMTU detection
+   code.  It is critical that such an error result in a retry of
+   the operation that failed.  Otherwise, the PMTU detection can't
+   work and the server will be marked down.
+   Secondly, it is important that such errors not leak to the
+   application layer.  Map them to CM_ERROR_RETRY in all cases.
+
+ * Translate RX_RESTARTING to the same cache manager error code
+   for all RPC classes.
+
+ * When logging server volume instance errors to the windows
+   application event log, be sure to log the cell as well.
+   Translating from server ip address is non-trivial.  Make it
+   easier for administrators triaging issues to plug the volume
+   and cell info into vos commands.
+
+ * Since unix mode bits are represented in octal in most cases
+   make sure we log them that way.
+
+ * The cm_enforceTrailingDot() function failed if there was a
+   trailing dot followed by white space.
+
+ * Rx: Do not send RX_MSGSIZE if the PMTU size did not change.
+
 Since 1.5.75
  * A crash could occur if a single letter share name was
    dynamically evaluated as matching a cell name.  This was