Package: release.debian.org Severity: normal Tags: d-i User: [email protected] Usertags: unblock X-Debbugs-Cc: [email protected] Control: affects -1 + src:fuse3
Hi RMs, [ Reason ] It was reported to Ubuntu that under certain conditions fusermount3 uses 100% CPU [1]. This most probably affects Trixie as well. [ Impact ] Upstream fixed it, and turned out previously was using an incorrect define to test if the close_range syscall is available or not during compilation. This is a minimal change. I also applied a one line change to one of the examples to fix a deadlock in it. [ Tests ] I tested installation, I couldn't reproduce the 100% CPU usage even before. [ Risks ] There's no risk, the changes correct usage to be normal. Original bug reporter confirms the fix is working fine. But as fuse3 has an udeb, I put kibi in the loop. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing Regards, Laszlo/GCS [1] https://bugs.launchpad.net/fuse/+bug/2115475/
diff -Nru fuse3-3.17.2/debian/changelog fuse3-3.17.2/debian/changelog --- fuse3-3.17.2/debian/changelog 2025-05-19 18:39:08.000000000 +0000 +++ fuse3-3.17.2/debian/changelog 2025-07-16 17:27:21.000000000 +0000 @@ -1,3 +1,11 @@ +fuse3 (3.17.2-3) unstable; urgency=medium + + * Backport upstream fixes: + - fix the close_range ifdef, + - fix deadlock in truncate operation in memfs_ll.cc example. + + -- Laszlo Boszormenyi (GCS) <[email protected]> Wed, 16 Jul 2025 17:27:21 +0000 + fuse3 (3.17.2-2) unstable; urgency=medium [ Laszlo Boszormenyi (GCS) ] diff -Nru fuse3-3.17.2/debian/patches/Fix-the-close_range-ifdef.patch fuse3-3.17.2/debian/patches/Fix-the-close_range-ifdef.patch --- fuse3-3.17.2/debian/patches/Fix-the-close_range-ifdef.patch 1970-01-01 00:00:00.000000000 +0000 +++ fuse3-3.17.2/debian/patches/Fix-the-close_range-ifdef.patch 2025-07-16 17:27:21.000000000 +0000 @@ -0,0 +1,38 @@ +From 194023c5999651386a3ddbf91fdd710d661d083b Mon Sep 17 00:00:00 2001 +From: Bernd Schubert <[email protected]> +Date: Tue, 15 Jul 2025 23:54:27 +0200 +Subject: [PATCH] fusermount: Fix the close_range ifdef + +This fixes commit 82bcd818 +That commit had removed HAVE_LINUX_CLOSE_RANGE in meson generation, +but didn't remove the usage in fusermount.c - fusermount was then +not using the close_range syscall. + +Closes: https://github.com/libfuse/libfuse/issues/1284 +Signed-off-by: Bernd Schubert <[email protected]> +--- + util/fusermount.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/util/fusermount.c b/util/fusermount.c +index 48f7fe7fa..1b94e8e5e 100644 +--- a/util/fusermount.c ++++ b/util/fusermount.c +@@ -36,7 +36,7 @@ + #include <stdbool.h> + #include <sys/vfs.h> + +-#ifdef HAVE_LINUX_CLOSE_RANGE_H ++#ifdef HAVE_CLOSE_RANGE + #include <linux/close_range.h> + #endif + +@@ -1477,7 +1477,7 @@ static int close_inherited_fds(int cfd) + if (cfd <= STDERR_FILENO) + return -EINVAL; + +-#ifdef HAVE_LINUX_CLOSE_RANGE_H ++#ifdef HAVE_CLOSE_RANGE + if (cfd < STDERR_FILENO + 2) { + close_range_loop(STDERR_FILENO + 1, cfd - 1, cfd); + } else { diff -Nru fuse3-3.17.2/debian/patches/memfs_ll-fix-deadlock.patch fuse3-3.17.2/debian/patches/memfs_ll-fix-deadlock.patch --- fuse3-3.17.2/debian/patches/memfs_ll-fix-deadlock.patch 1970-01-01 00:00:00.000000000 +0000 +++ fuse3-3.17.2/debian/patches/memfs_ll-fix-deadlock.patch 2025-07-16 17:27:21.000000000 +0000 @@ -0,0 +1,27 @@ +From b96c738b10e9a308725c62b9392ba7d553eec254 Mon Sep 17 00:00:00 2001 +From: Long Li <[email protected]> +Date: Wed, 16 Jul 2025 09:54:07 +0800 +Subject: [PATCH] memfs_ll: fix deadlock in truncate operation + +Remove redundant mutex lock acquisition in the truncate() method to +prevent deadlock. The issue occurs when memfs_setattr() already holds +the mutex lock and then calls truncate(), which attempts to acquire +the same lock again. + +Signed-off-by: Long Li <[email protected]> +--- + example/memfs_ll.cc | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/example/memfs_ll.cc b/example/memfs_ll.cc +index 0da7c2544..17d7d034b 100644 +--- a/example/memfs_ll.cc ++++ b/example/memfs_ll.cc +@@ -197,7 +197,6 @@ class Inode { + + void truncate(off_t size) + { +- std::lock_guard<std::mutex> lock(mutex); + std::lock_guard<std::mutex> attr_lock(attr_mutex); + if (size < content.size()) { + content.resize(size); diff -Nru fuse3-3.17.2/debian/patches/series fuse3-3.17.2/debian/patches/series --- fuse3-3.17.2/debian/patches/series 2025-05-19 18:39:08.000000000 +0000 +++ fuse3-3.17.2/debian/patches/series 2025-07-16 17:27:21.000000000 +0000 @@ -3,3 +3,5 @@ Make_conn-want-want_ext_conversion_non_fatal.patch Add-container_of-and-ROUND_UP-macros.patch Fix-fuse_apply_conn_info_opts.patch +Fix-the-close_range-ifdef.patch +memfs_ll-fix-deadlock.patch

