[Bug 271945] panic: deadlres_td_sleep_q : possible deadlock detected for … (stat) | (postgres) | (LTO toml.54d28171-c) , blocked for … ticks – during poudriere-bulk(8)

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 21 Jul 2023 19:06:50 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271945

--- Comment #7 from Cy Schubert <cy@FreeBSD.org> ---
(In reply to Graham Perrin ◐ from comment #6)

I'm using a custom kernel. I removed all device drivers except those needed to
boot. Then, NICs are included in loader.conf. Each machine is different since
though they have the same motherboard, they include different NICs. The laptop
and firewall have disabled WITNESS and INVARIANTS, while the two server
machines leave them enabled. Additionally, my kernels include BREAK_TO_DEBUGGER
to allow me to enter DDB through the serial console.

The problem occurs with and without WITNESS and INVARIANTS enabled in the
kernel. It only occurs on one machine, the machine that builds my amd64
packages. The other machine uses poudriere to build i386 packages. It is
unaffected.

Both machines boot off UFS and have a single ZPOOL. The ZPOOLs are mirrored.
The ZPOOL on the machine that has the problem has four vdevs in its pool. The
machine that builds i386 packages has only two vdevs in its pool.

The hypothesis is that this is probably related to ZFS in some way. The victim
process is either postgres I use as a backend for gitea or a c++. My theory is
that it's likely that poudriere is cloning jails from its snapshot when
creating new jails which results in the deadlock while other processes are
trying to write to the same pool.

-- 
You are receiving this mail because:
You are the assignee for the bug.