User-Visible OpenAFS Changes
-OpenAFS 1.6.0 (in progress)
+OpenAFS 1.6.2.1
+
+ Linux clients
+
+ * Support Linux kernels up to 3.8.
+
+ * Make the init script cope with the output of ifconfig on recent Fedora.
+
+OpenAFS 1.6.2
All platforms
+ * Fix buffer overflows in fileserver and ptserver.
+
+ * Abort an rx connection when given an unknown service (Gerrit 7593).
+
+ * "idle dead" behavior improvements.
+
+ * Documentation updates.
+
+ All server platforms
+
+ * Fix rare file corruption during background sync (Gerrit 8796).
+
+ * Fix corrupting clients' metadata cache during certain errors (Gerrit
+ 6957).
+
+ * Avoid saying a volume doesn't exist when accessed as the volume is
+ going offline (Gerrit 7488).
+
+ * Fix fileservers to properly report >2 TiB partitions.
+
+ * Fix stale volume info from vos examine on non-DAFS filservers.
+
+ * Fix possible volume corruption with vos convertROtoRW.
+
+ * Fix bosserver to preserve all command-line options over restart.
+
+ * Fix bosserver to properly kill hung processes during shutdown.
+
+ All UNIX client platforms
+
+ * Fixes for memcache, especially on Solaris.
+
+ * Increase the size of the DNS resolver answer buffer to allow sites
+ with a long response list to use SRV and AFSDB records.
+
+ * Fix a crash when a server appears to run out of addresses (Gerrit
+ 7487).
+
+ * Fix cache corruption when reading from a file another client is
+ simultaneously writing to (Gerrit 7994).
+
+ * Improve handling of disk cache disk errors.
+
+ Linux
+
+ * fix DKMS configuration for DKMS 2.2.
+
+ * Avoid generating inode number 0 with md5 inodes (Gerrit 7276).
+
+ * Fix a crash when reading /proc/fs/openafs/unixusers (Gerrit 7914).
+
+ * Make PAG-less access use the real UID of the calling process
+ instead of the effective UID, when determining what credentials to
+ use (Gerrit 7931).
+
+ * Fix possible abuse of fs mkmount.
+ Prior to 1.6.2, users could crash a client by nesting volume mounts.
+
+ * Fix fileserver memory corruption on RHEL 6
+ Prior to 1.6.2, fileservers on RHEL 6 may crash under heavy load.
+
+ * Fix client page cache corruption on Linux
+ When multiple clients read and write to a file, the reading client
+ may see first page (4096 bytes) of a file as nulls.
+
+ * Support Linux kernels up to 3.7.
+
+ * Support newer glibc versions.
+
+ * Improve client systemd unit file.
+
+ * Update Red Hat packaging.
+
+ OS X
+
+ * Fix crashes on shutdown.
+
+ * Prevent unloading the module before shutdown completes.
+
+ * Security improvement for the OpenAFS preference pane.
+
+ Solaris
+
+ * Support newer versions of the Sun Studio compiler software.
+
+ * Support compiling on newer versions of Solaris 11 and Solaris 10.
+
+
+OpenAFS 1.6.0 (2011-08-15)
+
+ All platforms
+
+ * Substantial Rx updates to correct erroneous behavior.
+
* vos now properly deals with matching sites when servers are
multihomed.
+ * Don't stop Rx keepalives after an ackall is received, avoiding
+ spurious connection timeouts. (128848)
+
+ * Don't retry Rx calls on channels returning busy errors and improve
+ Rx busy call channel error handling. (128671)
+
+ * Properly enable Rx connection hard timeouts.
+
+ * Rx NAT pings are not enabled until peer has answered.
+
+ * Initialize rx_multi lock before use.
+
+ * Avoid spurious crashes when initializing in "backup" client.
+
+ * Revert UUID support in vos.
+
+ * pt_util fixed to properly create new databases.
+
+ * MTU discovery now properly shut down on call reset.
+
+ * Avoid leaking references to hosts during callback break multi-Rx
+ operations. (129376)
+
+ * xstat tools now cope with differing timeval structures between
+ endpoints.
+
+ * Numerous fixes to command argument parsing.
+
+ * Documentation updates.
+
All server platforms
+ * A file descriptor leak which could result in corrupted files in the
+ fileserver was fixed. An IMMEDIATE upgrade from previous 1.5 release
+ fileservers is recommended.
+
* Fix ptserver supergroups support on 64 bit platforms.
* Demand attach salvaging doesn't use freed volume pointers.
* Properly hold host lock during host enumeration in fileserver.
+ * Attempt to recovery more quickly from timed out volume release
+ transactions.
+
+ * Auditing now properly byte order swaps IP addresses when printing.
+
+ * vos split now has improved error handling.
+
+ * Many changes to again support Windows fileservers.
+
+ * During volume removal, data removal speed improved.
+
+ * Improve CPU utilization during volume attaching by DAFS.
+
+ * In salvager check-only mode, avoid potentially fixing a vnode.
+
+ * Fix support for large (greater than 2gb) volume special files.
+
+ * Salvager will not crash if multiple or bad volume link tables are
+ encountered.
+
+ * Avoid erroneous full dump by remembering which sites were out of
+ date at the start of the release.
+
+ * A deleted volume can now be recreated properly.
+
+ * Callbacks are again not broken during whole partition salvages.
+
+ * Positional vectored IO fixed for largefile (>2GB) capable systems.
+
+ * Fileserver per-client thread usage again properly enforced.
+
+ * Anonymous dropbox support improved and drawbacks documented.
+
+ * Demand attach: ensure vnodes are not reallocated while in use due to
+ volume bitmap errors.
+
+ * Properly support large volume numbers (larger than 2147483647).
+
+ * Allow salvager to be run manually again when DAFS is being
+ used. (129458)
+
+ * Avoid leaking references to hosts during callback break multi-Rx
+ operations. (129376)
+
+ * Demand attach: unlink fileserver state file on standalone salvage.
+
+ * Salvager tries harder to detect linktable issues.
+
+ * Demand attach: don't attach volumes with special status set.
+
+ * Avoid crashing on host table exhaustion. Instead, defer clients.
+
+ Microsoft Windows
+
+ * afs_config will not longer set the Tray Icon State in the registry
+ if the checkbox is not present in the dialog. (128591)
+
+ * 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.
+
+ * When the data version of a mountpoint or symlink changes, the target
+ string in the cm_scache_t object must be cleared.
+
+ * "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
+
+ * Icon tray state now conditionally set. (128591)
+
+ * Properly create new cell mount points in freelance mode.
+
+ * Avoid recursive offline volume checks.
+
+ * 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.
+
+ * aklog supports dotted Kerberos v5 principal names.
+
+ * afskfw library always attempts afs/cell@USER-REALM
+
+ * afskfw library must test return code from krb5_cc_start_seq_get() or
+ will trigger a null pointer exception when using Heimdal.
+
+ * Lock protected fields must be 32-bit in order to avoid memory
+ overwrite races.
+
+ * Add support for NTFS symlinks.
+
+ * Handle file search requests for virtual syscall ioctl file.
+
+ * Process SyncOps properly to enforce ordered operations.
+
+ * Avoid recursing during NewServer operations.
+
+ * Correct lock acquisition order during SMB locking.
+
+ * Add shutdown message to event log.
+
+ * Check offline volume status by policy rather than on each daemon
+ thread run.
+
+ * Return error on directory object not found instead of crashing.
+
+ * Improve error message output.
+
+ * afslogin.dll can start afsd_service if it's not starting or started.
+
+ * Optimize away release lock RPCs for deleted files.
+
+ * Background Daemon will not perform operations on deleted files.
+
+ * Resort recently used directories to the top of the LRU if the
+ directory is larger than the stat cache.
+
+ * Resort deleted objects to the bottom of the LRU.
+
+ * Use interlocked operations for state and queue fields to allow safe
+ bit set and clear on multiprocessor systems.
+
All UNIX client platforms
* Servers now marked down when GetCapabilities returns error.
* In-use vcache count is now properly tracked.
+ * Check for /afs existance before starting, unless -nomount is
+ specified.
+
+ * Avoid a potential panic when using /afs/.:mount syntax.
+
+ * Avoid a panic in memcache mode due to missing CellItems file.
+
+ * FUSE client support fixed for non-/afs mounts.
+
+ * Avoid a potential deadlock (which times out) when we need to
+ allocate more callback returns and must flush some already in use.
+
+ * Deal with libcom_err conflicts with other packages using it
+ (e.g. krb5) (128640)
+
+ * Fall back to afs3-vlserver SRV record values when afs3-ptserver SRV
+ record is not available.
+
+ * Avoid holding unneeded locks when probing server capabilties.
+
+ * Do not attempt page flushes for directories.
+
+ * Rx connection reference counting is enabled.
+
+ * An Rx connection reference count leak is fixed in bulkstat.
+
+ * Handle unparsable directory objects.
+
+ * Handle Kerberos cred cache errors in aklog.
+
+ AIX
+
+ * Fix PAG usage to track by PAG identifier, not group list.
+
FreeBSD
* Fix socket termination on shutdown.
* References to vcaches are no longer leaked during root or reclaim.
+ * Remove support for "Giant" lock as we no longer need to use it.
+
+ * Don't sleep with AFS GLOCK.
+
+ * Properly enable 64 bit long long support.
+
+ * Restore support for FreeBSD 7 (128612)
+
+ * Fix locking issues at shutdown and avoid panic at shutdown due to
+ vcache flushing.
+
+ * Support for virtual network stacks.
+
+ * New RC script, updated packaging.
+
+ IRIX
+
+ * Properly create new vnodes to avoid crashing in the client.
+
Linux
- * Define llseek handler to avoid ESPIPE error in 2.6.37.
+ * Support through kernel 2.6.39. Treat Linux 3.0 as Linux 2.6 for
+ sysname purposes.
+
+ * Use rx_Readv in cache bypass to improve performance.
+
+ * Properly handle 0-length replies during cache bypass operations.
+
+ * Properly handle non-contiguous readpage cache bypass operations.
+
+ * Do proper locking when transitioning to or from cache bypass.
+
+ * Avoid extra runs of vcache freeing routine. (128756)
+
+ * Perform vcache eviction via a fast path before visiting vcaches
+ where sleep is needed.
+
+ * setpag() errors are now properly reported.
+
+ * Avoid attempting to free stat cache entries when we are below
+ user-specified number of entries in use.
+
+ * Properly track user-specified number of stat cache entries to use as
+ a desired usage target.
+
+ * Don't read pages beyond EOF in the cache. (128452)
+
+ * Various corrections and improvements to Red Hat packaging, including
+ modifying the init script to allow deferring for a new binary
+ restart and properly supporting RHEL6.
+
+ * Fix lockup in 2.6.38 due to erroneous kernel feature configure test.
+
+ * Improve RPM building tools.
- * Mount interface replaces get_sb (new for 2.6.37, not yet required).
+ * Attempt to properly handle SELinux in packaging.
- * RedHat init script allows deferring for a new binary restart.
+ * Init script properly returns status as exit code.
- * DEFINE_MUTEX replaces DECLARE_MUTEX for 2.6.37.
+ * RPM packaging fixes (executable libraries, no postinstall message)
+
+ * Kill i386 from RPM packaging.
MacOS
- * Correct return value from setpag syscall.
+ * MacOS 10.7 support.
+
+ * Properly handle setpag errors. PAGs are not supported.
+
+ * Check for unloaded kernel extensions when decoding AFS panics.
+
+ * Disable "get tokens at login" in prefs pane if AD authentication
+ plugin is configured.
+
+ * aklog AuthorizationPlugin now provided.
+
+ * Preferences Pane behavior fixed for 1.6 series (version detection is
+ used to select default behavior).
+
+ * A potential kernel panic during bulkstat operations is
+ fixed. (128511)
+
+ * 64-bit MacOS kernel performance is greatly improved. (128934)
+
+ * Properly shut down AFS, closing the Rx socket in the upcall handler
+ to avoid attempting to process data after we can no longer do so.
+
+ * Rework logic for bulk status operations to avoid a potential hang.
+
+ * Avoid panic when doing FSEvent synthesis.
+
+ * Fix bug when using non-dynroot.
+
+ * Update Kerberos support in PreferencesPane.
+
+ NetBSD
+
+ * Updates for platform support.
OpenBSD
* Bug fixes for issues introduced previously in 1.5 series.
+ * Support through OpenBSD 4.8.
+
Solaris
* Switch to ioctl() syscall replacement for Solaris 11 since syscall
65 is not safe.
+ * Fix support for Solaris pre-10.
+
+ * Corrected Solaris 11 startup script.
+
+ * vcache mappings freed on shutdown to avoid panic.
+
+ * Properly report errors for AFS system call callers.
+
+ * Don't leave dangling function references if kernel extension fails
+ to load.
+
+ * Try harder to avoid deadlocks on file-larger-than-cache operations.
+
+ * Avoid panic on shutdown when mount failed.
+
OpenAFS 1.5.78 (2010-11-04)