diff --git a/.wolf/buglog.json b/.wolf/buglog.json index df3af8d9..d40f08d4 100644 --- a/.wolf/buglog.json +++ b/.wolf/buglog.json @@ -15927,7 +15927,7 @@ "error_message": "xcecd logs 'Failed to find any disk statistics' every 15 s on NVMe-only hosts; io never reported\n\n**Observed:**\n```\n[2026-09-28 11:53:03,567][ERROR][node_information.c:951 ] Failed to find any disk statistics in /proc/diskstats\n(repeated every 15 s; pc13v's /proc/diskstats lists nvme0n1, nvme0n1p1, nvme0n1p2, loop0..loop7)\n```\n**Expected:** the io metric computed from nvme0n1's sector counters, no error.\n**Impact:** the `io` resource is never reported on a host whose disks are all NVMe or mmc (also any `sd*` name containing 'p', e.g. sdp), and xcecd logs an ERROR every 15 s. Likely the real cause of the io=0 readings in bug-1586.\n**Found by:** user report from a pc13v HA deploy, 2026-09-28", "file": "src/worker/src/node_information.c, src/worker/include/diskstats.h", "root_cause": "read_disk_io_rate() (src/worker/src/node_information.c) decided whole disks by name: it skipped names starting loop/ram/dm-, names containing 'p', and names longer than 3 characters ending in a digit. Every NVMe disk (nvme0n1) ends in a digit and contains 'p' in its partitions only, so the disk itself was skipped for the digit; mmcblk0 likewise; sdp for its 'p'. With no disk counted it returned -1 and logged ERROR each sample. Pre-existing, origin unknown.", - "fix": "src/worker/include/diskstats.h: diskstats_sum_physical() counts a device only when /sys/block//device exists -- the kernel's own mark of a real disk; partitions are not in /sys/block and loop, ram, zram, dm- and md devices have no `device` (counting dm/md would double-count I/O already seen on their member disks). node_information.c uses it and warns once, not every 15 s, when a host really has no physical disk.\n\nVerification:\n- Test: test_nvme_disk_is_counted_and_its_partitions_are_not (pc13v's /proc/diskstats) and test_sd_mmc_and_names_with_p_are_disks_virtual_ones_are_not in src/worker/testsuite/test_diskstats.c: both RED against the old name filter (0 disks; sdp/mmcblk0 missed), GREEN after; plus two more cases\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pending: user retest on pc13v (real root xcecd); the sandbox only runs xcecd_virtual", + "fix": "src/worker/include/diskstats.h: diskstats_sum_physical() counts a device only when /sys/block//device exists -- the kernel's own mark of a real disk; partitions are not in /sys/block and loop, ram, zram, dm- and md devices have no `device` (counting dm/md would double-count I/O already seen on their member disks). node_information.c uses it and warns once, not every 15 s, when a host really has no physical disk.\n\nVerification:\n- Test: test_nvme_disk_is_counted_and_its_partitions_are_not (pc13v's /proc/diskstats) and test_sd_mmc_and_names_with_p_are_disks_virtual_ones_are_not in src/worker/testsuite/test_diskstats.c: both RED against the old name filter (0 disks; sdp/mmcblk0 missed), GREEN after; plus two more cases\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; the diskstats ERROR is gone", "tags": [ "worker", "io", @@ -15944,6 +15944,32 @@ "gitea_issue": 311, "gitea_synced_status": "fixed" }, + { + "id": "bug-1873", + "status": "fixed", + "status_updated": "2026-09-28", + "status_note": "", + "component": "worker", + "severity": "noise", + "timestamp": "2026-09-28T03:55:19Z", + "last_seen": "2026-09-28T03:58:45Z", + "occurrences": 1, + "error_message": "xcecd warns 'Failed to get worker pid' on every job start while systemd forks the unit\n\n**Observed:**\n```\n[2026-09-28 11:55:19,212][ WARN][xcecd_dbus_manager.c:139 ] Failed to get worker pid\n(13 such lines in 3 bursts, 11:55:19, 11:57:00, 11:58:44 -- one burst per batch of job starts; no ERROR followed, so every job did start)\n```\n**Expected:** no warning when the pid is simply not known yet and the retry finds it.\n**Impact:** WARN lines on every job start that look like failures; noise only.\n**Found by:** user report from a pc13v HA deploy, 2026-09-28", + "file": "src/worker/src/xcecd_dbus_manager.c, src/worker/src/xcecd.c", + "root_cause": "After xcecd asks systemd to start the job's transient unit (xcecd-worker-.service), it reads the unit's MainPID over D-Bus (get_systemd_job_pid(), xcecd_cgroups.c). systemd forks the unit asynchronously, so MainPID is still 0 on the first read. dbus_get_worker_pid() (xcecd_dbus_manager.c) logged every 0 as a WARN, although its caller (xcecd.c) already retries 5 times, 100 ms apart, and only gives up -- with its own ERROR -- after that.", + "fix": "dbus_get_worker_pid() logs the expected miss at DEBUG, with the unit name; the caller's final ERROR now names the unit and the retry count.\n\nVerification:\n- Test: none automated -- the path needs a real systemd and D-Bus (the sandbox runs xcecd_virtual, which fakes the pid); the change is a log-level change only\n- Suites: full ASAN build (xce-build all): 113/113 suites, worker included\n- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no 'Failed to get worker pid'", + "tags": [ + "worker", + "systemd", + "dbus", + "logging" + ], + "related_bugs": [], + "fix_commits": [ + "44173f74" + ], + "record": ".wolf/bugs/bug-1873.md" + }, { "id": "bug-1874", "status": "fixed", @@ -15957,7 +15983,7 @@ "error_message": "scheduler warns about deprecated job_elect_fn for xce_sched_fcfs on every start\n\n**Observed:**\n```\n[2026-09-28 11:52:49,740] [51152] [ WARN] [ plugin_register] plugin 'xce_sched_fcfs' selects jobs via the deprecated job_elect_fn hook; migrate to xce_job_picker_iface_t (scheduler-core spec, Req 5 'Migration from old job_elect_fn')\n```\n**Expected:** no warning: the normal-mode job picker is builtin_fcfs, not the legacy plugin.\n**Impact:** a WARN on every scheduler start that asks the operator to migrate something they do not use; noise only.\n**Found by:** user report from a pc13v HA deploy, 2026-09-28", "file": "src/scheduler/src/plugin.c, src/scheduler/src/schedobj.c", "root_cause": "sched_register_plugins() (scheduler.c) registers the legacy xce_sched_fcfs plugin on every start alongside builtin_fcfs, and plugin_register() (plugin.c) warned for every job_elect_fn-only plugin it adapted to the picker interface, whether or not that plugin would ever be selected. In normal mode the picker is always builtin_fcfs (sched_set_default_job_pick_plugin()); only --sim can name another.", - "fix": "plugin_register() still adapts a job_elect_fn plugin but only marks it (plugin->legacy_picker); sched_resolve_job_picker() (schedobj.c) logs the deprecation once (legacy_picker_warned) when such a plugin is actually selected as the picker.\n\nVerification:\n- Test: test_legacy_picker_deprecation_flagged_on_selection_not_registration in src/scheduler/testsuite/test_picker_wiring.c (new: registration leaves legacy_picker_warned unset, selection sets it) and test_register_legacy_job_elect_fn_only_plugin_uses_wrapper_without_warning in test_plugin_picker_registration.c, which captures the log: 0 warnings at registration (it asserted 1 before the change)\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pending: user retest on pc13v (scheduler log)", + "fix": "plugin_register() still adapts a job_elect_fn plugin but only marks it (plugin->legacy_picker); sched_resolve_job_picker() (schedobj.c) logs the deprecation once (legacy_picker_warned) when such a plugin is actually selected as the picker.\n\nVerification:\n- Test: test_legacy_picker_deprecation_flagged_on_selection_not_registration in src/scheduler/testsuite/test_picker_wiring.c (new: registration leaves legacy_picker_warned unset, selection sets it) and test_register_legacy_job_elect_fn_only_plugin_uses_wrapper_without_warning in test_plugin_picker_registration.c, which captures the log: 0 warnings at registration (it asserted 1 before the change)\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no job_elect_fn deprecation warning", "tags": [ "scheduler", "plugin", @@ -15985,7 +16011,7 @@ "error_message": "apiserver warns PAM needs root when the auth provider is not pam\n\n**Observed:**\n```\n2026-09-28T11:52:50.031+0800 WARN Not running as root — PAM authentication will not work. OK for dev/testing.\n```\n**Expected:** no warning when the configured auth provider is not pam (the default config/auth.yaml has `provider: config_file`).\n**Impact:** a misleading WARN on every non-root apiserver start; noise only.\n**Found by:** user report from a pc13v HA deploy, 2026-09-28", "file": "src/frontend/apiserver/middleware/startserver.go", "root_cause": "StartServer() (src/frontend/apiserver/middleware/startserver.go) warned whenever the uid was not 0, without looking at which auth provider cmd/main.go had initialized (auth.GlobalProvider) -- only the PAM provider needs root.", - "fix": "rootWarning(uid, provider) returns the warning only for provider \"pam\" and a non-root uid; StartServer() passes auth.GlobalProvider.Name().\n\nVerification:\n- Test: TestRootWarning in src/frontend/apiserver/middleware/startserver_test.go (5 uid/provider cases): RED before the fix (rootWarning did not exist), GREEN after; run with `CGO_ENABLED=0 go test ./middleware/ -run TestRootWarning` (the package's TestLoadJobs needs a live apiserver and is not part of the normal Go test set)\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pending: user retest on pc13v (apiserver log)", + "fix": "rootWarning(uid, provider) returns the warning only for provider \"pam\" and a non-root uid; StartServer() passes auth.GlobalProvider.Name().\n\nVerification:\n- Test: TestRootWarning in src/frontend/apiserver/middleware/startserver_test.go (5 uid/provider cases): RED before the fix (rootWarning did not exist), GREEN after; run with `CGO_ENABLED=0 go test ./middleware/ -run TestRootWarning` (the package's TestLoadJobs needs a live apiserver and is not part of the normal Go test set)\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no PAM warning from the apiserver", "tags": [ "apiserver", "auth", @@ -16013,7 +16039,7 @@ "error_message": "standby logs cluster_init_phase2 failed (rc=-22) WARN every 3 s while awaiting the primary's config\n\n**Observed:**\n```\n[2026-09-28 11:52:38,939] [51034] [ WARN] [ myapp_run] myapp_run: cluster_init_phase2 on standby rejoin failed (rc=-22) — WAL not recovered; member stays alive and will retry (bug-1477: ...)\n[2026-09-28 11:52:41,941] [51034] [ WARN] [ ha_phase2_retry_fn] HA: cluster_init_phase2 retry rc=-22 — member stays alive and will retry again (bug-1477, never self-terminate)\n(ctrl-2 and ctrl-3, every 3 s until 11:52:47)\n```\n**Expected:** the standby waits for the primary's config push quietly (INFO), as cluster_init_phase2() itself describes that state.\n**Impact:** WARN lines on every cold start of every standby that read like a failed WAL recovery; noise, but alarming.\n**Found by:** user report from a pc13v HA deploy, 2026-09-28", "file": "src/controller/cluster.c, src/controller/myapp.c, src/controller/ha.c", "root_cause": "cluster_init_phase2() (controller/cluster.c) returns early when c->myconf->cluster_config is still NULL -- a standby that has not received the primary's config push yet -- and logs that at INFO as normal, but returned -EINVAL. Both callers, myapp_run()'s standby-rejoin path (myapp.c) and ha_phase2_retry_fn() (ha.c), treat any nonzero result as a failure and log WARN with rc=-22.", - "fix": "cluster_init_phase2() returns -EAGAIN for that wait; ha_phase2_rc_is_waiting() (ha.h) names it, and myapp_run() and ha_phase2_retry_fn() log it at INFO while other failures still WARN. The promotion-refused path in ha.c keeps its WARN.\n\nVerification:\n- Test: test_phase2_without_config_is_a_wait_not_an_error in src/controller/testsuite/test_phase2_cold_boot.c: cluster_init_phase2() with no cluster_config returns -EAGAIN (it returned -EINVAL before), and ha_phase2_rc_is_waiting() accepts only -EAGAIN\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pending: user retest on pc13v (standby logs on a fresh deploy)", + "fix": "cluster_init_phase2() returns -EAGAIN for that wait; ha_phase2_rc_is_waiting() (ha.h) names it, and myapp_run() and ha_phase2_retry_fn() log it at INFO while other failures still WARN. The promotion-refused path in ha.c keeps its WARN.\n\nVerification:\n- Test: test_phase2_without_config_is_a_wait_not_an_error in src/controller/testsuite/test_phase2_cold_boot.c: cluster_init_phase2() with no cluster_config returns -EAGAIN (it returned -EINVAL before), and ha_phase2_rc_is_waiting() accepts only -EAGAIN\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no cluster_init_phase2 warnings on ctrl-2/ctrl-3", "tags": [ "controller", "ha", @@ -16043,7 +16069,7 @@ "error_message": "controller warns 'WAL/snapshot stored unencrypted' without checking the storage\n\n**Observed:**\n```\n[2026-09-28 11:52:37,938] [51034] [ WARN] [ persist_init] WAL/snapshot stored unencrypted in /tmp/xce-ha-deploy/controller/ctrl-3/data/wal — ensure filesystem is encrypted if job payloads contain sensitive data\n```\n**Expected:** the warning only when the WAL's storage is not encrypted.\n**Impact:** the advisory fired on encrypted storage too, so it carried no information. On pc13v (/tmp, not shown to be encrypted) it still correctly appears after the fix.\n**Found by:** user report from a pc13v HA deploy, 2026-09-28", "file": "src/controller/persist.c", "root_cause": "persist_init() (controller/persist.c) logged the warning unconditionally.", - "fix": "persist_path_encrypted() checks the WAL directory for fscrypt (statx STATX_ATTR_ENCRYPTED) and its block device for a dm-crypt layer via sysfs (dm/uuid starting CRYPT-), following `slaves` so LVM on LUKS counts (persist_dev_is_dmcrypt()). Encrypted storage is logged at INFO; anything not shown to be encrypted keeps the WARN.\n\nVerification:\n- Test: test_luks_device_is_encrypted, test_lvm_on_luks_is_encrypted, test_plain_partition_and_plain_lvm_are_not and test_unknown_device_is_not_claimed_encrypted in src/controller/testsuite/test_persist_encryption.c, against a fake sysfs tree (new functions; there was no check before)\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: n/a here (no encrypted volume on this host); on pc13v the warning is expected to remain for /tmp", + "fix": "persist_path_encrypted() checks the WAL directory for fscrypt (statx STATX_ATTR_ENCRYPTED) and its block device for a dm-crypt layer via sysfs (dm/uuid starting CRYPT-), following `slaves` so LVM on LUKS counts (persist_dev_is_dmcrypt()). Encrypted storage is logged at INFO; anything not shown to be encrypted keeps the WARN.\n\nVerification:\n- Test: test_luks_device_is_encrypted, test_lvm_on_luks_is_encrypted, test_plain_partition_and_plain_lvm_are_not and test_unknown_device_is_not_claimed_encrypted in src/controller/testsuite/test_persist_encryption.c, against a fake sysfs tree (new functions; there was no check before)\n- Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS\n- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory: the advisory remains for /tmp, which is not encrypted -- as expected", "tags": [ "controller", "persistence", diff --git a/.wolf/bugs/bug-1872.md b/.wolf/bugs/bug-1872.md index 05b27434..32d1d627 100644 --- a/.wolf/bugs/bug-1872.md +++ b/.wolf/bugs/bug-1872.md @@ -52,7 +52,7 @@ src/worker/include/diskstats.h: diskstats_sum_physical() counts a device only wh ## Verification - Test: test_nvme_disk_is_counted_and_its_partitions_are_not (pc13v's /proc/diskstats) and test_sd_mmc_and_names_with_p_are_disks_virtual_ones_are_not in src/worker/testsuite/test_diskstats.c: both RED against the old name filter (0 disks; sdp/mmcblk0 missed), GREEN after; plus two more cases - Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS -- Live: pending: user retest on pc13v (real root xcecd); the sandbox only runs xcecd_virtual +- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; the diskstats ERROR is gone ## References - Related: bug-1586 diff --git a/.wolf/bugs/bug-1873.md b/.wolf/bugs/bug-1873.md new file mode 100644 index 00000000..87a05b13 --- /dev/null +++ b/.wolf/bugs/bug-1873.md @@ -0,0 +1,55 @@ +--- +id: "bug-1873" +status: "fixed" +status_updated: "2026-09-28" +status_note: "" +component: "worker" +severity: "noise" +timestamp: "2026-09-28T03:55:19Z" +last_seen: "2026-09-28T03:58:45Z" +occurrences: 1 +files: ["src/worker/src/xcecd_dbus_manager.c", "src/worker/src/xcecd.c"] +tags: ["worker", "systemd", "dbus", "logging"] +related: [] +fix_commits: ["44173f74"] +--- + +# bug-1873: xcecd warns 'Failed to get worker pid' on every job start while systemd forks the unit + +## Description +**Observed:** +``` +[2026-09-28 11:55:19,212][ WARN][xcecd_dbus_manager.c:139 ] Failed to get worker pid +(13 such lines in 3 bursts, 11:55:19, 11:57:00, 11:58:44 -- one burst per batch of job starts; no ERROR followed, so every job did start) +``` +**Expected:** no warning when the pid is simply not known yet and the retry finds it. +**Impact:** WARN lines on every job start that look like failures; noise only. +**Found by:** user report from a pc13v HA deploy, 2026-09-28 + +## Environment +- OS: NixOS 26.05 (Yarara); NixOS kernel; kernel Linux 6.18.33 x86_64 +- libc: glibc 2.42-47 (interpreter /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/ld-linux-x86-64.so.2) +- Toolchain: gcc (GCC) 15.2.0, meson 1.9.1 +- Build: debug (build.dbg) +- Code: scheduler-framework, a build before 44173f74 (exact commit of the 11:52 run not recorded; environment read at 4c134127 with `buglog.py env src/build.dbg/worker/xcecd`) +- Deployment: pc13v: 3-node HA (ctrl-1..3) + scheduler + apiserver, real root xcecd running jobs as systemd transient units, deploy dir /tmp/xce-ha-deploy + +## Reproduction +1. Deploy on a systemd host with a real (root) xcecd +2. Submit jobs; watch xcecd.log for 'Failed to get worker pid' at each start +- Frequency: deterministic on pc13v (every burst of job starts, 13/13 in the 2026-09-28 run) +- Evidence: the xcecd.log lines pasted in the user's report, quoted above + +## Root cause +After xcecd asks systemd to start the job's transient unit (xcecd-worker-.service), it reads the unit's MainPID over D-Bus (get_systemd_job_pid(), xcecd_cgroups.c). systemd forks the unit asynchronously, so MainPID is still 0 on the first read. dbus_get_worker_pid() (xcecd_dbus_manager.c) logged every 0 as a WARN, although its caller (xcecd.c) already retries 5 times, 100 ms apart, and only gives up -- with its own ERROR -- after that. + +## Fix +dbus_get_worker_pid() logs the expected miss at DEBUG, with the unit name; the caller's final ERROR now names the unit and the retry count. + +## Verification +- Test: none automated -- the path needs a real systemd and D-Bus (the sandbox runs xcecd_virtual, which fakes the pid); the change is a log-level change only +- Suites: full ASAN build (xce-build all): 113/113 suites, worker included +- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no 'Failed to get worker pid' + +## References +- Related: none diff --git a/.wolf/bugs/bug-1874.md b/.wolf/bugs/bug-1874.md index 5436aa97..3870343c 100644 --- a/.wolf/bugs/bug-1874.md +++ b/.wolf/bugs/bug-1874.md @@ -51,7 +51,7 @@ plugin_register() still adapts a job_elect_fn plugin but only marks it (plugin-> ## Verification - Test: test_legacy_picker_deprecation_flagged_on_selection_not_registration in src/scheduler/testsuite/test_picker_wiring.c (new: registration leaves legacy_picker_warned unset, selection sets it) and test_register_legacy_job_elect_fn_only_plugin_uses_wrapper_without_warning in test_plugin_picker_registration.c, which captures the log: 0 warnings at registration (it asserted 1 before the change) - Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS -- Live: pending: user retest on pc13v (scheduler log) +- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no job_elect_fn deprecation warning ## References - Related: none diff --git a/.wolf/bugs/bug-1875.md b/.wolf/bugs/bug-1875.md index d6d302fd..ee95eaf8 100644 --- a/.wolf/bugs/bug-1875.md +++ b/.wolf/bugs/bug-1875.md @@ -51,7 +51,7 @@ rootWarning(uid, provider) returns the warning only for provider "pam" and a non ## Verification - Test: TestRootWarning in src/frontend/apiserver/middleware/startserver_test.go (5 uid/provider cases): RED before the fix (rootWarning did not exist), GREEN after; run with `CGO_ENABLED=0 go test ./middleware/ -run TestRootWarning` (the package's TestLoadJobs needs a live apiserver and is not part of the normal Go test set) - Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS -- Live: pending: user retest on pc13v (apiserver log) +- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no PAM warning from the apiserver ## References - Related: none diff --git a/.wolf/bugs/bug-1876.md b/.wolf/bugs/bug-1876.md index f3b970b7..86410ce9 100644 --- a/.wolf/bugs/bug-1876.md +++ b/.wolf/bugs/bug-1876.md @@ -53,7 +53,7 @@ cluster_init_phase2() returns -EAGAIN for that wait; ha_phase2_rc_is_waiting() ( ## Verification - Test: test_phase2_without_config_is_a_wait_not_an_error in src/controller/testsuite/test_phase2_cold_boot.c: cluster_init_phase2() with no cluster_config returns -EAGAIN (it returned -EINVAL before), and ha_phase2_rc_is_waiting() accepts only -EAGAIN - Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS -- Live: pending: user retest on pc13v (standby logs on a fresh deploy) +- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory; no cluster_init_phase2 warnings on ctrl-2/ctrl-3 ## References - Related: bug-1477 diff --git a/.wolf/bugs/bug-1877.md b/.wolf/bugs/bug-1877.md index 029a58aa..4b87c22e 100644 --- a/.wolf/bugs/bug-1877.md +++ b/.wolf/bugs/bug-1877.md @@ -51,7 +51,7 @@ persist_path_encrypted() checks the WAL directory for fscrypt (statx STATX_ATTR_ ## Verification - Test: test_luks_device_is_encrypted, test_lvm_on_luks_is_encrypted, test_plain_partition_and_plain_lvm_are_not and test_unknown_device_is_not_claimed_encrypted in src/controller/testsuite/test_persist_encryption.c, against a fake sysfs tree (new functions; there was no check before) - Suites: full ASAN build (xce-build all): 113/113 suites after the updated scheduler picker-registration test; controller 1250/0, harness 141/0, worker diskstats 4/0, scheduler picker wiring 11/0 + picker registration 4/0, apiserver TestRootWarning PASS -- Live: n/a here (no encrypted volume on this host); on pc13v the warning is expected to remain for /tmp +- Live: pc13v retest at 4c134127 (debug build, 2026-09-28 14:47 +0800): `ag -i error logs/` finds nothing; `ag -i warn logs/` shows only the WAL-unencrypted advisory: the advisory remains for /tmp, which is not encrypted -- as expected ## References - Related: none