From: "Daniel Kral" <d.kral@proxmox.com>
To: "Fiona Ebner" <f.ebner@proxmox.com>, <pve-devel@lists.proxmox.com>
Subject: Re: [PATCH container 3/3] setup: make the architecture fall back to amd64 for empty strings
Date: Fri, 06 Feb 2026 13:12:30 +0100 [thread overview]
Message-ID: <DG7VBDP4TUI4.35L5K8W125HTS@proxmox.com> (raw)
In-Reply-To: <a9c8980d-82ad-4f10-b964-4471afa82f75@proxmox.com>
On Fri Feb 6, 2026 at 11:24 AM CET, Fiona Ebner wrote:
> Am 04.02.26 um 10:17 AM schrieb Daniel Kral:
>> Otherwise, if the underlying detect_architecture(...) method returns any
>> false value, the return value of the call to protected_call(...) will
>
> Do you mean undef value here? If I return 0 inside a protected call I get 0
>
>> return an empty string.
>
> not an empty string.
>
> There seems to be a difference in behavior between being in a nested
> protected call, which will return the result from the $sub directly, and
> a non-nested protected call, which reads the result from the pipe, which
> also results in an empty string when the result from $sub is undef.
Good catch, thanks! I only tried it with non-nested protected calls
which use the output from the pipe and also assumed that the empty
string comes from the conversion from a falsy value to a string in perl,
which is the empty string.
>
> I think the change here is fine, but we might want to document the
> behavior for protected call. Or fix up the non-nested case to properly
> return undef if $sub returns undef. Can be it's own series and will
> require checking that use sites are happy with the change, but it seems
> like there's only a small bunch that look at the return value anyways.
Right, as of writing this only get_os_release(), get_ct_init_path(), and
new() use the return value and all of these expect a string value.
For this series, I'll adapt the commit message in a v2.
>
>> This sets the architecture to an empty string and will make the
>> container fail to start.
>>
>> Signed-off-by: Daniel Kral <d.kral@proxmox.com>
>> ---
>> src/PVE/LXC/Setup.pm | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/PVE/LXC/Setup.pm b/src/PVE/LXC/Setup.pm
>> index 113093d..fb0207e 100644
>> --- a/src/PVE/LXC/Setup.pm
>> +++ b/src/PVE/LXC/Setup.pm
>> @@ -153,7 +153,7 @@ sub new {
>> warn "Architecture detection failed: $err" if $err;
>> }
>>
>> - if (!defined($arch)) {
>> + if (!$arch) {
>> $arch = 'amd64';
>> print "Falling back to $arch.\nUse `pct set VMID --arch ARCH` to change.\n";
>> } else {
next prev parent reply other threads:[~2026-02-06 12:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-04 9:17 [PATCH-SERIES container 0/3] add missing no-op methods for unmanaged CTs Daniel Kral
2026-02-04 9:17 ` [PATCH container 1/3] setup: add no-op check_systemd_nesting " Daniel Kral
2026-02-04 9:35 ` Daniel Kral
2026-02-05 10:12 ` Robert Obkircher
2026-02-05 10:46 ` Daniel Kral
2026-02-04 9:17 ` [PATCH container 2/3] setup: add no-op detect_architecture " Daniel Kral
2026-02-04 9:17 ` [PATCH container 3/3] setup: make the architecture fall back to amd64 for empty strings Daniel Kral
2026-02-06 10:24 ` Fiona Ebner
2026-02-06 12:12 ` Daniel Kral [this message]
2026-02-06 12:31 ` Fiona Ebner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DG7VBDP4TUI4.35L5K8W125HTS@proxmox.com \
--to=d.kral@proxmox.com \
--cc=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.