On 11/13/25 17:35, Fiona Ebner wrote:
Am 13.11.25 um 4:04 PM schrieb Robert Obkircher:
diff --git a/src/lxc-pve-prestart-hook b/src/lxc-pve-prestart-hook
index 73125e1..f5dd728 100755
--- a/src/lxc-pve-prestart-hook
+++ b/src/lxc-pve-prestart-hook
@@ -28,17 +28,6 @@ eval {
$have_sdn = 1;
};
-my $WARNFD;
-
-sub log_warn {
- my ($vmid, $message) = @_;
-
- if (!defined($WARNFD)) {
- open($WARNFD, '>', "/run/pve/ct-${vmid}.warnings");
- }
- print $WARNFD "$message\n";
-}
-
PVE::LXC::Tools::lxc_hook(
'pre-start',
'lxc',
@@ -53,6 +42,15 @@ PVE::LXC::Tools::lxc_hook(
PVE::RESTEnvironment->setup_default_cli_env();
+ my $warn_file = "/run/pve/ct-${vmid}.warnings";
+ # open eagerly so logging works inside the protected_call chroot
Nit: Maybe "early" instead of "eagerly"?
I was specifically thinking about eager/lazy evaluation.
+ open(my $warnfd, '>', $warn_file) or die "Failed to open $warn_file:
$!";
+ my $log_warn = sub {
+ my ($message) = @_;
Nit: I'd add a chomp() so that callers don't need to worry about not
including a newline
Makes sense.
+ print $warnfd "$message\n";
+ $warnfd->flush; # required because protected_call calls
POSIX::_exit
+ };
+
return undef if !-f PVE::LXC::Config->config_file($vmid);
my $conf = PVE::LXC::Config->load_config($vmid);
@@ -155,12 +153,12 @@ PVE::LXC::Tools::lxc_hook(
PVE::LXC::Config->foreach_passthrough_device($conf, $setup_passthrough_device);
- my $lxc_setup = PVE::LXC::Setup->new($conf, $rootdir);
+ my $lxc_setup = PVE::LXC::Setup->new($conf, $rootdir, undef,
$log_warn);
$lxc_setup->pre_start_hook();
if (PVE::CGroup::cgroup_mode() == 2) {
if (!$lxc_setup->unified_cgroupv2_support()) {
- log_warn(
+ $log_warn->(
$vmid,
"old systemd (< v232) detected, container won't run in a pure
cgroupv2"
. " environment! Please see documentation -> container ->
cgroup version.",
The call here still uses the VMID argument, but the new helper only
takes a single argument.
Thanks, good catch!
_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel