zfsonlinux/debian/patches/3100-remove-libzfs-module-timeout.patch
2025-01-15 16:52:43 +08:00

27 lines
1.0 KiB
Diff

Description: Reduce the timeout to zero seconds when running in a container (LP: #1760173)
When inside a lxd container with zfs storage, zfs list or zpool status
appears to hang, no output for 10 seconds. Check if we are inside a
container and set the timeout to zero in this specific case.
Origin: ubuntu
Forwarded: not-needed
Bug: https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1760173
--- a/lib/libzfs/os/linux/libzfs_util_os.c
+++ b/lib/libzfs/os/linux/libzfs_util_os.c
@@ -109,6 +109,16 @@
const char *timeout_str = getenv("ZFS_MODULE_TIMEOUT");
int seconds = 10;
+
+ /*
+ * If inside a container, set the timeout to zero (LP: #1760173),
+ * however, this can be over-ridden by ZFS_MODULE_TIMEOUT just
+ * in case the user explicitly wants to set the timeout for some
+ * reason just for backward compatibilty
+ */
+ if (access("/run/systemd/container", R_OK) == 0)
+ seconds = 0;
+
if (timeout_str)
seconds = MIN(strtol(timeout_str, NULL, 0), 600);
struct itimerspec timeout = {.it_value.tv_sec = MAX(seconds, 0)};