I applied the proposed fix, rebuilt and installed the new package, and
re-ran the tests.
It no longer freezes, so the problem appears to be resolved.
--- fscrypt-0.3.7/filesystem/mountpoint.go
+++ fscrypt-0.3.7/filesystem/mountpoint.go
@@ -300,6 +300,14 @@ func readMountInfo(r io.Reader) error {
continue
}
+ // Skip FUSE filesystems to avoid blocking on unresponsive FUSE
daemons.
+ // This prevents a deadlock scenario where sshfs mounts a remote
filesystem
+ // while sshd is blocked in PAM session opening (waiting for
SFTP data),
+ // creating a circular dependency that hangs indefinitely.
+ if strings.HasPrefix(mnt.FilesystemType, "fuse") {
+ continue
+ }
+
// We can only use mountpoints that are directories for fscrypt.
if !isDir(mnt.Path) {
log.Printf("ignoring mountpoint %q because it is not a
directory", mnt.Path)