Commit graph

48018 commits

Author SHA1 Message Date
Michal Sekletár 68d8906517 test: add ratelimiting test
(Taken from Michal's #17274 by Lennart, and slightly adjusted)
2020-12-01 15:15:39 +01:00
Lennart Poettering b6d5481b3d sd-event: add ability to ratelimit event sources
Let's a concept of "rate limiting" to event sources: if specific event
sources fire too often in some time interval temporarily take them
offline, and take them back online once the interval passed.

This is a simple scheme of avoiding starvation of event sources if some
event source fires too often.

This introduces the new conceptual states of "offline" and "online" for
event sources: an event source is "online" only when enabled *and* not
ratelimited, and offline in all other cases. An event source that is
online hence has its fds registered in the epoll, its signals in the
signalfd and so on.
2020-12-01 15:11:24 +01:00
Lennart Poettering f41315fceb sd-event: remove earliest_index/latest_index into common part of event source objects
So far we used these fields to organize the earliest/latest timer event
priority queue.  In a follow-up commit we want to introduce ratelimiting
to event sources, at which point we want any kind of event source to be
able to trigger time wakeups, and hence they all need to be included in
the earliest/latest prioqs.  Thus, in preparation let's make this
generic.

No change in behaviour, just some shifting around of struct members from
the type-specific to the generic part.
2020-12-01 15:10:50 +01:00
Lennart Poettering cad143a8f2 sd-event: follow coding style with naming return parameter 2020-12-01 15:10:50 +01:00
Lennart Poettering f814c871e6 sd-event: ref event loop while in sd_event_prepare() ot sd_event_run()
sd_event_prepare() invokes callbacks that might drop the last user ref
on our event loop. Let's make sure we keep an explicit ref around it, so
that we won't end up with an invalid pointer. Similar in sd_event_run().

Basically, any function that is publically callable that might end up
invoking callbacks should ref the relevant objects to be protected
against callbacks destroying these objects while we still want to access
them. We did this correctly in sd_event_dispatch() and sd_event_loop(),
but these are not the only ones which are callable from the outside.
2020-12-01 15:10:50 +01:00
Lennart Poettering e6a7bee538 sd-event: let's suffix last_run/last_log with "_usec"
Otherwise it's a bit confusing what this is about: two timestamps.
2020-12-01 15:10:50 +01:00
Lennart Poettering 1e45e3fecc sd-event: split out code to add/remove timer event sources to earliest/latest prioq
Just some refactoring that makes code prettier, and will come handy
later, because we can reuse these functions at more places.
2020-12-01 15:10:50 +01:00
Lennart Poettering 41c63f36c3 sd-event: split clock data allocation out of sd_event_add_time()
Just some simple refactoring, that will make things easier for us later.
But it looks better this way even without the later function reuse.
2020-12-01 15:10:50 +01:00
Lennart Poettering f80a5d6a86 sd-event: mention that two debug logged events are ignored 2020-12-01 14:36:06 +01:00
Franck Bui e9eec8b5d2 scope: on unified, make sure to unwatch all PIDs once they've been moved to the cgroup scope
Commit 428a9f6f1d freed u->pids which is
problematic since the references to this unit in m->watch_pids were no more
removed when the unit was freed.

This patch makes sure to clean all this refs up before freeing u->pids by
calling unit_unwatch_all_pids().
2020-12-01 09:33:14 +01:00
Vito Caputo cb9d621ebb
sd-event: fix delays assert brain-o (#17790)
s/sizeof/ELEMENTSOF/

Bug introduced in 34b8751774.
2020-12-01 09:26:54 +01:00
Pavel Sapezhko e11ec61d65 mkosi: make ubuntu image bootable by default 2020-11-30 22:14:57 +00:00
igo95862 1edc1f1b62 man: Speicfy exact return values of sd_bus_message_enter_container 2020-11-30 12:21:20 +01:00
Piotr Drąg a75471ced1 po: add units/systemd-journald.service.in to POTFILES.skip 2020-11-30 10:36:31 +01:00
Michał Kopeć e7ab349f64 hwdb: add axis range corrections for Lenovo ThinkPad T14 Gen1 2020-11-30 10:28:16 +01:00
Yu Watanabe bb2d0a24f3
Merge pull request #17761 from keszybz/documentation-followups
Two tiny fixlets
2020-11-29 05:32:33 +09:00
nihilix-melix eee582e795 Update logind-button.c 2020-11-28 12:44:48 +01:00
Zbigniew Jędrzejewski-Szmek 78cafcbc7e test-networkd-conf: add missing assert_se
Coverity CID#1437351. Fixup for f706340979.
2020-11-28 11:27:31 +01:00
Frantisek Sumsal ed9192bb55 semaphore: temporarily disable the timedated test suite
All otherwise passing Semaphore CI builds are now getting stuck on the
timedated test suite. Let's temporarily skip it until the issue is
resolved.

See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975010
2020-11-28 08:53:38 +09:00
Konomi 55260eeb78 hwdb: 60-keyboard: Add Dell Inspiron 11 3168 Fn+Home/End/PageUp/PageDown key mappings
On the Dell Inspiron 11 3168 the Fn and Arrow Keys control the Home, End, Page Up and Page Down keys. This commit allows those keys to work correctly.
2020-11-27 13:14:12 +01:00
Zbigniew Jędrzejewski-Szmek b2363dcdd8
Merge pull request #17734 from yuwata/parse-hwdb
hwdb: add missing Group()
2020-11-27 13:12:23 +01:00
Zbigniew Jędrzejewski-Szmek 1526e55f6c
Merge pull request #17732 from yuwata/core-use-synthetic_errno
core,network: use SYNTHETIC_ERRNO() macro
2020-11-27 12:55:37 +01:00
Zbigniew Jędrzejewski-Szmek 832eedd192 NEWS: really fix kernel version number reference
Fixes #17736.
2020-11-27 12:51:48 +01:00
Yu Watanabe 61c26ca87f coccinelle: ignore specific cases to use SYNTHETIC_ERRNO() macro 2020-11-27 14:35:20 +09:00
Yu Watanabe ba715423fe cryptsetup: drop unnecessary bracket 2020-11-27 14:35:20 +09:00
Yu Watanabe 2940b12826 test: use for(;;) instead of while(true) 2020-11-27 14:35:20 +09:00
Yu Watanabe 614f57ed76 core/scope: use set_ensure_put() 2020-11-27 14:35:20 +09:00
Yu Watanabe 75f79cd2d8 mount-util: use mfree() 2020-11-27 14:35:20 +09:00
Yu Watanabe 95ca39f04e oom: use CMP() macro 2020-11-27 14:35:20 +09:00
Yu Watanabe 751b440063 core: fix typo 2020-11-27 14:35:20 +09:00
Yu Watanabe 1c1729c9be coccinelle: add rules for log_unit_error_errno() or friends 2020-11-27 14:35:20 +09:00
Yu Watanabe 72f092815a network: fix return values 2020-11-27 14:35:20 +09:00
Yu Watanabe 5a9494bedb network: use SYNTHETIC_ERRNO() macro 2020-11-27 14:35:20 +09:00
Yu Watanabe d85ff94477 core: use SYNTHETIC_ERRNO() macro 2020-11-27 14:35:20 +09:00
Yu Watanabe 2762ce2d89 core/timer: drop unnecessary brackets 2020-11-27 14:35:20 +09:00
Yu Watanabe dca63b5b46
Merge pull request #17474 from yuwata/network-drop-link-deserialization-logic
network: drop link deserialization logic
2020-11-27 09:08:01 +09:00
Yu Watanabe 0d5eb02134
Merge pull request #17478 from yuwata/split-network-internal
libsystemd-network: split network-internal.c
2020-11-27 09:04:19 +09:00
Pavel Sapezhko 6d8325f66a resolved: allow cache responses from local DNS servers 2020-11-27 09:03:42 +09:00
Christian Hesse 2bb703e440 oom: fix oomd.conf install location
The file is read in pkgsysconfdir, so install it there.
2020-11-27 09:03:18 +09:00
Christian Hesse 72a4466e6e home: fix homed.conf install location
The install location changed in d7aa78c32f,
I think this was not intentional. Keep the condition but revert the path.
2020-11-27 09:02:55 +09:00
Yu Watanabe 315a3c9ff4 hwdb: add missing Group()
This fixes the following warning:
```
parse_hwdb.py:120: UserWarning: warn_ungrouped_named_tokens_in_collection: setting results name 'SETTINGS*' on And expression collides with 'HZ' on contained expression
  dpi_setting = (Optional('*')('DEFAULT') + INTEGER('DPI') + Suppress('@') + INTEGER('HZ'))('SETTINGS*')
```

Not sure about for the mount_matrix, but LGTM.com warns in that line,
and, adding Group() does not change the parse result.
2020-11-27 06:02:44 +09:00
Yu Watanabe e77fed207a hwdb: enable diagnostic switches 2020-11-27 05:59:56 +09:00
Zbigniew Jędrzejewski-Szmek 4d484e14bb
Merge pull request #17738 from keszybz/hwdb-news-update-v247
Update hwdb and news for v247
2020-11-26 19:00:50 +01:00
Zbigniew Jędrzejewski-Szmek d5923e38bc shared/seccomp-util: address family filtering is broken on ppc
This reverts the gist of da1921a5c3 and
0d9fca76bb (for ppc).

Quoting #17559:
> libseccomp 2.5 added socket syscall multiplexing on ppc64(el):
> https://github.com/seccomp/libseccomp/pull/229
>
> Like with i386, s390 and s390x this breaks socket argument filtering, so
> RestrictAddressFamilies doesn't work.
>
> This causes the unit test to fail:
> /* test_restrict_address_families */
> Operating on architecture: ppc
> Failed to install socket family rules for architecture ppc, skipping: Operation canceled
> Operating on architecture: ppc64
> Failed to add socket() rule for architecture ppc64, skipping: Invalid argument
> Operating on architecture: ppc64-le
> Failed to add socket() rule for architecture ppc64-le, skipping: Invalid argument
> Assertion 'fd < 0' failed at src/test/test-seccomp.c:424, function test_restrict_address_families(). Aborting.
>
> The socket filters can't be added so `socket(AF_UNIX, SOCK_DGRAM, 0);` still
> works, triggering the assertion.

Fixes #17559.
2020-11-26 14:23:15 +01:00
Zbigniew Jędrzejewski-Szmek d90922fbd3 NEWS: fix kernel version number reference
Fixes #17736.
2020-11-26 14:01:09 +01:00
Zbigniew Jędrzejewski-Szmek d0dcf59b78 NEWS: version 247 2020-11-26 13:54:37 +01:00
Zbigniew Jędrzejewski-Szmek fe7576e345 hwdb: update chromiumos autosuspend rules 2020-11-26 13:54:37 +01:00
Zbigniew Jędrzejewski-Szmek 6a8b36e7aa hwdb: update for v247
Only some small changes, because we updated recently. As usual, it seems that there are mostly
additions with a smaller amount of corrections, no big removals.
2020-11-26 13:54:37 +01:00
Zbigniew Jędrzejewski-Szmek 89341c83c3 docs/RELEASE: clarify which steps are done when 2020-11-26 13:54:37 +01:00
Dan Streetman ebc815cd1c test: use cap_last_cap() for max supported cap number, not capability_list_length()
This test assumes capability_list_length() is an invalid cap number,
but that isn't true if the running kernel supports more caps than we were
compiled with, which results in the test failing.

Instead use cap_last_cap() + 1.

If cap_last_cap() is 63, there are no more 'invalid' cap numbers to test with,
so the invalid cap number test part is skipped.
2020-11-26 13:35:48 +01:00