Conversation
There was a problem hiding this comment.
Pull request overview
This PR bundles several operational bugfixes across confd, container lifecycle handling, and the packaged finit init system to improve robustness during configuration changes and process restarts.
Changes:
- Reworked
confdconsole progress output to avoid blank/garbled[ OK ]lines by caching and reprinting step descriptions. - Adjusted IP neighbor flush script generation to avoid acting on interfaces that are in containers and to skip non-existent interfaces.
- Backported two
finitpatches to improve restart behavior after unclean daemon exits and to produce more informative “service died” logs; updated container stop wrapper behavior and ChangeLog.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
src/confd/src/main.c |
Updates confd progress output logic to prevent blank/garbled OK lines during bootstrap. |
src/confd/src/ip.c |
Changes neighbor flush generation to avoid container-owned/non-existent interfaces. |
board/common/rootfs/usr/sbin/container |
Ensures stop proceeds to podman stop even if a stale setup pidfile exists. |
package/finit/0001-service-clean-stale-pidfile-after-unclean-daemon-exi.patch |
Backport: remove stale daemon-owned pidfiles after unclean exits to allow reliable restarts. |
package/finit/0002-service-log-signal-name-and-core-dumps-in-death-mess.patch |
Backport: improve death/restart logs with signal names and core-dump annotation. |
doc/ChangeLog.md |
Adds v26.05.0 unreleased notes for the fixes in this PR (and an additional kernel entry). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
Author
|
@mattiaswal all tests pass again now, as they should. Pushing another update though with some code simplification. |
mattiaswal
reviewed
May 12, 2026
When an interface has been handed off to a container it lives in another netns, so `ip neigh/addr flush dev FOO` fails on the host. The failure aborts dagger, and since interfaces_change() runs before containers_change() in change_cb(), the container delete path is never reached -- the stale container keeps the interface trapped in its netns, breaking the next reconfiguration. Guard both the neighbor and address flush exit scripts with `if_nametoindex(ifname)` -- true exactly when the interface is in the host netns, false for both "in a container" and "already gone". This replaces the pre-existing `!cni_find(ifname) && if_nametoindex( ifname)` guard at the addr site: cni_find() added no information for this check and would popen(container find) for nothing when the interface had been deleted entirely. Also harden wrap() in /usr/sbin/container so a stale setup pidfile doesn't short-circuit Finit's stop attempt -- kill the setup PID and still ask podman to stop the container. Fixes #1493 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
The \r-overwrite of an in-progress line breaks when something else writes to stderr between conout(3) and the final call, leaving blank "[ OK ]" lines. Cache the description and reprint it whole, so the final status line is robust to intervening output. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Backport two fixes addressing a critical failure reported by a customer:
an unclean dbus-daemon exit leaves a lingering /run/messagebus.pid, the
daemon then refuse to start, and Finit's restart loop gives up.
0001 service: clean stale pidfile after unclean daemon exit
Drop a daemon-owned (pid:!) pidfile when it still names the
just-reaped PID and that PID is no longer alive.
0002 service: log signal name and core dumps in death message
"by signal: 9" -> "killed by SIGKILL", with ", core dumped"
when applicable. Stronger breadcrumb for sudden deaths.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
[skip ci] Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
mattiaswal
approved these changes
May 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
[ OK ]lines in the boot log fromconfddbus-daemoncan now restart after an unclean exit, and the death log shows signal name + core-dump flagChecklist
Tick relevant boxes, this PR is-a or has-a: