Fusion v2.6.4
Fusion v2.6.4 adds retryable and non-retryable exit codes for startup failures in NFS service mode, and new health and liveness metrics. It also fixes renamed directories and very large files on Google Cloud Storage.
How to pin this version
fusion {
enabled = true
containerConfigUrl = 'https://fusionfs.seqera.io/releases/v2.6.4-amd64.json'
}
info
For ARM64 CPU architecture, use containerConfigUrl = 'https://fusionfs.seqera.io/releases/v2.6.4-arm64.json'.
Feature updates and improvements
NFS service mode
- Added distinct exit codes for startup failures when Fusion runs as the NFS daemon and cannot complete its startup handshake with the control node. Fusion exits with
172when the control node rejects the request, which is a configuration or permission problem that a retry cannot fix. Fusion exits with173for anything else, such as an unreachable or slow control node, and for ambiguous failures. Intelligent Compute relocates the task on173instead of aborting the run. See Exit codes 172 and 173. - Added
FUSION_NFS_READINESS_TIMEOUTto set how long Fusion waits for its work directory to become ready before it classifies the failure and exits. The default is 60 seconds.
Metrics
- Added the
fusion_health_*metric family to the per-task metrics file. It reports uptime, memory use split into non-overlapping categories, open file handles, cache device disk usage, mount initialization time, and shutdown flush time. Resource exhaustion is now visible after the fact. - Added two liveness gauges that report how many file system requests are outstanding and the age of the oldest one. The age stays near zero when nothing is calling Fusion and climbs when Fusion has taken a request and not answered it. Use them to tell a stalled mount from an idle one.
- Published a schema and triage runbook for the metrics file. See Fusion task metrics.
Bug fixes
General
- Fixed a renamed directory dropping files and symlinks that were not yet uploaded.
- Fixed a "no such file" error on NFS daemon clusters for an input produced by another task.
- Fixed a retried task starting on leftovers from the previous attempt.
- Fixed
.tbi,.csi, and.baiindex files appearing older than the data they index. - Fixed symlink targets longer than 2048 bytes being truncated on read.
- Fixed declared outputs with adjacent brace patterns being evicted at shutdown instead of persisted.
- Fixed a truncate or seek-write to an implausible offset exhausting memory and killing the mount, which is now rejected with a clear error.
- Fixed temporary files being uploaded while the task was still writing them, except on runs with snapshots enabled.
Google Cloud
- Fixed corrupt results for very large files on Google Cloud Storage, roughly 128 GiB and above at the default chunk size.
- Added a check that rejects an object over the 5 TiB Google Cloud Storage per-object limit before uploading.
Dependencies
- Reorganized the metrics collector, added a streaming upload endpoint on the control interface, and moved
fusion-traceronto it. - Updated CI, build pipeline, and dependencies.
Upgrade notes
- Drop-in replacement for v2.6.3. No configuration changes required.
- In NFS mode,
fusion-tracernow sends its trace through the control interface and no longer falls back to writing it through the mount. A trace produced while the control node is unreachable is dropped. Tracing is unchanged when the control node is reachable. FUSION_NFS_READINESS_TIMEOUTis new and defaults to 60 seconds.