AuriStor File System News


The AuriStorFS v2021.05-72 release is a macOS only release.

Critical Bug Fixes:

macOS - When GlobalProtect VPN or Cisco AnyConnect VPN is installed, whether or not it is in active use, its Network Extension Content Filter can trigger a SIGPIPE signal against applications using Rx RPC. If left unhandled, the signal terminates the "afsd" process, leaving /afs inaccessible and potentially preventing a clean system shutdown. This release blocks the delivery of SIGPIPE while Rx RPC is in use. All versions of macOS from Ventura (13.x) forward were affected.
The v2021.05-71 fix was incomplete.


The AuriStorFS v2021.05-71 release is an important update for all systems.

Support added for Linux 7.1 and 7.2 kernels.

Critical Bug Fixes:

macOS - When GlobalProtect VPN or Cisco AnyConnect VPN is installed, whether or not it is in active use, its Network Extension Content Filter can trigger a SIGPIPE signal against applications using Rx RPC. If left unhandled, the signal terminates the "afsd" process, leaving /afs inaccessible and potentially preventing a clean system shutdown. This release blocks the delivery of SIGPIPE while Rx RPC is in use. All versions of macOS from Ventura (13.x) forward were affected.

Fileservers and Volume Servers - Several distinct copy-on-write accounting mistakes were identified and fixed which, under specific conditions, could allow a change made to a read-write volume to unintentionally become visible in that volume's read-only or backup clones instead of remaining isolated to the read-write copy. The affected operations include "vos move" between fileservers that already host a read-only replica, changes to per-file or volume-wide ACLs and security levels, and restoring a dump stream created with "vos dump -omitdirs".

vos - Pressing Ctrl-C a second time to cancel an in-progress "vos move", "movesite", "copy", "copysite", or "dump" operation could result in the temporary clone being deleted twice in parallel, corrupting the backing store of the source volume. This race has been eliminated.

Protection Server (ptserver) - A database corruption bug was fixed which could remove a subgroup from up to 39 other supergroups when that subgroup belonged to 42 or more supergroups and was removed from one of them, or when one of those supergroups was deleted. A second fix ensures that the "restrict_anonymous" configuration setting is properly enforced by all group membership RPCs, closing a gap that previously permitted anonymous callers to query certain group memberships.

Other notable fixes:

The Linux cache manager no longer risks a rare kernel panic while performing silly-rename bookkeeping under low memory conditions, and a long standing bug that defeated server-preference ranking of a volume's replica sites has been corrected. The vlserver, buserver, and afsbackup/butc services received a number of reliability and interoperability corrections for use with older IBM AFS 3.6 and OpenAFS "backup" tooling. This release also fixes a regression introduced in v2021.05-70 that broke the "fs setquota" command.


The AuriStorFS v2021.05-70 release is an update for all systems.

Support added for Linux 7.0 kernels, Ubuntu 26.04, and Fedora 44.

This release improves how Rx connections are cloned when more than four simultaneous calls are required between a cache manager and a fileserver. Previously, security-class specific data bound to the original Rx connection was not copied to the cloned connections, which could delay delivery of callback notifications when a file was modified by multiple clients at once. Rx call handling was also tuned to reduce the amount of time an application thread may sleep waiting on a large response, improving parallelism on multi-core systems and reducing added latency for large RPCs.

Numerous corrections were made to command line parsing behavior across the "vos", "bos", and "afsd" tools, including several parsing regressions introduced by the v2021.05-64 release.

Reminder regarding Debian 12 (Bookworm) GPG Signing Key Change:

Starting the weekend of 1 May 2026, Debian 12 began blocking older GPG key types and lengths that are no longer considered strong enough for production use, requiring AuriStor to change the key used to sign the Debian 12 repository. Instructions for installing the new key are available at https://blog.auristor.com/2026/05/updated-debian-and-ubuntu-client.html.


The AuriStorFS v2021.05-69 release is an update for all systems.

This release reverts a change introduced in v2021.05-68 which attempted to avoid unnecessary FetchData requests for newly created, still-empty files. The optimization had the unintended side effect of breaking access to symlinks, mountpoints, and empty directories created by older IBM AFS 3.6 and OpenAFS fileservers.


The AuriStorFS v2021.05-68 release is an update for all systems.

Support added for Linux 6.19 kernels on aarch64.

Known issue:

This release introduces a FetchData optimization intended to avoid unnecessary network round trips for newly created, still-empty files. Unfortunately, the optimization breaks access to symlinks, mountpoints, and empty directories created by older IBM AFS 3.6 and OpenAFS fileservers. This is corrected by reverting the change in v2021.05-69.

Other notable changes:

Several edge cases in the Rx RPC stack were hardened to correctly identify and reject bogus or out-of-sequence acknowledgement and data packets, most often produced by PAT/NAT devices that expire a port mapping mid-call. The Linux cache manager's writeback handling was tuned to avoid unnecessarily aggressive and duplicated write-back activity under memory pressure, and cache manager access to disk cache files during open now consistently uses the correct credentials. All localauth connections used by the "bos" command are now required to be encrypted. A long standing crash in the "afsbackup" tape backup coordinator was fixed, along with regressions in "afsbackup" dating back several years.


The AuriStorFS v2021.05-67 release is an update for all systems.

Support added for Linux 6.18 and 6.19 kernels. The AuriStorFS source code has also been updated for compatibility with the C23 language standard.

The Linux cache manager received a fix for a rare but serious bug in which a race between a local file creation and a fileserver reported creation could corrupt the kernel's global inode hash table. Once corrupted, unrelated lookups on any filesystem could enter an infinite loop while holding a global lock, producing "soft lockup" warnings, processes spinning at 100% CPU, and an unresponsive system. A number of race conditions in the Rx RPC stack's startup and shutdown sequences were also fixed, along with a change that prevents execution of "aklog", "fs", and other command line tools while the kernel module is loaded but not yet fully running.

The volume management and salvage services can now recover a volume dump stream containing a vnode without a valid parent reference instead of aborting the restore outright; the volume is automatically scheduled for a salvage immediately after the restore completes so the salvager can repair or reattach the affected data. Several usability and consistency improvements were made to the "bos" command, including clearer reporting of the authentication method in use and better behavior when contacting a server without prior cell configuration.


The AuriStorFS v2021.05-66 release is an update for all systems.

This release fixes a bug in the UBIK database replication used by the vlserver, ptserver, and buserver services which could, in rare circumstances, leave threads waiting forever for exclusive access to the database, effectively hanging the service.

The v2021.05-64 release inadvertently broke the ability to set several fileserver, backup tape controller ("butc"), and "bos" configuration options from their respective configuration files, silently ignoring administrator settings such as "rxbind" and "readonly". This release restores proper handling of those settings, along with a number of related command line parsing corrections for "vos", "pts", and "translate_et".


The AuriStorFS v2021.05-65 release is an update for all systems.

Support added for macOS 26 (Tahoe) on both Apple Silicon and Intel, and for Fedora 43.

Large Direct I/O requests on Linux, which can ask for as much as 2GB in a single read or write, previously attempted to allocate all of the required memory pages in one pass. This large up-front allocation could take more than 100ms to complete and occasionally caused stalls during read operations. This release limits each allocation batch to 8MB and processes larger requests in multiple passes. The maximum Linux readahead size is now also exposed as a writable sysctl.

The fileserver's delivery of callback notifications after a volume operation completes has been made more reliable when more than 1,000 clients are attached to a volume, and unnecessary callback-break processing has been eliminated for internal operations involving temporary clones and shadow volumes, reducing load on busy fileservers hosting very large numbers of volumes. A number of command line parsing regressions introduced in v2021.05-64 were also corrected for the "fs", "vos", "pts", and "bos" tools.


The AuriStorFS v2021.05-64 release is an update for all systems.

Support added for Red Hat Enterprise Linux 10 and 9.6 (including Real-time kernels), AlmaLinux 10 and 9.6, Oracle Linux 10 and 9.6, Rocky Linux 10 and 9.6, TuxCare Extended Lifecycle Support for EL 7.9, 9.2, and 9.6, Debian 13 "Trixie", Linux 6.16 and 6.17 kernels, and Linux on RISC-V (available upon request). Installing AuriStorFS on Debian 13 requires trusting a new GPG signing key; see the release notes for installation instructions.

This release continues a multi-release effort to make the Linux cache manager's handling of AFS mountpoints and volume root directories more predictable and reliable, reducing the circumstances under which a bind mount or directory listing could unexpectedly fail due to an invalidated directory cache entry.

The fileserver now correctly breaks callback notifications for any object, not just directories, moved between directories during a rename, ensuring that cache managers are informed their cached access rights and parent directory information for the moved object are stale. Renaming a file onto itself is now correctly treated as a successful no-op as required by POSIX, rather than failing with an error. A number of reliability improvements were also made to the salvager and to fileserver, volserver, and salvageserver startup sequencing.


The AuriStorFS v2021.05-63 release is an update for all systems.

Support added for Red Hat Enterprise Linux 10.0 and AlmaLinux 10 (final), Linux 6.15 kernels (final), and preliminary support for Linux 6.16 kernels.

AuriStorFS cache managers now consistently apply local UNIX file permission mode bits when determining a caller's effective access rights against an AuriStorFS fileserver, matching long-standing behavior already used against AFS3 fileservers.

Two long standing "vos" bugs were fixed: since v2021.05-29, the "move", "movesite", "copy", "copysite", "shadow", and "dump" sub-commands failed to work correctly when a volume was specified by ID rather than by name; and for more than twenty years, "vos" could not properly query a volume whose name began with a digit but was not entirely numeric. The Location Service (vlserver) also now refuses to create or update a volume location entry with a purely numeric name unless the name matches the read-write volume ID, preventing ambiguous name-to-ID lookups.


The AuriStorFS v2021.05-62 release is an update for all systems.

Support added for Linux 6.15 kernels and Fedora 42.

Beginning with macOS 15.4, use of Cisco AnyConnect VPN breaks DNS SRV, AFSDB, and TXT record lookups performed through Apple's cross-platform DNS resolver API. Because AuriStorFS relies on DNS-based zero-configuration discovery of Kerberos realms and cell database servers, all AuriStorFS command line tools, clients, and services on affected macOS systems could fail to locate those resources while the VPN client was installed. This release switches macOS builds to use Apple's native DNS API, resolving the conflict.

Several long standing bugs were also fixed, including incorrect parsing of boolean command line values and a bug present since v0.118 which caused "dumptool" to omit leaf entries when recursively listing directory contents.


The AuriStorFS v2021.05-61 release is an update for all systems.

The Red Hat "filesystem" package expects the /afs directory to be readonly with mode 0555, whereas the AuriStorFS dynamic root directory used mode 0755. This mismatch caused package updates to fail whenever the AuriStorFS client was mounted on /afs. This release aligns the dynamic root directory's mode with what the filesystem package expects. A related fix prevents bind mount failures that could occur when an ancestor of the mount source had previously been judged invalid by the Linux directory cache.

Mountpoints and volume root directories ("anchors") no longer rely on a locally faked, infinite lifetime callback to remain valid. Instead the cache manager relies on genuine callback promises issued by the fileserver, so that changes such as a volume being taken offline, moved, or having its mountpoint removed are properly reflected without waiting for a re-evaluation.

A number of salvager reliability fixes were also included: a bug present since v0.119 which could report a damaged directory as valid was corrected, missing root directories are once again unconditionally recreated, and a configuration parsing bug that inverted the meaning of boolean salvager settings (for example, causing "salvagedirs = no" to be treated as "yes") was fixed. The "fs" command's ability to create a mountpoint to a volume that does not yet exist, broken since AuriStorFS added kafs mountpoint support, has been restored.


The AuriStorFS v2021.05-60 release is an update for all systems.

This release substantially reduces the risk that the Linux directory cache incorrectly invalidates a valid mountpoint or volume root directory entry, which could otherwise prevent successful bind mounts. New diagnostic warnings are logged to the console whenever such a directory entry is invalidated, to assist with identifying any remaining cases.

The cache manager also no longer conflates a temporarily unavailable volume with one that has been permanently removed. Previously, if a fileserver reported that a volume was busy, offline, or unexpectedly missing, the cache manager could incorrectly report to applications that the volume did not exist at all, which on Linux would cause the corresponding directory cache entry to be invalidated unnecessarily. Such conditions are now reported as temporarily unavailable instead. The volserver also now prevents accidental creation of read-only volumes that share a volume ID with their read-write parent, a configuration that could previously result in a broken volume requiring manual cleanup.


The AuriStorFS v2021.05-59 release is an update for all systems. (v2021.05-58 was not released.)

Since v2021.05-53, UNIX cache managers have failed to properly garbage collect Rx client connections allocated to Process Authentication Groups (PAGs), which could accumulate over time on systems with high PAG turnover. Three previous attempts across v2021.05-54, -55, and -56 each closed off one path by which these connections could escape garbage collection without resolving the underlying issue. This release completes the fix. Administrators who observed the connections accumulating could work around the issue in the interim by executing "fs discon offline" followed by "fs discon online" as root.

A bug in the "udebug" command line tool which could cause it to wait forever when the "-coord" switch was specified without "-waitfor" has also been fixed.


The AuriStorFS v2021.05-57 release is an important update for all systems.

Linux kernel modules built from v2021.05-56 for kernels based on Linux v4.10 and earlier failed to load, affecting distributions including EL5, EL6, EL7, and Debian 8. This is corrected in v2021.05-57. Support was also added for the Linux 6.14 kernel's revised d_revalidate() function signature, and interoperability fixes were made to the yfs-rxgk security class ahead of its forthcoming introduction to the upstream Linux kafs client.


The AuriStorFS v2021.05-56 release is an update for all systems.

Support added for Linux 6.14 kernels.

Known issue:

Linux kernel modules built from this release for kernels based on Linux v4.10 and earlier fail to load, affecting distributions including EL5, EL6, EL7, and Debian 8. This is corrected in v2021.05-57.

Other notable changes:

This release continues efforts to correct a bug, first addressed in v2021.05-54, in which Rx client connections associated with Process Authentication Groups (PAGs) could fail to be garbage collected. A fileserver race was also fixed which could cause a VNOVOL ("volume does not exist") error to be returned to a client instead of the correct VOFFLINE error while a volume was temporarily taken out of service, which could otherwise cause unnecessary syscall failures.


The AuriStorFS v2021.05-55 release is an important update for all systems.

This release fixes three issues identified in v2021.05-54: an Rx service upgrade from AFS3 to YFS service could incorrectly report failure with an RX_CALL_DEAD error even though the upgrade actually succeeded; UNIX cache managers had begun marking a fileserver down upon receipt of certain malformed packets that some OpenAFS fileservers are known to send, a change in behavior from prior releases which has been reverted; and interrupted system calls could fail with the wrong error code and take more than 23 minutes to time out instead of returning promptly to the application.

A number of additional Rx connection cleanup and error handling improvements were made, including correctly identifying a peer as unreachable rather than merely non-responsive, and fixing a reference count leak that could prevent garbage collection of Rx connections used by systems with high turnover of authenticated sessions.


The AuriStorFS v2021.05-54 release is an important update for all systems.

This release includes substantial improvements to the resiliency of the Rx RPC stack and the cache manager's handling of fileserver error responses. Most significantly, a cache manager receiving a fileserver reply of VBUSY ("volume busy") could previously become stuck in an unkillable retry loop; processes waiting in this state can now be interrupted by a signal. A related change prevents an Rx connection that is repeatedly failing with certain errors from being retried indefinitely in a way that could exhaust all available system memory. Kerberos v5 rxkad tokens are no longer restricted to a 30-day maximum lifetime, a legacy limit inherited from Kerberos v4 that is not applicable to Kerberos v5 tickets. Numerous reliability improvements were also made to the UBIK database replication used by the vlserver, ptserver, and buserver services when handling out-of-space and permission errors.

Known issues (fixed in v2021.05-55):

Three issues were identified shortly after this release was tagged: a rare Rx service upgrade race could report failure even though the operation succeeded; cache managers began marking a fileserver down upon receipt of certain malformed packets sent by some OpenAFS fileservers; and interrupted system calls could return the wrong error code and take more than 23 minutes to fail instead of returning promptly.


The AuriStorFS v2021.05-53 release is an update for all systems.

The v2021.05-52 change to how Rx event objects are allocated introduced a risk that an out-of-memory condition could leak a reference on an Rx connection or call, preventing it from ever being cleaned up. This release handles allocation failures gracefully instead. The cache manager also now proactively replaces an Rx connection to a fileserver that has entered an error state for any reason other than expired tokens, rather than letting every subsequent call on that connection fail immediately.

On macOS, receipt of a system "PoweredOn" event now triggers an attempt to reacquire system tokens if "afsd" is configured with a keytab, and mach messages used by the AuriStorFS Backgrounder and Preference Pane are now authenticated using code signing identities. Several "vos" commands, including "copy", "create", "rename", "restore", "shadow", and "splitvolume", could previously crash with a segmentation fault when given a volume name shorter than nine characters; this is fixed.


The AuriStorFS v2021.05-52 release is an important update for all systems.

Support added for Linux 6.13 kernels.

Every macOS Sonoma build from v2021.05-47 through v2021.05-51 was affected by an incorrect autoconf test result which caused GSS-API compatibility functions intended only for MIT Kerberos to be used against AuriStorFS's bundled Heimdal Kerberos. This resulted in a segmentation fault when acquiring yfs-rxgk tokens on affected macOS Sonoma systems. This release corrects the build configuration and hardens the compatibility functions so they can be safely used against Heimdal Kerberos.

Process Authentication Group (PAG) allocation, which is intentionally throttled to prevent PAG ID reuse within 200 days, could previously block a task indefinitely without the ability to interrupt it with a signal; this has been fixed, along with a related bug that broke detection of system clock rollbacks on platforms with a 32-bit time_t. This release also fixes a memory corruption bug introduced by the v2021.05-50 access rights cache redesign, and reworks the internal management of Rx event objects to reduce lock contention and improve performance on multi-core systems.


The AuriStorFS v2021.05-51 release is an important update for all systems.

This release addresses several regressions introduced by the substantial cache manager internals rework shipped in v2021.05-45, including an uninitialized variable that could cause a kernel panic during cache manager module shutdown on Linux, a potential deadlock between the cache manager and the virtual filesystem layer, a case where directory read errors could be silently ignored, a vcache reference leak during access rights queries, and a missing lock around token expiration scanning that could result in a race condition.


The AuriStorFS v2021.05-50 release is an update for all systems.

The cache manager's tracking of per-user and per-PAG access rights has been redesigned to use a btree combined with a last-lookup cache in place of a linked list, improving lookup and removal performance as the number of users or Process Authentication Groups accessing /afs grows. This is expected to particularly benefit time-sharing systems and systems managed by workload schedulers such as IBM's Load Sharing Facility (LSF).

This release also fixes a regression introduced in v2021.05-45 which caused every access to a volume's root directory to require a full lookup operation, and corrects a memory corruption bug introduced by one of the v2021.05-48 security fixes which affected the "afsbackup" command suite.


The AuriStorFS v2021.05-49 release is an update for all systems.

This release fixes a regression introduced in v2021.05-45 which prevented the "tokens" command from listing all tokens held by the cache manager for the current user or Process Authentication Group. A potential NULL pointer dereference in "modwaklog" was also fixed.


The AuriStorFS v2021.05-48 release is an important security update for all systems.

This release addresses three security advisories originally published by OpenAFS:

OPENAFS-SA-2024-001 (CVE-2024-10394) - Theft of credentials in UNIX client PAGs:

On UNIX cache managers using Process Authentication Groups (PAGs), an attacker able to join a PAG assigned to another user or service could retrieve or replace credentials shared by that PAG. AuriStorFS cache managers were already at lower risk than OpenAFS because AuriStorFS had previously removed the ability for "aklog" to set the PAG of a parent process, and does not support the Solaris NFS Translator through which anonymous remote users could otherwise create PAGs. This release removes the last remaining ability for the cache manager to set a parent process's PAG.

OPENAFS-SA-2024-002 (CVE-2024-10396) - Fileserver crash and possible information leak on StoreACL/FetchACL:

A failure to properly validate AFS3-style ACL strings sent over the network could allow a malicious authenticated user or administrator to crash a fileserver or client tool, or to disclose uninitialized memory contents, when using the RXAFS_StoreACL, RXAFS_StoreACL2, RXYFS_StoreACL, RXAFS_FetchACL, or RXYFS_FetchACL RPCs. AuriStorFS cache managers, which prefer the non-string based RXYFS_StoreOpaqueACL and RXYFS_OpaqueACL RPCs, and AuriStorFS fileservers communicating only with each other, were not at risk; the exposure applied to environments mixing OpenAFS and AuriStorFS cache managers and fileservers. This release adds validation to the affected RPCs to close the gap.

OPENAFS-SA-2024-003 (CVE-2024-10397) - Preallocated buffer overflows in XDR responses:

The Sun RPC XDR marshaling code shared by the AuriStorFS and AFS3 RPC suites permits preallocated memory for output parameters, which can result in memory corruption or memory leaks in RPC initiators. AuriStorFS UNIX cache managers do not preallocate XDR output memory and were not vulnerable to memory overruns; nonetheless, this release adds additional data length validation and prohibits use of preallocated memory for string output parameters across all cache managers, servers, and command line tools. Related memory-safety issues identified during the security review were also fixed in "vos", "afsbackup", and several "bos" commands.

Other notable fixes:

A reference counting bug in the FUSE-based client was fixed, and a fileserver-to-Location-Service communication failure that could be misreported to "vos" as "Volume is being salvaged" now returns a distinct, more accurate error.


The AuriStorFS v2021.05-47 release is an important update for all systems.

The silly-rename handling for clobbering renames introduced in v2021.05-46 failed to properly initialize filesystem private data on Linux kernels older than 4.5, which could cause a kernel panic. This is corrected in this release, which also forces evicted inodes to be deallocated immediately rather than waiting for the kernel to come under memory pressure.


The AuriStorFS v2021.05-46 release is an update for all systems.

This release fixes a regression introduced in v2021.05-45 which could cause the cache manager to lose track of a volume's mountpoint and parent directory information immediately after it was recorded, due to the data being stored into a structure that was freed too soon.

This release also changes how the cache manager selects which of several mountpoints referring to the same volume is treated as that volume's "active" parent directory when more than one mountpoint exists. Since AFS2, the most recently evaluated mountpoint has always won this race, and once chosen it would not be re-evaluated until the next callback break or explicit refresh. Beginning with this release, the active mountpoint is re-selected every time a mountpoint is traversed, which produces more intuitive results for a single process repeatedly accessing a volume through multiple mountpoints, though it can still produce unexpected results when multiple processes traverse different mountpoints to the same volume concurrently without coordination.


The AuriStorFS v2021.05-44 release is an update for all systems.

v2021.05-44 (17 August 2024)

Support added for Linux 6.11 kernels; Red Hat Enterprise Linux 7 ELS; and Red Hat Enterprise Linux 9.3/9.4 RT kernels.

Important Bug fixes:

Fileservers - This release is important because it fixes two salvageserver bugs which can result in data loss in damaged volumes.

All Cache Managers - This release fixes several bugs that could result in an operating system panic.

Linux Kernel Modules - Kernel modules built from prior releases of AuriStorFS included object files compiled from assembly code which the Linux objtool could not process and objtool silently quit without fully post-processing the AuriStorFS kernel modules. Linux 6.9 kernels began generating a warning when an improperly post-processed kernel module was loaded. Failure to properly post-process a kernel module can result in the module being susceptible to side channel attacks.

Important notes regarding Ubuntu 22.04 LTS and 24.04 LTS AppArmor and AuriStorFS clients:

The version of the AppArmor Linux Security Module shipped as part of Ubuntu 22.04 LTS and 24.04 LTS is not the same as the version included in Linus' upstream repository. AuriStor has received reports from end users of system panics triggered by AppArmor denying the AuriStorFS cache manager access to the contents of the AuriStorFS disk cache. All access to the AuriStorFS disk cache files is performed using "root" credentials stored when the disk cache is initialized at startup. The AuriStorFS kernel module does not expect that its ability to read or write to the disk cache files will be prevented. Prior to the v2021.05-44 release, any failure to read or write the disk cache with "root" credentials would result in a system panic. The v2021.05-44 release has restructured the kernel module to permit syscalls to be failed when a Linux Security Module blocks the attempt to open, read or write a cache file. The error code used to reject the access to the disk cache will be returned to the calling process and the access to /afs will be denied.


The AuriStorFS v2021.05-41 release is an update for all systems.

v2021.05-41 (26 June 2024)

Support added for Linux 6.10 kernels and macOS 15 (Sequoia) beta.

IPv6 calls are now more resilient to transient routing errors. Although RFC1122 states that ICMP6_DST_UNREACH_NOROUTE, ICMP6_DST_UNREACH_BEYONDSCOPE, and ICMP6_DST_UNREACH_ADDR messages are to be considered fatal, in practice they are often transient. The Linux kernel has considered these messages to be transient for many years. An in-flight call will ignore these messages and terminate due to the configured timeout if traffic can not be delivered.

Cache managers can now detect the deletion of a volume as well as handle the reuse of a volume name by a volume with a distinct volumeId. When a volume deletion is detected all volume mount points are invalidated.

Cache managers failover to alternative read-only volume replicas has been improved.

The file and volume management services have improved logging of ICMP and ICMPV6 errors included the reason code and offending endpoint.

An improved work-around is provided for a bug in MIT Kerberos credential management which resulted in multiple afs/cell@REALM service tickets being cached.

A bug in the command parser which restricted the number of included configuration files to ten has been fixed. There is no limit on the number of included configuration files. The limit is on the depth of the inclusion.

On Linux distributions with systemd, the systemd out-of-memory killer is disabled for AuriStorFS services.

The voldump tool has been re-implemented. The new version shares the same dump generation engine as the volserver. New -config and -logfile options have been added.


The AuriStorFS v2021.05-39 release is an important update for all systems.

v2021.05-39 (20 May 2024)

Since the prior release support has been added for the Red Hat 9.4, AlmaLinux 9.4, Rocky Linux 9.4, Fedora 40, Ubuntu 24.04, SLES 15.5, OpenSUSE Leap 15.5, Linux 6.9 kernels, arm64 for Debian/Ubuntu distributions.

AuriStorFS continue to push the performance envelope by increasing the parallelism of the Rx RPC stack. Random data is required during encryption of every Rx DATA packet. The v2021.05-39 release introduces thread local random number generation which avoids the process global mutual exclusion barrier protecting the internals of the Kerberos distribution's random number generators which has forced application threads scheduled to multiple cores to serialize packet encryption. The elimination of delays when encrypting outgoing DATA packets can prevent call data flow stalls.

High throughput Rx calls rely upon reliable execution of time-based events which are processed by a single Rx event thread. The Rx network stack schedules a garbage collection operation to execute once per minute. This operation enforces call timeouts, destroys idle connections and destroys idle peers. The operation has historically been performed by the Rx event thread which is responsible for performing actions in response to call RTOs, sending NAT Ping and keep-alive packets, and retrying connection challenge and reachability checks.

The time complexity of the garbage collection operation is determined by the number of calls, connections, and peers. The busier the Rx endpoint the more work must be performed during each garbage collection run and the longer it takes to complete. While garbage collection is active other events cannot be processed which can interfere with the proper flow control of active calls.

As with all Rx events, the garbage collection event is scheduled to execute at an absolute clock time. If the system clock drifts (or is administratively set) backwards garbage collection will not be performed until the clock catches up with the scheduled time.

Another responsibility of the garbage collection procedure is to terminate calls if the system clock drifted backwards by five minutes or longer. However, when the clocked drifts backwards garbage collection is not performed until the clock has advanced beyond the point where calls require termination. As a result, calls are not terminated due to backwards clock drift and they can stall.

This release re-implements the garbage collection procedure using a dedicated thread and relative waits. This change ensures that the garbage collection procedure will not prevent the execution of call related events and permits calls to be terminated when large backward clock drifts are detected.


The AuriStorFS v2021.05-38 release is an important update for all systems.

v2021.05-38 (29 February 2024)

As with other AuriStorFS releases since the beginning of 2024, this release includes additional improvements to the Rx RPC implementation which are related to the possibility of silent data corruption when Rx jumbograms are in use. Prior releases disabled the negotiation of Rx jumbograms such that the v2021.05-37 Rx peer will refuse to send Rx jumbograms and will request that the remote peer does not send them. However, a bad actor could choose to send Rx jumbograms even though they were asked not to. v2021.05-38 introduces additional protections to ensure that a corrupt Rx jumbogram is dropped instead of being accepted.

The v2021.05-38 Rx RPC implementation also includes two optimizations. First, when Rx initiators complete a call they will no longer send an extra ACK packet to the Rx acceptor of the completed call. The sending of this unnecessary ACK creates additional work for the server which can result in increased latency for other calls being processed by the server.

Second, all AuriStor Rx services require a reach check for incoming calls from Rx peers to help protect against Distributed Reflection Denial of Service (DRDoS) attacks and execution of RPCs when the response cannot be delivered to the caller. A new reach check is required for each new call that arrives more than 60 seconds after the prior reach check completed. v2021.05-38 Rx considers the successful acknowledgment of a response DATA packet as a reach check validation. With this change reach checks will not be periodically required for a peer that completes at least one call per 60 seconds. A 1 RTT delay is therefore avoided each time a reach check can be avoided. In addition, reach checks require the service to process an additional ACK packet. Eliminating a large number of reach checks can improve overall service performance.

The final Rx RPC change in this release is specific to kernel implementations. Prior releases restricted the frequency of executing time scheduled Rx events to a granularity no smaller than 500ms. As a result an RTO timer event for a lost packet could not be shorter than 500ms even if the measured RTT for the connection is significantly smaller. The minimum RTO for a connection in AuriStor Rx is 200ms. The inability to schedule shorter timeouts impacts recovery from packet loss.

For client systems, the v2021.05-38 release contains fixes for two bugs that have resulted in system crashes on Linux when resource limits have been exceeded either by the system as a whole or for the process accessing /afs.

CrayOS SLES 5.14.21 is now a supported client platform.


The AuriStorFS v2021.05-37 release is an important update for all systems.

  • New Platforms

    • Linux 6.8 kernels
  • Rx improvements


    • The v2021.05-36 release permanently disabled all use of Rx jumbograms due to a risk of silent data corruption. However, when advertising the number of acceptable datagrams in the ACK trailer a missing htonl() set the value to 16777216 instead of 1 on little endian systems.

    • When sending a PING ACK as a reachability test, ensure that the "previousPacket" field is properly assigned to the largest accepted DATA packet sequence number instead of zero.

    • Replace the initialization state flag with two flags. One that indicates that Rx initialization began and the other that it succeeded. The first prevents multiple attempts at initialization after failure. The second prevents shutdown from accessing uninitialized structures if initialization failed.

  • Cache Manager Improvements:

    • No longer refuse to start if both the 'cachedir' and 'memcache' options are present in the configuration file.

  • Location Service:

    • If the VLDB contains a corrupted multi-homed server entry, skip it, but do not refuse to process subsequent multi-homed server entries.

    • SVL_ChangeAddr RPC called by "vos changeaddr" is now capable of

      • replacing IPv4 addresses in a multi-homed server entry without corrupting it;
      • refusing to replace a server address with a loopback address; and
      • logging more details about the changes it makes to the VLDB.

  • vos command line tool:

    • vos examine can display volume information from busy volumes.

    • vos move now reports the correct destination vice partition if a ROVOL instance exists on a partition other than the requested partition.

    • The cell name is now added to "unknown to location service" error messages.

    • Use of the -srcport option introduced in v2021.05-35 can result in an assertion failure if the requested port number is already in use. This release configures the Rx stack to fallback to a random port number if the requested port is already in use.

  • Protection Service:

    • Prevent potential NULL pointer exception when converting single component Kerberos v5 names where the component name is present in the Kerberos v4 service conversion table. For example "rcmd@REALM" or "http@REALM".


The AuriStorFS v2021.05-36 release is an important update for all systems.

  • Rx improvements


    • Permanently disable all use of Rx jumbograms due to a risk of silent data corruption.

      IBM derived Rx RPC implementations since OpenAFS 1.0, and possibly before, include a race condition when transmiting Rx packets. The race is possible because there is no protection for data that is being copied into the kernel by sendmsg() after the Rx call lock is dropped at the start of packet transmission. It is critical that this packet data is not modified by another thread. However, races exist between the application, listener, and event threads that can lead to retransmissions starting whilst an original transmission is still in progress. This can lead to the packet headers being overwritten, and either the original transmission, the retransmission or both sending corrupt data to the peer.

      This corruption can affect the packet serial number or packet flags. It is particularly harmful when the packet flags are corrupted, as this can lead to multiple Rx packets which were intended to be sent as Rx jumbograms being delivered and misinterpreted as a single large packet. The eventual result of this depends on the Rx security class in play, but it can cause decrypt integrity errors (rxgk:crypt and rxgk:auth) or corruption of the data stream (rxnull, rxgk:clear or rxkad:auth).

      All AuriStorFS servers, OpenAFS 1.6 or later servers, and the Windows cache manager have been shipped with Rx jumbograms disabled by default. The UNIX cache managers however are shipped with jumbograms enabled. There are many AFS cells around the world that continue to deploy OpenAFS 1.4 or earlier fileservers which continue to negotiate the use of Rx jumbograms.

      It is worth noting that all AuriStorFS v0.198 and later fileservers and cache managers implement explicit checks that will recognize the corrupted application data stream and prevent corrupted file content from being stored either into an AFS vnode's backing store in the volume's object store or the cache manager's AFS cache. OpenAFS cache managers and fileservers do not have these protections.

      With Rx jumbograms disabled the maximum number of Rx packets in a datagram is reduced from 6 to 1; the maximum number of send and receive datagram fragments is reduced from 4 to 1; and the maximum advertised MTU is restricted to 1444 - the maximum rx packet size prior to the introduction of jumbograms in IBM AFS 3.5.

    • If the rx call flow state transitions from either the RECOVERY or RESCUE states to the LOSS state as a result of an RTO resend event while writing packets to the network, cease transmission of any new DATA packets if there are packets in the resend queue.

    • When the call flow state is LOSS and all packets in the resend queue have been retransmitted and yet the recovery point has not been reached, then permit new DATA packets to be sent in order to maintain a full congestion window.

    • Add a safety check to prevent the estimated RTT from underflowing when the actual roundtrip time is smaller than 125us.

    • Fix the computation of the padding required for rxgk encrypted packets. This bug results in packets sending 8 bytes fewer per packets than the network permits. This bug accidentally prevented the construction of Rx jumbograms when a call is protected by rxgk:crypt.

    • Replace the random number generator with a more security source of random bytes.

  • Cache Manager Improvements:

    • In Linux kernels with folio mapping functionality, prior releases of AuriStorFS cache manager could trigger an infinite loop when getting a page. This release converts to using the new folio mapping functionality instead of page mapping when available.

    • afsd will now log the set of network interfaces in use whether or not rxbind is configured.

    • afsd will no longer drop user-defined mount options if SELinux is disabled.

    • Prevent possible memory corruption when listing tokens.

  • Volume Management Service:

    • Improved compliance with the 2009 Dump stream standard adopted by OpenAFS. The maximum length of a TLV tag and the indefinite length TLV tag are properly enforced.

    • When restoring a volume dump, the contents of the restore cookie must override the matching fields in all D_VOLUMEHEADER regions not only the first.

  • vos command line tool:

    • vos rename could log the wrong volume location information if neither VLF_RWEXISTS nor VLF_BACKEXISTS is set in the volume location entry received from the location service.

    • vos examine will now display volume information for a busy volume if the source volserver is AuriStorFS v0.198 or later. The source volume is a vos release is reported in the VBUSY state even though it is online.


The AuriStorFS v2021.05-34 release is an important update for Linux client systems.

  • Linx cache manager improvements


    • v2021.05-33 introduced a critical bug for Linux cache managers. Creating a hard link produces an undercount of the linked inode's i_count. This undercount can result in a kernel module assertion failure if the inode is garbage collected due to memory pressure. The following message will be logged to dmesg

           "yfs: inode freed while on LRU"
         

      followed by a kernel BUG report. This bug is fixed in v2021.05-34.

    • If the oom-killer terminates a process while it is executing within the AuriStorFS kernel module it is possible for memory allocations to fail. This can lead to failures reading from the auristorfs cache. This release includes additional logic to permit failing the cache request without triggering a NULL pointer dereference.

    • If the auristorfs disk cache filesystem is remounted read-only then the disk cache will become unusable. Instead of triggering a system panic when attempts to read or write fail, log a warning and fail the request.


The AuriStorFS v2021.05-33 release is a recommended update for all systems.

  • New Platforms

    • Ubuntu 23.10 Mantic Minotaur
    • Linux 6.7 kernels
  • New Features

    • -srcport option for vos, pts, bos


      Each execution of bos, pts and vos creates a new udp socket bound to a new port number. Rapid execution of these commands results in short bursts of udp traffic from multiple ports which might fill a router's port mapping table or be interpreted as a denial of service attack by security gateways. Communication failures have been observed when traversing AWS networks.

      The -srcport option permits bos, pts and vos to explicitly bind to a specific port. If the requested port is in use, then a random port will be used instead.

    • Apache 2 mod_auth_waklog module


      A major rewrite of the Apache2 mod_auth_waklog module for use with AuriStorFS and Linux kafs clients. The new mod_auth_waklog is built using libyfs_acquire for token acquisition and obtains both yfs-rxgk and rxkad tokens.

  • Linx cache manager improvements


    Improved compatibility when AuriStorFS is used in conjunction with overlayfs

  • Rx RPC network transport improvements

    • Improved accuracy of initial Rx call RTO value.
    • Reduced risk of Rx BUSY response after the prior call timeout by Rx initiator.
  • File server updates

    • The file service RemoveFile and RemoveDirectory RPCs are updated to return success whenever the requested directory entry can be removed even if the referenced object no longer exists.
    • The file service Lock RPCs are updated to populate the VolSync output metadata when read locks are granted on readonly and backup volumes. Note: most clients do not ask the file service to grant locks on readonly volumes.
    • The volume service will no longer process a DeleteVolume RPC when requested via an ITBusy transaction instead of an ITOffline transaction. Versions of vos movesite prior to v2021.05-33 removed the source RO volume using an ITBusy volserver transaction instead of an ITOffline transaction. This is problematic because the file service continues to serve data from a RO volume that is in use by an ITBusy transaction.
  • Cell service database updates

    • cellservdb.conf has been synchronized with the 31 Oct 2023 update to the grand.central.org CellServDB file.