OpenAFS Release Notes - Version 1.6.0pre6 _________________________________________________________________ Server systems: Major bugfixes. All systems: Minor bugfixes. _________________________________________________________________ ADDITIONAL CHANGES IN 1.6.0PRE6 All UNIX platforms: - 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. Demand Attach Fileserver platforms: - Unlink fileserver state file on standalone salvage. FreeBSD: - Support for virtual network stacks. Linux: - Further corrections to Redhat packaging. - Avoid showing files larger than one cache chunk size as full of NULLs. (129880) This bug was in unissued pre5 only, not in pre4. - Fix lockup in 2.6.38 due to erroneous kernel feature configure test. MacOS: - Rework logic for bulk status operations to avoid a potential hang. Solaris: - Don't leave dangling function references if kernel extension fails to load. Windows: - 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. ADDITIONAL CHANGES IN 1.6.0PRE5 All server platforms: - Avoid leaking references to hosts during callback break multi-Rx operations. (129376) All UNIX platforms: - 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) AIX: - Fix PAG usage to track by PAG identifier, not group list. Irix: - Properly create new vnodes to avoid crashing in the client. Linux: - Support 2.6.39. - 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) MacOS: - 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. NetBSD: - Updates for platform support. Windows: - 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. ADDITIONAL CHANGES IN 1.6.0PRE4 All server platforms: - A file descriptor leak which could result in corrupted files in the fileserver was fixed. An IMMEDIATE upgrade from previous 1.6 release candidates as well as 1.5 release fileserver is SUGGESTED! - Properly support large volume numbers (larger than 2147483647). All platforms: - Documentation updates. Demand Attach Fileserver platforms: - Allow salvager to be run manually again when DAFS is being used. (129458) FreeBSD: - New RC script, updated packaging. Linux: - Improve RPM building tools. - setpag() errors are now properly reported. MacOS: - 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) Solaris: - Properly report errors for AFS system call callers. Windows: - Properly create new cell mount points in freelance mode. - Avoid recursive offline volume checks. ADDITIONAL CHANGES IN 1.6.0PRE3 All platforms: - Revert UUID support in vos. - pt_util fixed to properly create new databases. - Rx busy call channel error handling improved. - MTU discovery now properly shut down on call reset. - FUSE client support fixed for non-/afs mounts. All server platforms: - 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 Fileserver platforms: - Ensure vnodes are not reallocated while in use due to volume bitmap errors. Linux: - Perform vcache eviction via a fast path before visiting vcaches where sleep is needed. MacOS: - aklog AuthorizationPlugin now provided. Solaris: - Corrected Solaris 11 startup script. - vcache mappings freed on shutdown to avoid panic. Windows: - icon tray state now conditionally set (128591) PREVIOUS CHANGES IN 1.6.0PRE2 All platforms: - Documentation updates. - 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. (128671) - vos will not die with a double free error at command completion. - Properly enable Rx connection hard timeouts. - Initialize rx_multi lock before use. - Avoid spurious crashes when initializing in "backup" client. All unix platforms: - 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. All server platforms: - 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. FreeBSD: - 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. Linux: - support through kernel 2.6.38. - RedHat packaging now properly supports RHEL6. - 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) MacOS: - Check for unloaded kernel extensions when decoding AFS panics. - Properly handle setpag errors. PAGs are not supported. - Disable "get tokens at login" in prefs pane if AD authentication plugin is configured. OpenBSD: - support through OpenBSD 4.8. Solaris: - Fix support for Solaris pre-10. 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 PREVIOUS CHANGES: All platforms: - vos now properly deals with matching sites when servers are multihomed. All Unix platforms: - Servers now marked down when GetCapabilities returns error. - In-use vcache count is now properly tracked. All server platforms: - 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. FreeBSD: - Fix socket termination on shutdown. - Support for 7.2, 7.3, 7.4 and 8.2 included. - References to vcaches are no longer leaked during root or reclaim. Linux: - Define llseek handler to avoid ESPIPE error in 2.6.37. - Mount interface replaces get_sb (new for 2.6.37, not yet required). - RedHat init script allows deferring for a new binary restart. - DEFINE_MUTEX replaces DECLARE_MUTEX for 2.6.37. MacOS: - Correct return value from setpag syscall. OpenBSD: - Bug fixes for issues introduced previously in 1.5 series. Solaris: - Switch to ioctl() syscall replacement for Solaris 11 since syscall 65 is not safe.