1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-01 09:21:26 +03:00
Commit Graph

28822 Commits

Author SHA1 Message Date
Lucas Werkmeister
2a75df743b man: escape: fix --suffix examples (#5508)
systemd-escape does not permit the suffix to begin with a dot.
2017-03-01 15:24:18 -05:00
Lennart Poettering
d6d0473dc9 Revert "util: Fine tune running_in_chroot() a bit" (#5506)
This reverts commit 295ee9845c.

Let'd revert this for now, see #5446 for discussions.

We want systemd-detect-virt --chroot to return true for all chroot-like stuff, for
example mock environments which have use a mount namespace. The downside
of this revert that systemctl will not work from our own namespaced services, anything
with RootDirectory=/RootImage= set.
2017-03-01 15:22:02 -05:00
Lucas Werkmeister
b7a09e35cc man: systemd: fix description of SIGRTMIN+26,27,28 (#5505) 2017-03-01 18:33:02 +01:00
Lennart Poettering
501551e803 coredump: define a macro for a "short bus call timeout"
I think it would be a good idea to move such fixed, picked values out of
the main sources into the head of a file, to make sure they are
ultimately tunables.
2017-03-01 18:13:00 +01:00
Lennart Poettering
b8cda92df5 coredump: introduce is_journald_crash() and is_pid1_crash() helpers
We check these a number of times, hence let's unify these checks here.
This also allows us to make the PID 1 check more elaborate as we can
check both the PID and the cgroup. Checking the PID has the benefit that
we'll also cover cases where PID 1 might still be in the root cgroup, and
the cgroup check has the benefit that we also cover crashes in forked
off crasher processes (the way we actually do it in systemd)
2017-03-01 18:13:00 +01:00
Lennart Poettering
32a1575fbd coredump: normalize generation/parsing of COREDUMP_TRUNCATED=
Given that this is a field primarily processed by computers, and not so
much by humans, assign "1" instead of "yes". Also, use parse_boolean()
as we usually do for parsing it again.

This makes things more alike udev options (as one example), such as
SYSTEMD_READY where we also spit out "1" and "0", and parse with
parse_boolean().
2017-03-01 18:13:00 +01:00
Lennart Poettering
059c35f507 mount-util: accept that name_to_handle_at() might fail with EPERM (#5499)
Container managers frequently block name_to_handle_at(), returning
EACCES or EPERM when this is issued. Accept that, and simply fall back
to to fdinfo-based checks.

Note that we accept either EACCES or EPERM here, as container managers
can choose the error code and aren't very good on agreeing on just one.

(note that this is a non-issue with nspawn, as we permit
name_to_handle_at() there, only block open_by_handle_at(), which should
be sufficiently safe).
2017-03-01 11:35:05 -05:00
Lennart Poettering
a2b53448e4 update NEWS for v233 (#5503) 2017-03-01 11:21:29 -05:00
Lennart Poettering
77969722aa core: when a unit's SourcePath points to API VFS pretend we are never out-of-date (#5487)
If the unit's SourcePath is below /proc then it's a unit genreated from
a kernel resource (such as a .mount or .swap unit). And those we watch
anyway, and hence should never be out-of-date.

Fixes: #5461
2017-03-01 10:25:08 -05:00
Lennart Poettering
ecadd9b3fd Merge pull request #5458 from keszybz/coredump
Fix for coredump crash
2017-03-01 14:37:15 +01:00
Zbigniew Jędrzejewski-Szmek
92d6f2f348 Merge pull request #5494 from poettering/run-fixes
systemd-run --user fixes.
2017-02-28 23:03:12 -05:00
Lennart Poettering
3401f0e145 resolved: add the new KSK to the built-in resolved trust anchor (#5486)
Fixes: #5482
2017-02-28 22:49:19 -05:00
Lennart Poettering
e350ca3f1e automount: if an automount unit is masked, don't react to activation anymore (#5445)
Otherwise we'll hit an assert sooner or later.

This requires us to initialize ->where even if we come back in "masked"
mode, as otherwise we don't know how to operate on the automount and
detach it.

Fixes: #5441
2017-02-28 22:03:48 -05:00
Zbigniew Jędrzejewski-Szmek
eb5877a024 coredumpctl: avoid spurious warning about systemd-coredump@0.service
Fixes #5477.
2017-02-28 21:47:45 -05:00
Zbigniew Jędrzejewski-Szmek
b9aaa7f480 coredumpctl: print a hint when no journal files are found
[guest@fedora ~]$ coredumpctl
No coredumps found.

[guest@fedora ~]$ ./coredumpctl
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal', 'wheel' can see all messages.
      Pass -q to turn off this notice.
No coredumps found.

Fixes #1733.
2017-02-28 21:38:47 -05:00
Zbigniew Jędrzejewski-Szmek
4f37cbd911 journalctl: move access_check() to shared/
The only functional change is that log_notice("No journal files were found.")
is not printed any more with --quiet. log_error("No journal files were opened
due to insufficient permissions.") is still printed.

I wasn't quite sure where to put this function, but shared/ seems to be the
right place and none of the existing files seem to fit too well.

v2: rename journal_access_check to journal_access_check_and_warn.
2017-02-28 21:37:35 -05:00
Zbigniew Jędrzejewski-Szmek
7d8e7c0e19 coredumpctl: use a 3s timeout for checking units
This is just a hint, so we shouldn't wait too long. A short timeout
helps for the case where pid1 of dbus have crashed.
2017-02-28 21:34:53 -05:00
Zbigniew Jędrzejewski-Szmek
92e92d71fa coredump: process special crashes in an (almost) normal way
We would only log a terse message when pid1 or systemd-journald crashed.
It seems better to reuse the normal code paths as much as possible,
with the following differences:
- if pid1 crashes, we cannot launch the helper, so we don't analyze the
 coredump, just write it to file directly from the helper invoked by the
 kernel;
- if journald crashes, we can produce the backtrace, but we don't log full
  structured messages.

With comparison to previous code, advantages are:
- we go through most of the steps, so for example vacuuming is performed,
- we gather and log more data. In particular for journald and pid1 crashes we
  generate a backtrace, and for pid1 crashes we record the metadata (fdinfo,
  maps, etc.),
- coredumpctl shows pid1 crashes.

A disavantage (inefficiency) is that we gather metadata for journald crashes
which is then ignored because _TRANSPORT=kernel does not support structued
messages.

Messages for the systemd-journald "crash" have _TRANSPORT=kernel, and
_TRANSPORT=journal for the pid1 "crash".

Feb 26 16:27:55 systemd[1]: systemd-journald.service: Main process exited, code=dumped, status=11/SEGV
Feb 26 16:27:55 systemd[1]: systemd-journald.service: Unit entered failed state.
Feb 26 16:37:54 systemd-coredump[18801]: Process 18729 (systemd-journal) of user 0 dumped core.
Feb 26 16:37:54 systemd-coredump[18801]: Coredump diverted to /var/lib/systemd/coredump/core.systemd-journal.0.36c14bf3c6ce4c38914f441038990979.18729.1488145074000000.lz4
Feb 26 16:37:54 systemd-coredump[18801]: Stack trace of thread 18729:
Feb 26 16:37:54 systemd-coredump[18801]: #0  0x00007f46d6a06b8d fsync (libpthread.so.0)
Feb 26 16:37:54 systemd-coredump[18801]: #1  0x00007f46d71bfc47 journal_file_set_online (libsystemd-shared-233.so)
Feb 26 16:37:54 systemd-coredump[18801]: #2  0x00007f46d71c1c31 journal_file_append_object (libsystemd-shared-233.so)
Feb 26 16:37:54 systemd-coredump[18801]: #3  0x00007f46d71c3405 journal_file_append_data (libsystemd-shared-233.so)
Feb 26 16:37:54 systemd-coredump[18801]: #4  0x00007f46d71c4b7c journal_file_append_entry (libsystemd-shared-233.so)
Feb 26 16:37:54 systemd-coredump[18801]: #5  0x00005577688cf056 write_to_journal (systemd-journald)
Feb 26 16:37:54 systemd-coredump[18801]: #6  0x00005577688d2e98 dispatch_message_real (systemd-journald)
Feb 26 16:37:54 kernel: systemd-coredum: 9 output lines suppressed due to ratelimiting
Feb 26 16:37:54 systemd-journald[18810]: Journal started

Feb 26 16:50:59 systemd-coredump[19229]: Due to PID 1 having crashed coredump collection will now be turned off.
Feb 26 16:51:00 systemd[1]: Caught <SEGV>, dumped core as pid 19228.
Feb 26 16:51:00 systemd[1]: Freezing execution.
Feb 26 16:51:00 systemd-coredump[19229]: Process 19228 (systemd) of user 0 dumped core.

                                         Stack trace of thread 19228:
                                         #0  0x00007fab82075c47 kill (libc.so.6)
                                         #1  0x000055fdf7c38b6b crash (systemd)
                                         #2  0x00007fab824175c0 __restore_rt (libpthread.so.0)
                                         #3  0x00007fab82148573 epoll_wait (libc.so.6)
                                         #4  0x00007fab8366f84a sd_event_wait (libsystemd-shared-233.so)
                                         #5  0x00007fab836701de sd_event_run (libsystemd-shared-233.so)
                                         #6  0x000055fdf7c4a380 manager_loop (systemd)
                                         #7  0x000055fdf7c402c2 main (systemd)
                                         #8  0x00007fab82060401 __libc_start_main (libc.so.6)
                                         #9  0x000055fdf7c3818a _start (systemd)

Poor machine ;)
2017-02-28 21:33:52 -05:00
Martin Pitt
74278ce567 Merge pull request #5493 from poettering/service-mini-fixes
three small mini-fixes for src/core/service.c
2017-02-28 23:23:18 +01:00
David Herrmann
b4227dbb45 hostname: detect detachable dmi chassis type (#5489)
Detect the 'Detachable' dmi chassis type properly. Use the new
'convertible' chassis class of hostnamed, instead of returning the
generic 'computer' chassis class.
2017-02-28 21:57:58 +01:00
Mauricio Faria de Oliveira
a6f8786a56 cryptsetup-generator: run cryptsetup service before swap unit (#5480)
If the cryptsetup service unit and swap unit for a swap device
are not strictly ordered, it might happen that the swap unit
activates/mounts the swap device before its cryptsetup service unit
has a chance to run the 'mkswap' command (that it is programmed to).

This leads to the following error:

             Starting Cryptography Setup for sda3_crypt...
    [  OK  ] Found device /dev/mapper/sda3_crypt.
             Activating swap /dev/mapper/sda3_crypt...
    [  OK  ] Activated swap /dev/mapper/sda3_crypt.
    [  OK  ] Reached target Swap.
    [FAILED] Failed to start Cryptography Setup for sda3_crypt.
    See 'systemctl status systemd-cryptsetup@sda3_crypt.service' for
    details.
    [DEPEND] Dependency failed for Encrypted Volumes.

Which happens because the swap device is already mounted:

    # systemctl status systemd-cryptsetup@sda3_crypt.service
    <...>
       Active: failed (Result: exit-code) since Mon 2017-02-27 14:21:43 CST;
    54s ago
    <...>

    <...> systemd[1]: Starting Cryptography Setup for sda3_crypt...
    <...> mkswap[2420]: mkswap: error: /dev/mapper/sda3_crypt is mounted;
    will not make swapspace
    <...>

So, modify cryptsetup-generator to include a 'Before=' option for the
respective 'dev-mapper-%i.swap' device in the cryptsetup service unit.

Now, correct ordering is ensured, and the error no longer occurs:

             Starting Cryptography Setup for sda3_crypt...
    [  OK  ] Found device /dev/mapper/sda3_crypt.
    [  OK  ] Started Cryptography Setup for sda3_crypt.
             Activating swap /dev/mapper/sda3_crypt...
    [  OK  ] Reached target Encrypted Volumes.
    [  OK  ] Activated swap /dev/mapper/sda3_crypt.
    [  OK  ] Reached target Swap.
2017-02-28 21:30:22 +01:00
Lennart Poettering
9d70cba987 udev rules: add udev rule to create /dev/ptp_kvm (#5495)
Its necessary to specify the KVM PTP device name in userspace.

In case a network card with PTP device is assigned to the guest,
it might be the case that KVM PTP gets /dev/ptp0 instead of /dev/ptp1.

Fix a device name for the KVM PTP device.
2017-02-28 21:28:21 +01:00
Lennart Poettering
a625def6ea run: also pin unit when we we are in --pty mode
Since 95f1d6bfec we'll subscribe to unit
signals to figure out when to disconnect the pty. But that can only work
correctly if we actually subscribe to the unit's signals. Hence,
explicitly pin (and thus subscribe to) the unit we just created not only
in --wait mode but also in --pty mode.

Or to say this differently: we need to pin the unit in the same cases as
we install the signal match. 95f1d6bfec
forgot to do that.

This is relevant to make sure systemd-run works correctly in --user
mode, and correctly exits when the spawned service dies. To test:

systemd-run --user -t /bin/bash

And then press ^D. This will hang before this change, but exit cleanly
after it.
2017-02-28 18:35:05 +01:00
Lennart Poettering
ae572acd62 core: always consider clients that pinned a unit to be subscribers
If a client pins a unit, then it makes sense to also implicitly make it
a subscriber. This is useful for clients that just want to watch one
specific unit: they can pin it and receive its messages.
2017-02-28 18:34:58 +01:00
Lennart Poettering
5e806f453d update TODO 2017-02-28 17:22:14 +01:00
Lennart Poettering
523f8cde4c systemctl: fix bad memory access when mangle_names() fails (#5485)
Fixes #5483
2017-02-28 16:55:18 +01:00
Martin Pitt
f4ad4d658d Merge pull request #5491 from poettering/hwdb-update-v233
hwbd: update once again for 233
2017-02-28 16:52:46 +01:00
Lennart Poettering
6939ce648a service: refuse using PID 1 as MAINPID for a service 2017-02-28 16:08:40 +01:00
Lennart Poettering
e8b509d3be service: make use of log_unit_warning_errno()'s return value 2017-02-28 16:08:21 +01:00
Lennart Poettering
7c102d6092 core: use PID_FMT where appropriate 2017-02-28 16:07:56 +01:00
Lennart Poettering
fe6a023501 update TODO 2017-02-28 15:24:10 +01:00
Lennart Poettering
6fd1a2918d update TODO 2017-02-28 15:20:22 +01:00
Lennart Poettering
579a121f0e Merge pull request #5464 from ssahani/label
socket-util: introduce address_label_valid
2017-02-28 15:11:57 +01:00
Lennart Poettering
2b827687ef Merge pull request #5484 from dvdhrm/convertible
hostname: support 'convertible' chassis
2017-02-28 15:11:36 +01:00
Lennart Poettering
4aa2eda9e7 hwbd: update once again for 233 2017-02-28 15:07:49 +01:00
Lennart Poettering
c3988e728c Merge pull request #5438 from ssahani/vxlan-address
networkd: add symlinks for Makefile (netdev and wait-online) , vxlan enhancements.
2017-02-28 12:32:18 +01:00
Susant Sahani
a87d19fe0a networkd: use address_label_valid for label validation 2017-02-28 16:54:33 +05:30
Susant Sahani
2680894816 socket-util: introduce address_label_valid 2017-02-28 16:53:58 +05:30
David Herrmann
b70af833e8 hostname: detect convertible dmi chassis type
Detect the 'Convertible' dmi chassis type properly. Use the new
'convertible' chassis class of hostnamed, instead of returning the
generic 'computer' chassis class.

Based on a patch by Jani Nikula <jani.nikula@intel.com>.
2017-02-28 11:58:14 +01:00
David Herrmann
34b52450c5 hostname: add 'convertible' chassis type
Add the 'convertible' type to the set of allowed chassis. This applies
to all devices that can be transformed by the user from laptop style to
tablet style.

This does not add any auto-detection, yet. It only makes 'set-chassis'
accept 'convertible' as valid input.
2017-02-28 11:54:52 +01:00
YunQiang Su
caf49b95b3 Fix MIPS N64 and N32 LIB_ARCH_TUPLE (#5469)
* Fix MIPS N64 and N32 LIB_ARCH_TUPLE

For mips, we have 3 major ABIs, they are N64, N32 and O32.
Both N32 and N64 defined __mips64__, and only N64 defined __LP64__.
2017-02-28 11:35:40 +01:00
Susant Sahani
8999954f44 networkd: fix assertion crash for tunnel, log error instead (#5465)
GRE6 and IP6TNL address should be a IPv6.

fix :

```
Assertion 't->family == AF_INET6' failed at src/network/netdev/tunnel.c:170,
function netdev_ip6gre_fill_message_create(). Aborting.
```
2017-02-28 10:32:22 +01:00
xTibor
87989f0ea2 hwdb: release PageUp on Acer Aspire 7750G (#5476) 2017-02-27 20:55:43 +01:00
Martin Pitt
b1caafb2b1 build-sys: add LIB_ARCH_TUPLE for tilegx-linux-gnu (#5474)
Fix build failure on the tilegx architecture.

https://bugs.debian.org/856306
2017-02-27 20:54:11 +01:00
Mikko Ylinen
293b167349 sd-boot: stub: check LoadOptions contains data (#5467)
With some UEFI shells LoadOptionsSize is reported being > 0
but the corresponding LoadOptions does not contain any data
(the first element has value 0).

When that happens, the stub feature that allows .cmdline to be
replaced by what's in LoadOptions ends up copying nothing/random
data to the kernel cmdline resulting in different kinds of boot
problems.

To fix this, add a check to see if LoadOptions contains data
before replacing the .cmdline.

Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
2017-02-27 20:03:07 +01:00
AsciiWolf
3c3fff44b2 man: fix typo (#5468) 2017-02-27 13:59:11 +01:00
Mark Stosberg
ccdda9556e man: systemctl list-timers: Provide sample output and document it. (#5463)
As with `systemctl list-sockets` and `systemctl status`, we provide a sample
output for `systemctl list-timers` and document what the columns mean.
2017-02-26 20:03:30 -05:00
Zbigniew Jędrzejewski-Szmek
cc4419ed92 coredumpctl,man: mark truncated messages as such in output
Unit systemd-coredump@1-3854-0.service is failed/failed, not counting it.
TIME                            PID   UID   GID SIG COREFILE  EXE
Fri 2017-02-24 11:11:00 EST   10002  1000  1000   6 none      /home/zbyszek/src/systemd-work/.libs/lt-Sat 2017-02-25 00:49:32 EST   26921     0     0  11 error     /usr/libexec/fprintd
Sat 2017-02-25 11:56:30 EST   30703  1000  1000   - -         /usr/bin/python3.5
Sat 2017-02-25 13:16:54 EST    3275  1000  1000  11 present   /usr/bin/bash
Sat 2017-02-25 17:25:40 EST    4049  1000  1000  11 truncated /usr/bin/bash

For info and gdb output, the filename is marked in red and "(truncated)" is
appended. (Red is necessary because the annotation is hard to see when running
under a pager.)

Fixed #3883.
2017-02-26 19:45:10 -05:00
Zbigniew Jędrzejewski-Szmek
7bbf2d8423 coredumpctl: add debug information which services count towards the warning
A few times I have seen the hint unexpectedly. Add this so debug info
so it's easier to see what's happening.

...
Unit systemd-coredump@0-3119-0.service is failed/failed, not counting it.
Unit systemd-coredump@1-3854-0.service is activating/start-pre, counting it.
...
-- Notice: 1 systemd-coredump@.service unit is running, output may be incomplete.
2017-02-26 19:45:10 -05:00
Zbigniew Jędrzejewski-Szmek
0cd4e913da coredump: when storing an incomplete coredump, add COREDUMP_TRUNCATED=yes
We logged about this, but did not attach information directly to the log
entry. It *would* be nice to log the full untruncated size, but afaict, to do
this, we would have to read the full data from the kernel. Doing this just to
log that information seems a bit excessive, in particular when the limit could
be set quite low. So for now let's just add a boolean field.
2017-02-26 19:45:10 -05:00