Your message dated Wed, 30 Sep 2026 17:46:45 +0200
with message-id <[email protected]>
and subject line xfsprogs: xfs_scrub_all deadlocks when lsblk output fills 
stdout pipe
has caused the Debian Bug report #1149535,
regarding xfsprogs: xfs_scrub_all deadlocks when lsblk output fills stdout pipe
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1149535: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1149535
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: xfsprogs
Version: 6.13.0-2+deb13u1
Severity: normal

Dear Maintainer,

On my hypervisor with many disks, the xfs_scrub_all systemd service hangs 
indefinitely during its scheduled run.

The process state showed:

PID      PPID     STAT WCHAN
4025445  1        SNs  do_wait
4025770  4025445  SN   anon_pipe_write

The parent process was:

/usr/bin/python3 /usr/sbin/xfs_scrub_all --auto-media-scan-interval 1mo

and the child was:

lsblk -o NAME,KNAME,TYPE,FSTYPE,MOUNTPOINT -J

/proc/4025770/stack showed:

anon_pipe_write
vfs_write
ksys_write
__x64_sys_write

strace of the parent showed:

wait4(4025770, ...

A standalone invocation of the exact lsblk command completed normally:

$ time lsblk -o NAME,KNAME,TYPE,FSTYPE,MOUNTPOINT -J > /tmp/lsblk.out

real    0m0.042s
user    0m0.027s
sys     0m0.015s

The cause appears to be find_mounts() in /usr/sbin/xfs_scrub_all:

result = subprocess.Popen(cmd, stdout=subprocess.PIPE)
result.wait()
if result.returncode != 0:
    return fs
sarray = [x.decode(sys.stdout.encoding) for x in result.stdout.readlines()]

The parent waits for lsblk to terminate before consuming stdout. If lsblk 
produces enough JSON output to fill the pipe, lsblk blocks in anon_pipe_write 
waiting for the parent to consume stdout, while the parent blocks in wait4 
waiting for lsblk to exit.

I locally changed this to use subprocess.run(), so that stdout is consumed 
without this deadlock:

result = subprocess.run(cmd, stdout=subprocess.PIPE)
if result.returncode != 0:
    return fs
output = result.stdout.decode(sys.stdout.encoding)

After this change:

$ time /usr/sbin/xfs_scrub_all

real    0m0.447s

The systemd service also completed successfully:

Process: 4056542 ExecStart=/usr/sbin/xfs_scrub_all --auto-media-scan-interval 
1mo (code=exited, status=0/SUCCESS)
Main PID: 4056542 (code=exited, status=0/SUCCESS)

xfs_scrub_all.service: Deactivated successfully.
Finished xfs_scrub_all.service.

This appears to correspond to the upstream fix for the xfs_scrub_all deadlock 
when lsblk produces a large amount of output.

Could this fix please be backported to the xfsprogs package in Debian 13/trixie?

Upstream fix:
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?id=1c52b36e3234aedaaa4b467f64c01636e96c1946

Regards,

-- System Information:
Debian Release: 13.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 7.0.14-14-pve (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages xfsprogs depends on:
ii  libblkid1           2.41.5-0+deb13u1
ii  libc6               2.41-12+deb13u4
ii  libdevmapper1.02.1  2:1.02.205-2+pmx1
ii  libedit2            3.1-20250104-1
ii  libicu76            76.1-4
ii  libinih1            59-1
ii  liburcu8t64         0.15.2-2
ii  libuuid1            2.41.5-0+deb13u1
ii  python3             3.13.5-1
ii  python3-dbus        1.4.0-1

xfsprogs recommends no packages.

Versions of packages xfsprogs suggests:
pn  acl      <none>
ii  attr     1:2.5.2-3
pn  quota    <none>
pn  xfsdump  <none>

-- no debconf information

--- End Message ---
--- Begin Message ---
Version: 7.2.0-1

The bug now lives at stable update request at #1149545.

--- End Message ---

Reply via email to