Re: openat("./...", O_CREAT) fails even though the directory exists

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Mon, 13 Oct 2025 18:57:54 UTC
On Mon, 13 Oct 2025 at 11:22, Sulev-Madis Silber <
freebsd-current-freebsd-org111@ketas.si.pri.ee> wrote:

>
>
> On October 13, 2025 9:06:02 PM GMT+03:00, Adrian Chadd <adrian@freebsd.org>
> wrote:
> >...
> >
> >On Mon, 13 Oct 2025 at 03:23, Lexi Winter <ivy@freebsd.org> wrote:
> >
> >> Olivier Certner wrote in <6142242.Zv9zXsTiuT@ravel>:
> >> > > i suspect the fix will be in pkgbase somewhere: for example, we
> >> > > could restart sendmail on upgrade, or tell the user to do that.
> >> >
> >> > Most probably it will need too, yes.
> >>
> >> proposed fix at https://reviews.freebsd.org/D53061.  i really don't
> like
> >> this (nothing else restarts services on upgrade) but this is probably
> the
> >> least disruptive solution for users.
> >>
> >
> >I'm curious - why are we NOT restarting services after an upgraded
> package?
> >
> >
> >-a
>
> i hope this wasn't proposal of blanket restarts everywhere. this could get
> bad quickly. i recall friends cursing linux distros going one step further,
> starting everything that's installed with default config
>
> many things would happily run after update, nginx even has special no
> interrupt upgrade which replaces binary
>
> for sshd it would maybe ok but who knows. all around restarting is bad. at
> least optout would be needed
>
> what if it needs config change or other kind of adjustments before admin
> decides to restart it. or wants to choose time
>
>
The only reason I'd like services not to be restarted is in case it's a
last ditch attempt to recover a broken system.
Otherwise:

* your currently executing binary can be referencing libraries, files, etc
which themselves are deleted but won't be freed until you kill the process;
* the binary itself may be deleted, but it won't be freed until the process
is killed;
* the binary may be pointing to old paths / binaries / etc (think web
servers, mail servers, etc) which no longer exist until you kill/restart
the process (as ivy saw);

So yes, i'd like services to be restarted when the package itself is
reinstalled. This gets hilarious when you start thinking about the
underlying libraries being upgraded and old ones being deleted, but like,
in theory package management should handle that for me too as it should
know all of those dependencies.

If the package system doesn't do that then I'm going to need to reboot my
system after a non-trivial package upgrade anyway, as a bunch of stuff may
have changed and it may behave unpredictably until it reboots.



-adrian