platform/upstream/systemd.git
8 years agopath_id: reintroduce by-path links for virtio block devices
Michal Sekletar [Tue, 9 Feb 2016 08:57:45 +0000 (09:57 +0100)]
path_id: reintroduce by-path links for virtio block devices

Enumeration of virtio buses is global and hence
non-deterministic. However, we are guaranteed there is never going to be
more than one virtio bus per parent PCI device. While populating
ID_PATH we simply skip virtio part of the syspath and we extend the path
using the sysname of the parent PCI device.

With this patch udev creates following by-path links for virtio-blk
device /dev/vda which contains two partitions.

ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx 1 root root  9 Feb  9 10:47 virtio-pci-0000:00:05.0 -> ../../vda
lrwxrwxrwx 1 root root 10 Feb  9 10:47 virtio-pci-0000:00:05.0-part1 -> ../../vda1
lrwxrwxrwx 1 root root 10 Feb  9 10:47 virtio-pci-0000:00:05.0-part2 -> ../../vda2

See:
http://lists.linuxfoundation.org/pipermail/virtualization/2015-August/030328.html

Fixes #2501

8 years agoMerge pull request #2542 from 0xAX/get_ts_delta
Lennart Poettering [Mon, 8 Feb 2016 23:23:47 +0000 (00:23 +0100)]
Merge pull request #2542 from 0xAX/get_ts_delta

time-util: cleanups

8 years agoMerge pull request #2547 from 0xAX/generalize-format-timestamp-internal
Lennart Poettering [Mon, 8 Feb 2016 20:26:39 +0000 (21:26 +0100)]
Merge pull request #2547 from 0xAX/generalize-format-timestamp-internal

time-util: merge format_timestamp_internal() and format_timestamp_int…

8 years agotime-util: introduce usec_sub()
Alexander Kuleshov [Thu, 4 Feb 2016 18:02:39 +0000 (00:02 +0600)]
time-util: introduce usec_sub()

The dual_timestamp_from_realtime(), dual_timestamp_from_monotonic()
and dual_timestamp_from_boottime_or_monotonic() shares the same
code for comparison given ts with delta. Let's move it to the
separate inline function to prevent code duplication.

8 years agotime-util: merge format_timestamp_internal() and format_timestamp_internal_us()
Alexander Kuleshov [Sun, 7 Feb 2016 16:11:46 +0000 (22:11 +0600)]
time-util: merge format_timestamp_internal() and format_timestamp_internal_us()

The time_util.c provides format_timestamp_internal() and
format_timestamp_internal_us() functions for a timestamp formating. Both
functions are very similar and differ only in formats handling.

We can add additional boolean parameter to the format_timestamp_internal()
function which will represent is a format for us timestamp or not.
This allows us to get rid of format_timestamp_internal_us() that is prevent
code duplication.

We can remove format_timestamp_internal_us() safely, because it is static and
has no users outside of the time_util.c. New fourth parameter will be passed
inside of the format_timestamp(), format_timestamp_us() and etc, functions,
but the public API is not changed.

8 years agoMerge pull request #2535 from PhillipSz/remove-exit-0
Lennart Poettering [Mon, 8 Feb 2016 16:27:18 +0000 (17:27 +0100)]
Merge pull request #2535 from PhillipSz/remove-exit-0

test: remove exit 0 at the end

8 years agoMerge pull request #2533 from keszybz/read-only-seed
Lennart Poettering [Mon, 8 Feb 2016 15:31:09 +0000 (16:31 +0100)]
Merge pull request #2533 from keszybz/read-only-seed

random-seed: provide nicer error message when unable to open file

8 years agoMerge pull request #2549 from rhatdan/journalctl
Lennart Poettering [Mon, 8 Feb 2016 15:27:33 +0000 (16:27 +0100)]
Merge pull request #2549 from rhatdan/journalctl

Journalctl command completion should show machines

8 years agoMerge pull request #2550 from evverx/fix-457
Lennart Poettering [Mon, 8 Feb 2016 15:26:17 +0000 (16:26 +0100)]
Merge pull request #2550 from evverx/fix-457

tests: fix #457

8 years agoJournalctl command completion should show machines
Dan Walsh [Mon, 8 Feb 2016 12:22:34 +0000 (07:22 -0500)]
Journalctl command completion should show machines

8 years agoMerge pull request #2543 from keszybz/build-sys-and-man-fixes
Lennart Poettering [Mon, 8 Feb 2016 11:52:39 +0000 (12:52 +0100)]
Merge pull request #2543 from keszybz/build-sys-and-man-fixes

Build sys and man fixes

8 years agotests: fix #457
Evgeny Vereshchagin [Mon, 8 Feb 2016 11:18:19 +0000 (11:18 +0000)]
tests: fix #457

There are some limits on XFS:
major_max=511
minor_max=262143
see https://github.com/torvalds/linux/blob/master/fs/xfs/xfs_iops.c

if (S_ISCHR(mode) || S_ISBLK(mode)) {
    if (unlikely(!sysv_valid_dev(rdev) || MAJOR(rdev) & ~0x1ff))
        return -EINVAL;

8 years agoMerge pull request #2546 from torstehu/fix-typo3
Zbigniew Jędrzejewski-Szmek [Sun, 7 Feb 2016 14:45:13 +0000 (09:45 -0500)]
Merge pull request #2546 from torstehu/fix-typo3

treewide: fix typos and spacing

8 years agoMerge pull request #2536 from vcaputo/journal-misc-cleanups
Zbigniew Jędrzejewski-Szmek [Sun, 7 Feb 2016 14:43:32 +0000 (09:43 -0500)]
Merge pull request #2536 from vcaputo/journal-misc-cleanups

journal: miscellaneous cleanups

8 years agoMerge pull request #2541 from mgorny/append-flags-fix
Zbigniew Jędrzejewski-Szmek [Sun, 7 Feb 2016 14:33:49 +0000 (09:33 -0500)]
Merge pull request #2541 from mgorny/append-flags-fix

build-sys: Perform flag tests in context of existing flags

8 years agotreewide: fix typos and spacing
Torstein Husebø [Wed, 13 Jan 2016 13:52:51 +0000 (14:52 +0100)]
treewide: fix typos and spacing

8 years agorandom-seed: provide nicer error message when unable to open file
Zbigniew Jędrzejewski-Szmek [Fri, 5 Feb 2016 00:45:08 +0000 (19:45 -0500)]
random-seed: provide nicer error message when unable to open file

If /var is read-only, and the seed file does not exist, we would print
a misleading error message for ENOENT. Print both messages instead, to
make it easy to diagonose.

Also, treat the cases of missing seed file the same as empty seed file
and exit successfully. Initialize the return code properly.

Fixes https://github.com/systemd/systemd/issues/2530,
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813599.

8 years agoshell-completion: fix header
Zbigniew Jędrzejewski-Szmek [Sat, 6 Feb 2016 22:54:18 +0000 (17:54 -0500)]
shell-completion: fix header

8 years agoman: clarify that generators are run before /var
Zbigniew Jędrzejewski-Szmek [Sat, 6 Feb 2016 22:53:31 +0000 (17:53 -0500)]
man: clarify that generators are run before /var

Just a clarification. At least systemd-openqa-generator from
openqa gets this wrong.

8 years agoman/hostnamectl: refer to transient hostname as "fallback"
Zbigniew Jędrzejewski-Szmek [Wed, 3 Feb 2016 16:29:04 +0000 (11:29 -0500)]
man/hostnamectl: refer to transient hostname as "fallback"

Saying it is the "default" is misleading, because it is almost
never used.

8 years agoman/hostname: remove obsolete text
Zbigniew Jędrzejewski-Szmek [Wed, 3 Feb 2016 16:25:19 +0000 (11:25 -0500)]
man/hostname: remove obsolete text

All distribution-specific code was removed ages ago.

8 years agobuild-sys: simplify conditionals around shell completion files
Zbigniew Jędrzejewski-Szmek [Tue, 2 Feb 2016 21:10:36 +0000 (16:10 -0500)]
build-sys: simplify conditionals around shell completion files

Repeating those conditionals for every program is
annoying. Use a helper variable to avoid conditionals.

Also always add generated completion files to CLEANFILES.

8 years agobuild-sys: move CLEANFILES additions out from under HAVE_GNUEFI
Zbigniew Jędrzejewski-Szmek [Tue, 2 Feb 2016 19:24:58 +0000 (14:24 -0500)]
build-sys: move CLEANFILES additions out from under HAVE_GNUEFI

It's better to always include them in 'make clean'.
It is also easier to read Makefile.am when less stuff is conditional.

8 years agobuild-sys: Perform flag tests in context to existing flags
Michał Górny [Sat, 6 Feb 2016 12:47:30 +0000 (13:47 +0100)]
build-sys: Perform flag tests in context to existing flags

Fix the CC_CHECK_FLAG_APPEND macro to test appended flags in context to
current flag values. Otherwise, it is possible to append flags colliding
with user's *FLAGS or even previously appended flags that will cause
the build to fail.

8 years agoMerge pull request #2534 from indrajitr/patch-1
Lennart Poettering [Sat, 6 Feb 2016 13:43:26 +0000 (14:43 +0100)]
Merge pull request #2534 from indrajitr/patch-1

Fix typo in rescue shell

8 years agoMerge pull request #2525 from chaloulo/journal-remote-microhttp-max-memory-usage
Lennart Poettering [Sat, 6 Feb 2016 13:40:32 +0000 (14:40 +0100)]
Merge pull request #2525 from chaloulo/journal-remote-microhttp-max-memory-usage

journal-remote: decrease microhttpd memory limit

8 years agoMerge pull request #2540 from 0xAX/use-dual-timestamp-get-in-timeutil
Lennart Poettering [Sat, 6 Feb 2016 13:38:16 +0000 (14:38 +0100)]
Merge pull request #2540 from 0xAX/use-dual-timestamp-get-in-timeutil

time-util: use dual_timestamp_get()

8 years agotime-util: use dual_timestamp_get()
Alexander Kuleshov [Thu, 4 Feb 2016 19:03:23 +0000 (01:03 +0600)]
time-util: use dual_timestamp_get()

The time-util.c provides dual_timestamp_get() function for getting
realtime and monotonic timestamps. Let's use it instead of direct
realtime/monotonic calculation.

8 years agojournal: add missing space to switch statement
Vito Caputo [Sat, 6 Feb 2016 11:51:14 +0000 (03:51 -0800)]
journal: add missing space to switch statement

8 years agoMerge pull request #2138 from stefwalter/journal-combine
Lennart Poettering [Sat, 6 Feb 2016 10:30:05 +0000 (11:30 +0100)]
Merge pull request #2138 from stefwalter/journal-combine

Combine journal catalog entries with the same id

8 years agojournal: remove template from open_journal args
Vito Caputo [Fri, 5 Feb 2016 15:26:18 +0000 (07:26 -0800)]
journal: remove template from open_journal args

None of the callers take advantage of this parameter, it's always NULL,
this is just a private helper function to simplify the call sites so
drop the template parameter altogether.  If a caller emerges later who
needs it, it can be restored.

8 years agojournal: Add test for merging journal entries
Stef Walter [Sun, 8 Nov 2015 12:18:07 +0000 (13:18 +0100)]
journal: Add test for merging journal entries

8 years agojournal: Refactor test-catalog importing tests
Stef Walter [Sun, 8 Nov 2015 11:51:51 +0000 (12:51 +0100)]
journal: Refactor test-catalog importing tests

One function per test. Remove shared state between tests.

8 years agojournal: Combine journal catalog entries with the same id
Stef Walter [Sun, 8 Nov 2015 10:20:01 +0000 (11:20 +0100)]
journal: Combine journal catalog entries with the same id

Instead of discarding duplicate catalog entries, we now combine
them. This allows software or admins to add or override catalog
headers, or add additional text to the catalog message.

8 years agojournal: move mmap() ENOMEM loop to function
Vito Caputo [Fri, 5 Feb 2016 11:44:05 +0000 (03:44 -0800)]
journal: move mmap() ENOMEM loop to function

Introduces mmap_try_harder()

8 years agojournal: add asserts on f->(data|field)_hash_table
Vito Caputo [Fri, 5 Feb 2016 11:30:55 +0000 (03:30 -0800)]
journal: add asserts on f->(data|field)_hash_table

Functions dereferencing these members should assert their non-NULL state.

8 years agojournal: add asserts for f->header
Vito Caputo [Fri, 5 Feb 2016 11:25:03 +0000 (03:25 -0800)]
journal: add asserts for f->header

Just some additional asserts in functions dereferencing f->header.

8 years agojournal: move window initialization to window_add
Vito Caputo [Fri, 5 Feb 2016 10:43:00 +0000 (02:43 -0800)]
journal: move window initialization to window_add

8 years agotest: remove exit 0 at the end
Phillip Sz [Fri, 5 Feb 2016 10:38:58 +0000 (11:38 +0100)]
test: remove exit 0 at the end

We don't need that at the end, as it will always exit with 0 if
everything is okey.

8 years agoFix typo in rescue shell
Indrajit Raychaudhuri [Fri, 5 Feb 2016 05:58:53 +0000 (11:28 +0530)]
Fix typo in rescue shell

8 years agoMerge pull request #2531 from whot/hwdb-updates
Zbigniew Jędrzejewski-Szmek [Thu, 4 Feb 2016 23:37:05 +0000 (18:37 -0500)]
Merge pull request #2531 from whot/hwdb-updates

hwdb: add HP Pavilion dm4 axis corrections

8 years agohwdb: add HP Pavilion dm4 axis corrections
Peter Hutterer [Tue, 2 Feb 2016 00:07:05 +0000 (10:07 +1000)]
hwdb: add HP Pavilion dm4 axis corrections

https://bugs.freedesktop.org/show_bug.cgi?id=91615

8 years agoMerge pull request #2524 from poettering/bag-of-stuff
Tom Gundersen [Thu, 4 Feb 2016 17:05:32 +0000 (18:05 +0100)]
Merge pull request #2524 from poettering/bag-of-stuff

Bag of stuff

8 years agojournal-remote: decrease microhttpd memory limit
Klearchos Chaloulos [Thu, 4 Feb 2016 15:35:24 +0000 (17:35 +0200)]
journal-remote: decrease microhttpd memory limit

Set the MHD_OPTION_CONNECTION_MEMORY_LIMIT to 128KB. The precious value was DATA_SIZE_MAX, which was defined as 1024*1024*768. This caused journal-remote to allocate 756MB for each journal-upload connection, thus exhausting the available memory.

8 years agoresolved: correctly store interface index of RRs in cache
Lennart Poettering [Thu, 4 Feb 2016 00:10:36 +0000 (01:10 +0100)]
resolved: correctly store interface index of RRs in cache

Fixes: #2361

8 years agoresolved: properly turn off DNSSEC for LLMNR/mDNS scopes
Lennart Poettering [Thu, 4 Feb 2016 00:10:12 +0000 (01:10 +0100)]
resolved: properly turn off DNSSEC for LLMNR/mDNS scopes

8 years agocore: rework job_get_timeout() to use usec_t and handle USEC_INFINITY time events...
Lennart Poettering [Wed, 3 Feb 2016 23:35:43 +0000 (00:35 +0100)]
core: rework job_get_timeout() to use usec_t and handle USEC_INFINITY time events correctly

8 years agoresolved: don't follow CNAMEs originating from DNS on LLMNR
Lennart Poettering [Wed, 3 Feb 2016 23:14:25 +0000 (00:14 +0100)]
resolved: don't follow CNAMEs originating from DNS on LLMNR

Fixes: #2514

8 years agocore: move service_unwatch_control_pid() call into service_enter_running()
Lennart Poettering [Wed, 3 Feb 2016 22:55:53 +0000 (23:55 +0100)]
core: move service_unwatch_control_pid() call into service_enter_running()

When we enter the running state we should forget about any control processes, in all cases, and not just when hit a
reload timeout...

8 years agojournal: fix boolean handling in MMapCache
Lennart Poettering [Wed, 3 Feb 2016 22:54:47 +0000 (23:54 +0100)]
journal: fix boolean handling in MMapCache

Let's use bitfields for our booleans, and don't try to apply binary OR or addition on them, because that's weird and we
should instead use logical OR only.

8 years agocore: log about path_is_mount_point() errors
Lennart Poettering [Wed, 3 Feb 2016 22:53:08 +0000 (23:53 +0100)]
core: log about path_is_mount_point() errors

We really shouldn't fail silently, but print a log message about these errors. Also make sure to attach error codes to
all log messages where that makes sense.

(While we are at it, add a couple of (void) casts to functions where we knowingly ignore return values.)

8 years agocore: when a service's ExecStartPre= times out, skip ExecStop=
Lennart Poettering [Wed, 3 Feb 2016 22:38:50 +0000 (23:38 +0100)]
core: when a service's ExecStartPre= times out, skip ExecStop=

This makes sure we never run two control processes at the same time, we cannot keep track off.

This introduces a slight change of behaviour but cleans up the definition of ExecStop= and ExecStopPost=. The former is
now invoked only if the service managed to start-up correctly. The latter is called even if start-up failed half-way.
Thus, ExecStopPost= may be used as clean-up step for both successful and failed start-up attempts, but ExecStop='s
purpose is clearly defined as being responsible for shutting down the service and nothing else.

The precise behaviour of this was not documented yet. This commit adds the necessary docs.

Fixes: #1254

8 years agoutil: add check that makes sure time_t and TIME_T_MAX work the way we assume they do
Lennart Poettering [Wed, 3 Feb 2016 20:05:59 +0000 (21:05 +0100)]
util: add check that makes sure time_t and TIME_T_MAX work the way we assume they do

8 years agogpt-auto: handle errors from blkid more correctly
Lennart Poettering [Wed, 3 Feb 2016 19:34:04 +0000 (20:34 +0100)]
gpt-auto: handle errors from blkid more correctly

Let's make sure we don't choke if blkid_probe_lookup_value() returns a NULL string.

Also, make sur we propagate the correct error when blkid_probe_lookup_value() fails.

8 years agonspawn: make sure --help fits it 79ch
Lennart Poettering [Wed, 3 Feb 2016 19:33:38 +0000 (20:33 +0100)]
nspawn: make sure --help fits it 79ch

8 years agonspawn: optionally run a stub init process as PID 1
Lennart Poettering [Wed, 3 Feb 2016 19:32:06 +0000 (20:32 +0100)]
nspawn: optionally run a stub init process as PID 1

This adds a new switch --as-pid2, which allows running commands as PID 2, while a stub init process is run as PID 1.
This is useful in order to run arbitrary commands in a container, as PID1's semantics are different from all other
processes regarding reaping of unknown children or signal handling.

8 years agoresolved: apply epoch to system time from PID 1
Lennart Poettering [Wed, 3 Feb 2016 17:28:40 +0000 (18:28 +0100)]
resolved: apply epoch to system time from PID 1

For use in timesyncd we already defined a compile-time "epoch" value, which is based on the mtime of the NEWS file, and
specifies a point in time we know lies in the past at runtime. timesyncd uses this to filter out nonsensical timestamp
file data, and bump the system clock to a time that is after the build time of systemd. This patch adds similar bumping
code to earliest PID 1 initialization, so that the system never continues operation with a clock that is in the 1970ies
or even 1930s.

8 years agonspawn: add new --chdir= switch
Lennart Poettering [Tue, 2 Feb 2016 00:52:01 +0000 (01:52 +0100)]
nspawn: add new --chdir= switch

Fixes: #2192

8 years agoMerge pull request #2509 from bengal/dhcp-nak-delay-v4
Tom Gundersen [Wed, 3 Feb 2016 20:19:07 +0000 (21:19 +0100)]
Merge pull request #2509 from bengal/dhcp-nak-delay-v4

dhcp: delay restarts after NAKs (v4)

8 years agoMerge pull request #2508 from fishilico/selinux-logind
Lennart Poettering [Wed, 3 Feb 2016 20:13:30 +0000 (21:13 +0100)]
Merge pull request #2508 from fishilico/selinux-logind

Load SELinux labelling systemd in systemd-logind

8 years agoMerge pull request #2512 from 0xAX/mount-setup
Lennart Poettering [Wed, 3 Feb 2016 20:12:06 +0000 (21:12 +0100)]
Merge pull request #2512 from 0xAX/mount-setup

mount-setup: introduce mount_points_setup

8 years agoMerge pull request #2522 from 0xAX/check-early-mount
Lennart Poettering [Wed, 3 Feb 2016 20:10:56 +0000 (21:10 +0100)]
Merge pull request #2522 from 0xAX/check-early-mount

manager: print fatal error if early mount failed

8 years agoMerge pull request #2519 from msekletar/journalctl-device-log-current-boot-v2
Lennart Poettering [Wed, 3 Feb 2016 15:26:21 +0000 (16:26 +0100)]
Merge pull request #2519 from msekletar/journalctl-device-log-current-boot-v2

journalctl: add match for the current boot when called with devpath (v2)

8 years agoMerge pull request #2453 from poettering/journalctl-f
Tom Gundersen [Wed, 3 Feb 2016 14:36:06 +0000 (15:36 +0100)]
Merge pull request #2453 from poettering/journalctl-f

journalctl --fields logic

8 years agoman: clarify what happens when journalctl is called with devpath
Michal Sekletar [Wed, 3 Feb 2016 09:38:29 +0000 (10:38 +0100)]
man: clarify what happens when journalctl is called with devpath

8 years agojournalctl: add match for the current boot when called with devpath
Michal Sekletar [Wed, 3 Feb 2016 10:22:52 +0000 (11:22 +0100)]
journalctl: add match for the current boot when called with devpath

8 years agoMerge pull request #2507 from evverx/fix-q-on-tmpfs
Lennart Poettering [Wed, 3 Feb 2016 12:14:06 +0000 (13:14 +0100)]
Merge pull request #2507 from evverx/fix-q-on-tmpfs

tmpfiles: don't skip path_set_perms on error

8 years agoMerge pull request #2518 from msekletar/udev-manpage-fix
Lennart Poettering [Wed, 3 Feb 2016 11:29:05 +0000 (12:29 +0100)]
Merge pull request #2518 from msekletar/udev-manpage-fix

man: document that udev_device_new_* functions set errno on error

8 years agoman: document that udev_device_new_* functions set errno on error
Michal Sekletar [Wed, 3 Feb 2016 11:12:17 +0000 (12:12 +0100)]
man: document that udev_device_new_* functions set errno on error

8 years agomanager: print fatal error if early mount failed
Alexander Kuleshov [Tue, 2 Feb 2016 19:36:33 +0000 (01:36 +0600)]
manager: print fatal error if early mount failed

The mount_setup_early() can fail and if it will occur, there is
no sense to make selinux setup and etc.

8 years agologind: load SELinux labelling system
Nicolas Iooss [Tue, 2 Feb 2016 19:07:46 +0000 (20:07 +0100)]
logind: load SELinux labelling system

systemd-logind uses mkdir_label and label_fix functions without calling
first mac_selinux_init.  This makes /run/user/$UID/ directories not
labelled correctly on an Arch Linux system using SELinux.

Fix this by calling mac_selinux_init("/run") early in systemd-logind.
This makes files created in /etc/udev/rules.d and /var/lib/systemd to be
labelled through transitions in the SELinux policy instead of using
setfscreatecon (with mac_selinux_create_file_prepare).

8 years agomount-setup: introduce mount_points_setup
Alexander Kuleshov [Tue, 2 Feb 2016 19:03:12 +0000 (01:03 +0600)]
mount-setup: introduce mount_points_setup

The mount_setup_early() and mount_setup() contain almost the same
pieces of code which calls mount_one() for a certain mount point
from the mount_table. This patch introduces mount_points_setup()
helper to prevent code duplication.

8 years agoMerge pull request #2510 from msekletar/journalctl-dev-sda-v4
Lennart Poettering [Tue, 2 Feb 2016 18:34:39 +0000 (19:34 +0100)]
Merge pull request #2510 from msekletar/journalctl-dev-sda-v4

journalctl: make "journalctl /dev/sda" work

8 years agoMerge pull request #2511 from nnz1024/update_russian_translation
Lennart Poettering [Tue, 2 Feb 2016 18:32:36 +0000 (19:32 +0100)]
Merge pull request #2511 from nnz1024/update_russian_translation

Update russian translation

8 years agocatalog: updated Russian translation
nnz1024 [Tue, 2 Feb 2016 18:15:44 +0000 (21:15 +0300)]
catalog: updated Russian translation

8 years agopo: updated Russian translation
nnz1024 [Tue, 2 Feb 2016 18:15:12 +0000 (21:15 +0300)]
po: updated Russian translation

8 years agoMerge pull request #2506 from poettering/resolved-and-more
Daniel Mack [Tue, 2 Feb 2016 16:32:31 +0000 (17:32 +0100)]
Merge pull request #2506 from poettering/resolved-and-more

pid 1 fixes, resolved fixes, and more

8 years agojournalctl: make "journalctl /dev/sda" work
Michal Sekletar [Mon, 1 Feb 2016 09:44:58 +0000 (10:44 +0100)]
journalctl: make "journalctl /dev/sda" work

Currently when journalctl is called with path to block device node we
add following match _KERNEL_DEVICE=b$MAJOR:$MINOR.

That is not sufficient to actually obtain logs about the disk because
dev_printk() kernel helper puts to /dev/kmsg information about the
device in following format, +$SUBSYSTEM:$ADDRESS,
e.g. "+pci:pci:0000:00:14.0".

Now we will walk upward the syspath and add match for every device in
format produced by dev_printk() as well as match for its device node if
it exists.

8 years agodhcp: delay restarts after NAKs
Beniamino Galvani [Wed, 27 Jan 2016 10:21:23 +0000 (11:21 +0100)]
dhcp: delay restarts after NAKs

The server might answer to a DHCPREQUEST with a NAK and currently the
client restarts the configuration process immediately.  It was
observed that this can easily generate loops in which the network is
flooded with DISCOVER,OFFER,REQUEST,NAK sequences.

RFC 2131 only states that "if the client receives a DHCPNAK message,
the client restarts the configuration process" without further
details.

Add a delay with exponential backoff between retries after NAKs to
limit the number of requests and cap the delay to 30 minutes.

8 years agosd-journal: properly export has_{persistent|runtime}_files()
Lennart Poettering [Mon, 1 Feb 2016 22:15:54 +0000 (23:15 +0100)]
sd-journal: properly export has_{persistent|runtime}_files()

This was missing in 39fd5b08a73f144a20202a665bd25cad51d8a90b.

8 years agosd-journal: minor optimization
Lennart Poettering [Wed, 27 Jan 2016 18:02:10 +0000 (19:02 +0100)]
sd-journal: minor optimization

No need to store the object and offset data if we don't actually need it ever.

8 years agojournalctl: add new --fields switch to dump all currently used field names
Lennart Poettering [Wed, 27 Jan 2016 18:01:42 +0000 (19:01 +0100)]
journalctl: add new --fields switch to dump all currently used field names

Fixes #2176

8 years agosd-journal: add an API to enumerate known field names of the journal
Lennart Poettering [Wed, 27 Jan 2016 17:59:29 +0000 (18:59 +0100)]
sd-journal: add an API to enumerate known field names of the journal

This adds two new calls to get the list of all journal fields names currently in use.

This is the low-level support to implement the feature requested in #2176 in a more optimized way.

8 years agoman: document the new RuntimeMaxSec= setting
Lennart Poettering [Mon, 1 Feb 2016 21:37:58 +0000 (22:37 +0100)]
man: document the new RuntimeMaxSec= setting

8 years agosd-netlink: since whe acquire the netlink socket's sockaddr anyway, let's actually...
Lennart Poettering [Mon, 1 Feb 2016 21:17:35 +0000 (22:17 +0100)]
sd-netlink: since whe acquire the netlink socket's sockaddr anyway, let's actually verify it

8 years agosd-netlink: don't take possesion of netlink fd from caller on failure
Lennart Poettering [Mon, 1 Feb 2016 21:13:45 +0000 (22:13 +0100)]
sd-netlink: don't take possesion of netlink fd from caller on failure

Fixes: #2338

8 years agocore: no need to use unlink_noerrno()
Lennart Poettering [Mon, 1 Feb 2016 20:55:39 +0000 (21:55 +0100)]
core: no need to use unlink_noerrno()

8 years agocore: rework unit timeout handling, and add new setting RuntimeMaxSec=
Lennart Poettering [Mon, 1 Feb 2016 20:48:10 +0000 (21:48 +0100)]
core: rework unit timeout handling, and add new setting RuntimeMaxSec=

This clean-ups timeout handling in PID 1. Specifically, instead of storing 0 in internal timeout variables as
indication for a disabled timeout, use USEC_INFINITY which is in-line with how we do this in the rest of our code
(following the logic that 0 means "no", and USEC_INFINITY means "never").

This also replace all usec_t additions with invocations to usec_add(), so that USEC_INFINITY is properly propagated,
and sd-event considers it has indication for turning off the event source.

This also alters the deserialization of the units to restart timeouts from the time they were originally started from.
Before this patch timeouts would be restarted beginning with the time of the deserialization, which could lead to
artificially prolonged timeouts if a daemon reload took place.

Finally, a new RuntimeMaxSec= setting is introduced for service units, that specifies a maximum runtime after which a
specific service is forcibly terminated. This is useful to put time limits on time-intensive processing jobs.

This also simplifies the various xyz_spawn() calls of the various types in that explicit distruction of the timers is
removed, as that is done anyway by the state change handlers, and a state change is always done when the xyz_spawn()
calls fail.

Fixes: #2249

8 years agoupdate TODO
Lennart Poettering [Mon, 1 Feb 2016 20:46:11 +0000 (21:46 +0100)]
update TODO

8 years agocore: fix support for transient resource limit properties
Lennart Poettering [Mon, 1 Feb 2016 20:37:28 +0000 (21:37 +0100)]
core: fix support for transient resource limit properties

Make sure we can properly process resource limit properties. Specifically, allow transient configuration of both the
soft and hard limit, the same way from the unit files. Previously, only the the hard rlimits could be configured but
they'd implicitly spill into the soft hard rlimits.

This also updates the client-side code to be able to parse hard/soft resource limit specifications. Since we need to
serialize two properties in bus_append_unit_property_assignment() now, the marshalling of the container around it is
now moved into the function itself. This has the benefit of shortening the calling code.

As a side effect this now beefs up the rlimit parser of "systemctl set-property" to understand time and disk sizes
where that's appropriate.

8 years agoresolve: work around clang limitation
Lennart Poettering [Mon, 1 Feb 2016 20:32:54 +0000 (21:32 +0100)]
resolve: work around clang limitation

clang is apparently not smart enough to detect when a switch statement contains case statements for all possible values
of the used type. Work around that.

(And while we are at it, normalize indentation a bit)

Fixes: #2504

8 years agoshared: simplify parsing of bus properties a bit
Lennart Poettering [Mon, 1 Feb 2016 20:31:44 +0000 (21:31 +0100)]
shared: simplify parsing of bus properties a bit

Let's write the property name and value in one call, when that's possible, shorthing our code a bit.

8 years agocore: when saving timer unit time values, store them in raw µs
Lennart Poettering [Mon, 1 Feb 2016 20:28:24 +0000 (21:28 +0100)]
core: when saving timer unit time values, store them in raw µs

Let's simplify things a bit, and make sure we don't lose accuracy.

8 years agocore: fix handling of AccuracyUSec and RandomDelayUSec bus properties
Lennart Poettering [Mon, 1 Feb 2016 20:27:33 +0000 (21:27 +0100)]
core: fix handling of AccuracyUSec and RandomDelayUSec bus properties

Clear up some confusion regarding the USec and Sec suffixes we use. In configuration files we usually use the Sec
suffix, to indicate the implied time unit if none is specified. The respective bus properties however use the USec
property, since they expose 64bit unsigned integers containing time in µs.

Before this patch timer units exposed a bus property AccuracyUSec (which hence is the correct name) but when parsing
transient property data would look for AccuracySec instead (which is incorrect). This patch ensures we look for
AccuracySec correctly, but keeps the code for AccuracyUSec in place for compatibility, but adds a warning to ensure
that apps are updated to use the right property.

8 years agobasic: add new rlimit_format() call
Lennart Poettering [Mon, 1 Feb 2016 20:15:07 +0000 (21:15 +0100)]
basic: add new rlimit_format() call

This formats a struct rlimit the way rlimit_parse() expects it.

8 years agogpt-auto: don't log an EIO error if blkid finds something which is not a partition...
Lennart Poettering [Mon, 1 Feb 2016 20:08:50 +0000 (21:08 +0100)]
gpt-auto: don't log an EIO error if blkid finds something which is not a partition table

Fixes: #2483

8 years agocore: move parsing of rlimits into rlimit-util.[ch]
Lennart Poettering [Mon, 1 Feb 2016 20:07:09 +0000 (21:07 +0100)]
core: move parsing of rlimits into rlimit-util.[ch]

This way we can reuse it for parsing rlimit settings in "systemctl set-property" and related commands.

8 years agocore: store for each unit when the last low-level unit state change took place
Lennart Poettering [Mon, 1 Feb 2016 15:01:25 +0000 (16:01 +0100)]
core: store for each unit when the last low-level unit state change took place

This adds a new timestamp field to the Unit struct, storing when the last low-level state change took place, and make
sure this is restored after a daemon reload. This new field is useful to allow restarting of per-state timers exactly
where they originally started.

8 years agosd-event: permit a USEC_INFINITY timeout as an alternative to a disabling an event...
Lennart Poettering [Sun, 31 Jan 2016 23:20:18 +0000 (00:20 +0100)]
sd-event: permit a USEC_INFINITY timeout as an alternative to a disabling an event source

This should simplify handling of time events in clients and is in-line with the USEC_INFINITY macro we already have.
This way setting a timeout to 0 indicates "elapse immediately", and a timeout of USEC_INFINITY "elapse never".

8 years agosd-event: when determining the last allowed time a time event may elapse, deal with...
Lennart Poettering [Sun, 31 Jan 2016 23:19:14 +0000 (00:19 +0100)]
sd-event: when determining the last allowed time a time event may elapse, deal with overflows