From: "'MOESSBAUER, Felix' via isar-users" <isar-users@googlegroups.com>
To: "ubely@ilbers.de" <ubely@ilbers.de>,
"isar-users@googlegroups.com" <isar-users@googlegroups.com>,
"Kowalsky, Clara" <clara.kowalsky@siemens.com>
Cc: "Bezdeka, Florian" <florian.bezdeka@siemens.com>
Subject: Re: [PATCH v3] expand-on-first-boot: Ensure that /tmp is writable
Date: Tue, 3 Sep 2024 07:20:41 +0000 [thread overview]
Message-ID: <7009e44f4fb7730435f5f0d726f11448a94407d2.camel@siemens.com> (raw)
In-Reply-To: <5d23fe9e9adda350f5596f00d7b8bd1eb3c67ed6.camel@ilbers.de>
On Thu, 2024-08-15 at 07:07 +0300, Uladzimir Bely wrote:
> On Tue, 2024-08-13 at 13:32 +0300, Uladzimir Bely wrote:
> > On Tue, 2024-08-13 at 09:24 +0000, MOESSBAUER, Felix wrote:
> > > On Tue, 2024-08-13 at 12:17 +0300, Uladzimir Bely wrote:
> > > > On Thu, 2024-07-25 at 16:17 +0200, 'Clara Kowalsky' via isar-
> > > > users
> > > > wrote:
> > > > > By setting PrivateTmp, a new file system namespace is created
> > > > > for
> > > > > this
> > > > > service and private /tmp/<service>/tmp and
> > > > > /var/tmp/<service>/tmp
> > > > > subdirectories are mounted, which are only used for processes
> > > > > of
> > > > > this
> > > > > namespace. The service unit receives a mount unit dependency
> > > > > for
> > > > > all
> > > > > mounts required to access /tmp and /var/tmp.
> > > > > This ensures that the /tmp directory is writable for the
> > > > > service,
> > > > > as
> > > > > mktemp is used in expand-last-partition.sh and creates a
> > > > > temporary
> > > > > file.
> > > > >
> > > > > Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
> > > > > ---
> > > > > .../expand-on-first-boot/files/expand-on-first-
> > > > > boot.service
> > > > > >
> > > > > 1
> > > > > +
> > > > > 1 file changed, 1 insertion(+)
> > > > >
> > > > > diff --git a/meta/recipes-support/expand-on-first-
> > > > > boot/files/expand-
> > > > > on-first-boot.service b/meta/recipes-support/expand-on-first-
> > > > > boot/files/expand-on-first-boot.service
> > > > > index 90c92a39..8e76998b 100644
> > > > > --- a/meta/recipes-support/expand-on-first-boot/files/expand-
> > > > > on-
> > > > > first-boot.service
> > > > > +++ b/meta/recipes-support/expand-on-first-boot/files/expand-
> > > > > on-
> > > > > first-boot.service
> > > > > @@ -16,6 +16,7 @@ Type=oneshot
> > > > > ExecStart=/usr/share/expand-on-first-boot/expand-last-
> > > > > partition.sh
> > > > > ExecStartPost=-/bin/systemctl disable expand-on-first-
> > > > > boot.service
> > > > > ExecStopPost=-/bin/systemctl disable expand-on-first-
> > > > > boot.service
> > > > > +PrivateTmp=true
> > > > >
> > > > > [Install]
> > > > > WantedBy=sysinit.target
> > > > > --
> > > > > 2.45.2
> > > > >
> > > >
> > > > Hello all.
> > > >
> > > > After few days having this patch merged we at least twice faced
> > > > the
> > > > issue in CI with running qemuamd64 machine, probably related to
> > > > the
> > > > applied patch.
> > > >
> > > > Error message is "ERROR| No resize output while expected".
> > > > E.g.,
> > > > there
> > > > is no btrfs resize output in VM boot log.
> > > >
> > > > The reason of non-running expand-on-first-boot serivce is:
> > > >
> > > > ```
> > > > [ 5.578636] systemd[1]: local-fs-pre.target: Job expand-on-
> > > > first-
> > > > boot.service/start deleted to break ordering cycle starting
> > > > with
> > > > local-
> > > > fs-pre.target/start
> > > > ```
> > >
> > > Interesting, I observed this same issue as well, but thought it
> > > comes
> > > from a downstream part. You're right, this cannot work:
> > >
> > > Citing systemd.exec:
> > >
> > > Similarly, units with PrivateTmp= enabled automatically get mount
> > > unit
> > > dependencies for all mounts required to access /tmp/ and
> > > /var/tmp/.
> > > They will also gain an automatic After= dependency on systemd-
> > > tmpfiles-
> > > setup.service(8).
> > >
> > > If /var is the partition to be resized, this will break.
> > >
> > > Felix
> > >
> >
> > The dependency conflict seems to be here:
> >
> > - expand-on-first-boot.service
> > Before=local-fs-pre.target
> > PrivateTmp=true # This means implicit "After=systemd-tmpfiles-
> > setup.service" dependency0, according to
> > https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.html
> >
> > - systemd-tmpfiles-setup.service
> > After=local-fs.target
> >
> > - local-fs.target
> > After=local-fs-pre.target
> >
> >
>
> Finally, does this all mean we need to revert this v3 patch and get
> back to "[PATCH v2] expand-on-first-boot: Add /tmp to
> ConditionPathIsReadWrite" variant?
The conditions are evaluated right before the service starts. By that,
we might have non-deterministic behavior, depending on which service
mounts /tmp (if at all) and when it is started relative to the expand-
on-first-boot.
I'm wondering if we should better create our own tmpfs in combination
with TMPDIR, just for that service (and drop it after execution). For
obvious reasons, the expanding needs to happen VERY early, but at that
point in time not much can be assumed about the rootfs.
CC'ing Florian.
Felix
>
> > > >
> > > > I'm currently debugging the issue, but for now I'll attach two
> > > > logs
> > > > when the same image was run twice - with and without an error.
> > > >
> > > > Maybe someone have some ideas about the issue.
> > > >
> > > > Actually, in case expand-on-first-boot runs OK, there is
> > > > another
> > > > target
> > > > systemd disables:
> > > >
> > > > ```
> > > > [ 5.507289] systemd[1]: local-fs.target: Job local-fs-
> > > > pre.target/start deleted to break ordering cycle starting with
> > > > local-
> > > > fs.target/start
> > > > ```
> > > >
> > > > --
> > > > Best regards,
> > > > Uladzimir.
> > > >
> > >
> > > --
> > > Siemens AG, Technology
> > > Linux Expert Center
> > >
> > >
> >
> > --
> > Best regards,
> > Uladzimir.
> >
>
--
Siemens AG, Technology
Linux Expert Center
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/isar-users/7009e44f4fb7730435f5f0d726f11448a94407d2.camel%40siemens.com.
next prev parent reply other threads:[~2024-09-03 7:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 14:17 'Clara Kowalsky' via isar-users
2024-07-31 6:46 ` Uladzimir Bely
2024-08-13 9:17 ` Uladzimir Bely
2024-08-13 9:24 ` 'MOESSBAUER, Felix' via isar-users
2024-08-13 10:32 ` Uladzimir Bely
2024-08-15 4:07 ` Uladzimir Bely
2024-09-03 7:20 ` 'MOESSBAUER, Felix' via isar-users [this message]
2024-09-03 9:05 ` 'Jan Kiszka' via isar-users
2024-09-03 18:05 ` 'Florian Bezdeka' via isar-users
2024-09-03 19:49 ` 'Jan Kiszka' via isar-users
-- strict thread matches above, loose matches on Subject: below --
2024-07-24 13:39 'Clara Kowalsky' via isar-users
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=7009e44f4fb7730435f5f0d726f11448a94407d2.camel@siemens.com \
--to=isar-users@googlegroups.com \
--cc=clara.kowalsky@siemens.com \
--cc=felix.moessbauer@siemens.com \
--cc=florian.bezdeka@siemens.com \
--cc=ubely@ilbers.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox