From 388a54929a343382c850a4674d7396a3a8b81518 Mon Sep 17 00:00:00 2001 From: Arian van Putten Date: Thu, 3 Apr 2025 01:40:10 +0100 Subject: [PATCH] nixos/tests/fluent-bit: add regression test for #395128 --- nixos/tests/fluent-bit.nix | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/nixos/tests/fluent-bit.nix b/nixos/tests/fluent-bit.nix index 9dc68011ea85..729a586784ad 100644 --- a/nixos/tests/fluent-bit.nix +++ b/nixos/tests/fluent-bit.nix @@ -13,7 +13,7 @@ import ./make-test-python.nix ( inputs = [ { name = "systemd"; - systemd_filter = "_SYSTEMD_UNIT=fluent-bit.service"; + systemd_filter = "_SYSTEMD_UNIT=fluent-bit-regression-395128.service"; } ]; outputs = [ @@ -28,12 +28,35 @@ import ./make-test-python.nix ( }; systemd.services.fluent-bit.serviceConfig.LogsDirectory = "fluent-bit"; + + # Logs get compressed when larger than 1024 bytes + # Lets generate some logs that trigger that + # This causes libzstd to be dlopen'd by systemd which breaks fluent-bit 3.2.7+ + # https://www.freedesktop.org/software/systemd/man/latest/journald.conf.html#Compress= + systemd.services.fluent-bit-regression-395128 = { + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + script = '' + for i in {1..20}; do + (head -c 1200 < /dev/zero | tr '\0' 'A') && echo + sleep 1 + done + ''; + }; }; testScript = '' start_all() machine.wait_for_unit("fluent-bit.service") + + # Regression test for https://github.com/NixOS/nixpkgs/pull/395128 + with subtest("fluent-bit handles zstd-compressed journal logs"): + machine.succeed("systemctl start fluent-bit-regression-395128.service") + machine.succeed("systemctl show -p NRestarts fluent-bit.service | grep -q 'NRestarts=0'") + machine.wait_for_file("/var/log/fluent-bit/fluent-bit.out") ''; }