| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's currently a deadlock between PID 1 and dbus-daemon: in some
cases dbus-daemon will do NSS lookups (which are blocking) at the same
time PID 1 synchronously blocks on some call to dbus-daemon. Let's break
that by setting SYSTEMD_NSS_DYNAMIC_BYPASS=1 env var for dbus-daemon,
which will disable synchronously blocking varlink calls from nss-systemd
to PID 1.
In the long run we should fix this differently: remove all synchronous
calls to dbus-daemon from PID 1. This is not trivial however: so far we
had the rule that synchronous calls from PID 1 to the dbus broker are OK
as long as they only go to interfaces implemented by the broke itself
rather than services reachable through it. Given that the relationship
between PID 1 and dbus is kinda special anyway, this was considered
acceptable for the sake of simplicity, since we quite often need
metadata about bus peers from the broker, and the asynchronous logic
would substantially complicate even the simplest method handlers.
This mostly reworks the existing code that sets SYSTEMD_NSS_BYPASS_BUS=
(which is a similar hack to deal with deadlocks between nss-systemd and
dbus-daemon itself) to set SYSTEMD_NSS_DYNAMIC_BYPASS=1 instead. No code
was checking SYSTEMD_NSS_BYPASS_BUS= anymore anyway, and it used to
solve a similar problem, hence it's an obvious piece of code to rework
like this.
Issue originally tracked down by Lukas Märdian. This patch is inspired
and closely based on his patch:
https://github.com/systemd/systemd/pull/22038
Fixes: #15316
Co-authored-by: Lukas Märdian <slyon@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
A first step of removing blocking calls to the D-Bus broker from PID 1.
There's a lot more to got (i.e. grep src/core/ for sd_bus_creds
basically), but it's a start.
Removing blocking calls to D-Bus broker deals systematicallly with
deadlocks caused by dbus-daemon blocking on synchronous IPC calls back
to PID1 (e.g. Varlink calls through nss-systemd). Bugs such as #15316.
Also-see: https://github.com/systemd/systemd/pull/22038#issuecomment-1042958390
|
|
|
|
|
|
|
|
|
|
| |
Previously we'd only watch configured service bus names if Type=dbus was
set. Let's also watch it for other types. This is useful to pick up the
main PID of such a service. In fact the code to pick it up was already
in place, alas it didn't do anything given the signal was never received
for it. Fix that.
(It's also useful for debugging)
|
|
|
|
| |
Fixes CID#1474365.
|
|\
| |
| | |
network, udev: introduce Kind= setting in [Match] section
|
| |
| |
| |
| |
| |
| |
| | |
This may be useful for writing .network or .link files matching with
virtual interfaces.
Closes #22541.
|
| | |
|
|\ \
| | |
| | | |
network: call ethtool after link is initialized by udevd
|
| | |
| | |
| | |
| | | |
Fixes #22538.
|
| | | |
|
| |/ |
|
|/
|
|
| |
Fixes #22480.
|
|\
| |
| | |
userdbctl: show UID ranges in output too
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Let's have them at a common place, so that we have the ranges altogether
at a minimal set of places.
|
| | |
|
| |
| |
| |
| | |
The server address may be in the pool.
|
| |
| |
| |
| |
| |
| |
| | |
sd-bus for compat with old C expects "int" for booleans. Internally we
prefer to use C99 "bool" however. When pointing a pointer to it, we need
to handle the fact that they are typically differently sized, hence use
te right accessors for it.
|
|/
|
|
|
|
|
|
| |
The value is used as a boolean, but stored in an unsigned. It's exposed
with sd-bus default boolean handling which however expects a (signed)
int. Let's clear this up, and use "bool" for this everywhere in
non-local scope, and make sure that when we pass it to sd-bus we
properly pass an "int".
|
|\
| |
| | |
coccinelle: add semantic patch for using more mempcpy() instead of memcpy()
|
| | |
|
| |
| |
| |
| |
| | |
Inspired by #22520, let's add a coccinelle script that converts this
automatically.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 0ad4efb14beea9148838a0d974821e3b98cafc47.
See
https://github.com/systemd/systemd/pull/20559#issuecomment-1028011030
for reasoning. Quoting:
> I think it should be OK to advertise extra stub listeners to local
> clients, but you prohibit this now. i.e. there are two different
> concepts here, and we shouldn't mix them up:
>
> 1. tracking configured dns servers and advertise them to local programs
> 2. actually using them ourselves
>
> I am pretty sure that our own stubs are OK for 1 but not OK for 2,
> hence we should filter at the time of use not at the time of parse.
|
|\ \
| | |
| | | |
cgroup: ignore error in attaching process when threaded mode is used
|
| | |
| | |
| | |
| | | |
Prompted by #22486.
|
| | | |
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes regression introduced in 599be274c13c503806c85073d7beb1a155ac27bd
Moving the Xen check before the CPUID check, in order to handle the case where
a Xen domain is nested within a hypervisor which can be detected by via the
CPUID check, had an unintended consequence of causing Dom0 to report as a Xen
VM when it is not nested.
This patch stops further checks once it has been determined that Dom0 is not
nested within another hypervisor, meaning that the non-nested case matches its
previous logic (where it does not report as a VM).
Also, tidy the conditionals for the Xen and UML checks by removing handling of
a VIRTUALIZATION_VM_OTHER result, which has no code path.
Fixes #22511
|
| |
| |
| |
| | |
Follow-up for e81a44bf5faa80ec6ca2ef835d559a65c7e27c35.
|
|\ \
| | |
| | | |
homed: map container UID range for homed home directories
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
for the container UID ranges
Apparently people really want to put high UIDs in their homedirs. Let's
add some minimal support for that.
Further discussion: https://github.com/systemd/systemd/pull/22239#issuecomment-1040421552
Inspired by, based on, and replacing #22239 by Christian Brauner.
|
|\ \
| | |
| | | |
network: add virtual wlan interface support
|
| | |
| | |
| | |
| | | |
Closes #18977.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
It will be used in later commit.
|
| | | |
|
| | |
| | |
| | |
| | | |
Otherwise, it may be freed on reload.
|
| | |
| | |
| | |
| | | |
fatal error
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
sd-dhcp6-client: several cosmetic follow-ups
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Also use appropriate place to store UUID.
|
| | |/
| |/| |
|
|\ \ \
| |/ /
|/| | |
Freeze manager if reexec fails
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We would print "Setting NUMA policy to bind, with nodes .".
This is not very clear, change it to "… with nodes {}.".
Also use range formatting for masks to make output shorter.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For https://bugzilla.redhat.com/show_bug.cgi?id=1986176:
if we are trying to reexecute, and this fails for any reason, we shouldn't
try to execute /sbin/init or /bin/sh. It is better to just freeze.
If we freeze it is easier to diagnose what happened, but if we execute
one of the fallbacks, we don't really know what will happen. In particular
the new init might just return, causing the machine to shut down. Or we
may successfully spawn /bin/sh, which could leave the machine open.
|