summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* meson: allow setting the version string during configurationv239-35v239-34v239-33Jan Synacek2020-06-093-5/+18
| | | | | | | Very loosely based on upstream commits e1ca734edd17a90a325d5b566a4ea96e66c206e5 and 681bd2c524ed71ac04045c90884ba8d55eee7b66. Resolves: #1804252
* cgroup: Mark memory protections as explicitly set in transient unitsChris Down2020-06-081-16/+48
| | | | | | | | | | | | | A later version of the DefaultMemory{Low,Min} patch changed these to require explicitly setting memory_foo_set, but we only set that in load-fragment, not dbus-cgroup. Without these, we may fall back to either DefaultMemoryFoo or CGROUP_LIMIT_MIN when we really shouldn't. (cherry picked from commit 184e989d7da4648bd36511ffa28a9f2b469589d1) Related: #1763435
* cgroup: Respect DefaultMemoryMin when setting memory.minChris Down2020-06-081-1/+1
| | | | | | | | | | | | This is an oversight from https://github.com/systemd/systemd/pull/12332. Sadly the tests didn't catch it since it requires a real cgroup hierarchy to see, and it wasn't seen in prod since we're only currently using DefaultMemoryLow, not DefaultMemoryMin. :-( (cherry picked from commit 64fe532e90b3e99bf7821ded8a1107c239099e40) Related: #1763435
* cgroup: Check ancestor memory min for unified memory configChris Down2020-06-081-1/+1
| | | | | | | | | Otherwise we might not enable it when we should, ie. DefaultMemoryMin is set in a parent, but not MemoryMin in the current unit. (cherry picked from commit 7c9d2b79935d413389a603918a711df75acd3f48) Related: #1763435
* cgroup: Test that it's possible to set memory protection to 0 againChris Down2020-06-082-4/+4
| | | | | | | | | The previous commit fixes this up, and this should prevent it regressing. (cherry picked from commit 465ace74d9820824968ab5e82c81e42c2f1894b0) Related: #1763435
* cgroup: Support 0-value for memory protection directivesChris Down2020-06-082-9/+10
| | | | | | | | | | | | These make sense to be explicitly set at 0 (which has a different effect than the default, since it can affect processing of `DefaultMemoryXXX`). Without this, it's not easily possible to relinquish memory protection for a subtree, which is not great. (cherry picked from commit 22bf131be278b95a4a204514d37a4344cf6365c6) Related: #1763435
* cgroup: Readd some plumbing for DefaultMemoryMinChris Down2020-06-084-2/+4
| | | | | | | | | Somehow these got lost in the previous PR, rendering DefaultMemoryMin not very useful. (cherry picked from commit 7e7223b3d57c950b399352a92e1d817f7c463602) Related: #1763435
* cgroup: Polish hierarchically aware protection docs a bitChris Down2020-06-082-2/+7
| | | | | | | | | | | I missed adding a section in `systemd.resource-control` about DefaultMemoryMin in #12332. Also, add a NEWS entry going over the general concept. (cherry picked from commit acdb4b5236f38bbefbcc4a47fdbb9cd558b4b5c5) Related: #1763435
* unit: Add DefaultMemoryMinChris Down2020-06-085-2/+24
| | | | | | (cherry picked from commit 7ad5439e0663e39e36619957fa37eefe8026bcab) Related: #1763435
* cgroup: Create UNIT_DEFINE_ANCESTOR_MEMORY_LOOKUPChris Down2020-06-081-25/+30
| | | | | | | | This is in preparation for creating unit_get_ancestor_memory_min. (cherry picked from commit 6264b85e92aeddb74b8d8808a08c9eae8390a6a5) Related: #1763435
* cgroup: Implement default propagation of MemoryLow with DefaultMemoryLowChris Down2020-06-0823-13/+310
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In cgroup v2 we have protection tunables -- currently MemoryLow and MemoryMin (there will be more in future for other resources, too). The design of these protection tunables requires not only intermediate cgroups to propagate protections, but also the units at the leaf of that resource's operation to accept it (by setting MemoryLow or MemoryMin). This makes sense from an low-level API design perspective, but it's a good idea to also have a higher-level abstraction that can, by default, propagate these resources to children recursively. In this patch, this happens by having descendants set memory.low to N if their ancestor has DefaultMemoryLow=N -- assuming they don't set a separate MemoryLow value. Any affected unit can opt out of this propagation by manually setting `MemoryLow` to some value in its unit configuration. A unit can also stop further propagation by setting `DefaultMemoryLow=` with no argument. This removes further propagation in the subtree, but has no effect on the unit itself (for that, use `MemoryLow=0`). Our use case in production is simplifying the configuration of machines which heavily rely on memory protection tunables, but currently require tweaking a huge number of unit files to make that a reality. This directive makes that significantly less fragile, and decreases the risk of misconfiguration. After this patch is merged, I will implement DefaultMemoryMin= using the same principles. (cherry picked from commit c52db42b78f6fbeb7792cc4eca27e2767a48b6ca) Related: #1763435
* test: remove support for suffix in get_testdata_dir()Filipe Brandenburger2020-06-0812-18/+39
| | | | | | | | Instead, use path_join() in callers wherever needed. (cherry picked from commit 55890a40c3ec0c061c04d1395a38c26313132d12) Related: #1763435
* core: introduce cgroup_add_device_allow()Yu Watanabe2020-06-083-12/+32
| | | | | | (cherry picked from commit fd870bac25c2dd36affaed0251b5a7023f635306) Related: #1763435
* core: add MemoryMinTejun Heo2020-06-089-5/+48
| | | | | | | | | | | | The kernel added support for a new cgroup memory controller knob memory.min in bf8d5d52ffe8 ("memcg: introduce memory.min") which was merged during v4.18 merge window. Add MemoryMin to support memory.min. (cherry picked from commit 484226357789991de0b3363beb69258be06b4c92) Resolves: #1763435
* sd-bus: skip sending formatted UIDs via SASLDavid Rheinsberg2020-06-081-42/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dbus external authentication takes as optional argument the UID the sender wants to authenticate as. This uid is purely optional. The AF_UNIX socket already conveys the same information through the auxiliary socket data, so we really don't have to provide that information. Unfortunately, there is no way to send empty arguments, since they are interpreted as "missing argument", which has a different meaning. The SASL negotiation thus changes from: AUTH EXTERNAL <uid> NEGOTIATE_UNIX_FD (optional) BEGIN to: AUTH EXTERNAL DATA NEGOTIATE_UNIX_FD (optional) BEGIN And thus the replies we expect as a client change from: OK <server-id> AGREE_UNIX_FD (optional) to: DATA OK <server-id> AGREE_UNIX_FD (optional) Since the old sd-bus server implementation used the wrong reply for "AUTH" requests that do not carry the arguments inlined, we decided to make sd-bus clients accept this as well. Hence, sd-bus now allows "OK <server-id>\r\n" replies instead of "DATA\r\n" replies. Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com> (cherry picked from commit 1ed4723d38cd0d1423c8fe650f90fa86007ddf55) Resolves: #1838081
* sd-bus: fix SASL reply to empty AUTHDavid Rheinsberg2020-06-081-2/+8
| | | | | | | | | | | | | | | | | | | | | The correct way to reply to "AUTH <protocol>" without any payload is to send "DATA" rather than "OK". The "DATA" reply triggers the client to respond with the requested payload. In fact, adding the data as hex-encoded argument like "AUTH <protocol> <hex-data>" is an optimization that skips the "DATA" roundtrip. The standard way to perform an authentication is to send the "DATA" line. This commit fixes sd-bus to properly send the "DATA" line. Surprisingly no existing implementation depends on this, as they all pass the data directly as argument to "AUTH". This will not work if we want to pass an empty argument, though. Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com> (cherry picked from commit 2010873b4b49b223e0cc07d28205b09c693ef005) Related: #1838081
* sd-bus: avoid magic number in SASL length calculationDavid Rheinsberg2020-06-081-2/+6
| | | | | | | | | Lets avoid magic numbers and use a constant `strlen()` instead. Signed-off-by: David Rheinsberg <david.rheinsberg@gmail.com> (cherry picked from commit 3cacdab925c40a5d9b7cf3f67719201bbaa17f67) Related: #1838081
* core: downgrade CPUQuotaPeriodSec= clamping logs to debugFilipe Brandenburger2020-06-083-1/+7
| | | | | | | | After the first warning log, further messages are downgraded to LOG_DEBUG. (cherry picked from commit 527ede0c638b47b62a87900438a8a09dea42889e) Related: #1770379
* core: add CPUQuotaPeriodSec=Filipe Brandenburger2020-06-0810-11/+155
| | | | | | | | | | | | | | | | | | | This new setting allows configuration of CFS period on the CPU cgroup, instead of using a hardcoded default of 100ms. Tested: - Legacy cgroup + Unified cgroup - systemctl set-property - systemctl show - Confirmed that the cgroup settings (such as cpu.cfs_period_ns) were set appropriately, including updating the CPU quota (cpu.cfs_quota_ns) when CPUQuotaPeriodSec= is updated. - Checked that clamping works properly when either period or (quota * period) are below the resolution of 1ms, or if period is above the max of 1s. (cherry picked from commit 10f28641115733c61754342d5dcbe70b083bea4b) Resolves: #1770379
* cgroup: use structured initializationLennart Poettering2020-06-081-16/+17
| | | | | | (cherry picked from commit de8a711a5849f9239c93aefa5554a62986dfce42) Related: #1770379
* time-util: Introduce parse_sec_def_infinityFilipe Brandenburger2020-06-085-0/+33
| | | | | | | | | | | | | | | | | This works like parse_sec() but defaults to USEC_INFINITY when passed an empty string or only whitespace. Also introduce config_parse_sec_def_infinity, which can be used to parse config options using this function. This is useful for time options that use "infinity" for default and that can be reset by unsetting them. Introduce a test case to ensure it works as expected. (cherry picked from commit 7b61ce3c44ef5908e817009ce4f9d2a7a37722be) Related: #1770379
* core: add IODeviceLatencyTargetSecTejun Heo2020-06-089-12/+320
| | | | | | | | | | | This adds support for the following proposed latency based IO control mechanism. https://lkml.org/lkml/2018/6/5/428 (cherry picked from commit 6ae4283cb14c4e4a895f4bbba703804e4128c86c) Resolves: #1831519
* core: coldplug possible nop_jobypf7912020-06-081-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | When a unit in a state INACTIVE or DEACTIVATING, JobType JOB_TRY_RESTART or JOB_TRY_RELOAD will be collapsed to JOB_NOP. And use u->nop_job instead of u->job. If a JOB_NOP job is going on with a waiting state, a parallel daemon-reload just install it during deserialization. Without a coldplug, the job will not be in m->run_queue, which results in a hung try-restart or try-reload process. Reproduce: run systemctl try-restart test.servcie (inactive) repeatly in a terminal. run systemctl daemon-reload repeatly in other terminals. After successful reproduce, systemctl list-jobs will list the hang job. Upsteam: systemd/systemd#13124 (cherry picked from commit b49e14d5f3081dfcd363d8199a14c0924ae9152f) Resolves: #1829798
* mount: don't add Requires for tmp.mountDavid Tardon2020-06-081-1/+1
| | | | | | | This is a follow-up to #1619292. rhel-only Resolves: #1748840
* resolvconf: fixes for the compatibility interfaceFilipe Brandenburger2020-06-082-2/+4
| | | | | | | | | | | | | | | | | | | | Also use compat_main() when called as `resolvconf`, since the interface is closer to that of `systemd-resolve`. Use a heap allocated string to set arg_ifname, since a stack allocated one would be lost after the function returns. (This last one broke the case where an interface name was suffixed with a dot, such as in `resolvconf -a tap0.dhcp`.) Tested: $ build/resolvconf -a nonexistent.abc </etc/resolv.conf Unknown interface 'nonexistent': No such device Fixes #9423. (cherry picked from commit 5a01b3f35d7b6182c78b6973db8d99bdabd4f9c3) Resolves: #1835594
* sulogin-shell: Use force if SYSTEMD_SULOGIN_FORCE setAndreas Henriksson2020-06-082-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When the root account is locked sulogin will either inform you of this and not allow you in or if --force is used it will hand you passwordless root (if using a recent enough version of util-linux). Not being allowed a shell is ofcourse inconvenient, but at the same time handing out passwordless root unconditionally is probably not a good idea everywhere. This patch thus allows to control which behaviour you want by setting the SYSTEMD_SULOGIN_FORCE environment variable to true or false to control the behaviour, eg. via adding this to 'systemctl edit rescue.service' (or emergency.service): [Service] Environment=SYSTEMD_SULOGIN_FORCE=1 Distributions who used locked root accounts and want the passwordless behaviour could thus simply drop in the override file in /etc/systemd/system/rescue.service.d/override.conf Fixes: #7115 Addresses: https://bugs.debian.org/802211 (cherry picked from commit 33eb44fe4a8d7971b5614bc4c2d90f8d91cce66c) Resolves: #1625929
* tmpfiles: fix crash with NULL in arg_root and other fixes and testsZbigniew Jędrzejewski-Szmek2020-06-082-9/+73
| | | | | | | | | | | | | | | | | | The function to replacement paths into the configuration file list was borked. Apart from the crash with empty root prefix, it would incorrectly handle the case where root *was* set, and the replacement file was supposed to override an existing file. prefix_root is used instead of path_join because prefix_root removes duplicate slashes (when --root=dir/ is used). A test is added. Fixes #11124. (cherry picked from commit 082bb1c59bd4300bcdc08488c94109680cfadf57) Resolves: #1836024
* seccomp: fix __NR__sysctl usagev239-32Jan Synacek2020-06-041-2/+2
| | | | | | | | Loosely based on https://github.com/systemd/systemd/pull/14032 and https://github.com/systemd/systemd/pull/14268. Related: #1843871
* fuzz-compress: add fuzzer for compression and decompressionZbigniew Jędrzejewski-Szmek2020-06-042-1/+86
| | | | | (cherry picked from commit 029427043b2e0523a21f54374f872b23cf744350) Resolves: #1843871
* journal: adapt for new improved LZ4_decompress_safe_partial()Zbigniew Jędrzejewski-Szmek2020-06-042-23/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With lz4 1.8.3, this function can now decompress partial results into a smaller buffer. The release news don't say anything interesting, but the test case that was previously failing now works OK. Fixes #10259. A test is added. It shows that with *older* lz4, a partial decompression can occur with the returned size smaller then the requested number of bytes _and_ smaller then the size of the compressed data: (lz4-libs-1.8.2-1.fc29.x86_64) Compressed 4194304 → 16464 Decompressed → 4194304 Decompressed partial 12/4194304 → 4194304 Decompressed partial 1/1 → -2 (bad) Decompressed partial 2/2 → -2 (bad) Decompressed partial 3/3 → -2 (bad) Decompressed partial 4/4 → -2 (bad) Decompressed partial 5/5 → -2 (bad) Decompressed partial 6/6 → 6 (good) Decompressed partial 7/7 → 6 (good) Decompressed partial 8/8 → 6 (good) Decompressed partial 9/9 → 6 (good) Decompressed partial 10/10 → 6 (good) Decompressed partial 11/11 → 6 (good) Decompressed partial 12/12 → 6 (good) Decompressed partial 13/13 → 6 (good) Decompressed partial 14/14 → 6 (good) Decompressed partial 15/15 → 6 (good) Decompressed partial 16/16 → 6 (good) Decompressed partial 17/17 → 6 (good) Decompressed partial 18/18 → -16459 (bad) (lz4-libs-1.8.3-1.fc29.x86_64) Compressed 4194304 → 16464 Decompressed → 4194304 Decompressed partial 12/4194304 → 12 Decompressed partial 1/1 → 1 (good) Decompressed partial 2/2 → 2 (good) Decompressed partial 3/3 → 3 (good) Decompressed partial 4/4 → 4 (good) ... If we got such a short "successful" decompression in decompress_startswith() as implemented before this patch, we could be confused and return a false negative result. But it turns out that this only occurs with small output buffer sizes. We use greedy_realloc() to manager the buffer, so it is always at least 64 bytes. I couldn't hit a case where decompress_startswith() would actually return a bogus result. But since the lack of proof is not conclusive, the code for *older* lz4 is changed too, just to be safe. We cannot rule out that on a different architecture or with some unlucky compressed string we could hit this corner case. The fallback code is guarded by a version check. The check uses a function not the compile-time define, because there was no soversion bump in lz4 or new symbols, and we could be compiled against a newer lz4 and linked at runtime with an older one. (This happens routinely e.g. when somebody upgrades a subset of distro packages.) (cherry picked from commit e41ef6fd0027d3619dc1cf062100b2d224d0ee7e) Resolves: #1843871
* test-compress: add test for short decompress_startswith callsZbigniew Jędrzejewski-Szmek2020-06-041-0/+32
| | | | | | | | | I thought this might fail with lz4 < 1.8.3, but it seems that because of greedy_realloc, we always use a buffer that is large enough, and it always passes. (cherry picked from commit ba17efce44e6a1e139c1671205e9a6ed3824af1b) Resolves: #1843871
* Drop support for lz4 < 1.3.0Zbigniew Jędrzejewski-Szmek2020-06-044-9/+2
| | | | | | | | | lz4-r130 was released on May 29th, 2015. Let's drop the work-around for older versions. In particular, we won't test any new code against those ancient releases, so we shouldn't pretend they are supported. (cherry picked from commit e0a1d4b049e6991919a0eacd5d96f7f39dc6ddd1) Resolves: #1843871
* core: ExecCondition= for servicesAnita Zhang2020-05-2621-24/+222
| | | | | | | | Closes #10596 (cherry picked from commit 31cd5f63ce86a0784c4ef869c4d323a11ff14adc) Resolves: #1737283
* test-execute: provide custom failure messageZbigniew Jędrzejewski-Szmek2020-05-261-113/+123
| | | | | | | | | | | test_exec_ambientcapabilities: exec-ambientcapabilities-nobody.service: exit status 0, expected 1 Sometimes we get just the last line, for example from the failure summary, so make it as useful as possible. (cherry picked from commit 6aed6a11577b108b9a39f26aeae5e45d98f20c90) Related: #1737283
* test-execute: allow filtering test cases by patternZbigniew Jędrzejewski-Szmek2020-05-261-46/+58
| | | | | | | | | | When debugging failure in one of the cases, it's annoying to have to wade through the output from all the other cases. Let's allow picking select cases. (cherry picked from commit 9efb96315ae502dabeb94ab35816ea8955563b7a) Related: #1737283
* tests: always use the right vtable wrapper callsLennart Poettering2020-05-262-10/+10
| | | | | | | | Prompted by https://github.com/systemd/systemd/pull/10836#discussion_r234598868 (cherry picked from commit bd7989a3d90e5d97e09f1eef33d09b2469a79f4d) Related: #1737283
* core: log a recognizable message when a unit succeeds, tooLennart Poettering2020-05-2612-8/+44
| | | | | | | | | We already are doing it on failure, let's do it on success, too. Fixes: #10265 (cherry picked from commit 523ee2d41471bfb738f52d59de9b469301842644) Related: #1737283
* core: make log messages about units entering a 'failed' state recognizableLennart Poettering2020-05-2612-8/+33
| | | | | | | | | Let's make this recognizable, and carry result information in a structure fashion. (cherry picked from commit 7c047d7443347c109daf67023a01c118b5f361eb) Related: #1737283
* core: split out all logic that updates a Job on a unit's unit_notify() ↵Lennart Poettering2020-05-261-65/+71
| | | | | | | | | | invocation Just some refactoring, no change in behaviour. (cherry picked from commit 16c74914d233ec93012d77e5f93cf90e42939669) Related: #1737283
* job: when a job was skipped due to a failed condition, log about itLennart Poettering2020-05-261-4/+18
| | | | | | | | | Previously we'd neither show console status output nor log output. Let's fix that, and still log something. (cherry picked from commit 9a80f2f4533883d272e6a436512aa7e88cedc549) Related: #1737283
* core: move unit_status_emit_starting_stopping_reloading() and related calls ↵Lennart Poettering2020-05-263-103/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | to job.c This call is only used by job.c and very specific to job handling. Moreover the very similar logic of job_emit_status_message() is already in job.c. Hence, let's clean this up, and move both sets of functions to job.c, and rename them a bit so that they express precisely what they do: 1. unit_status_emit_starting_stopping_reloading() → job_emit_begin_status_message() 2. job_emit_status_message() → job_emit_done_status_message() The first call is after all what we call when we begin with the execution of a job, and the second call what we call when we are done wiht it. Just some moving and renaming, not other changes, and hence no change in behaviour. (cherry picked from commit 33a3fdd9781329379f74e11a7a2707816aad8c61) Related: #1737283
* nspawn: chown() the legacy hierarchy when it's used in a containerEvgeny Vereshchagin2020-05-191-1/+1
| | | | | | | | | | | This is a follow-up to 720f0a2f3c928cc9379501a52146be9fbb4d9be2. Closes https://github.com/systemd/systemd/issues/10026 Closes https://github.com/systemd/systemd/issues/9563 (cherry picked from commit 89f180201cd8c0f3ce5cb6e8dd7e2b3cbcf71527) Resolves: 1837094
* nspawn: move payload to sub-cgroup first, then sync cgroup treesLennart Poettering2020-05-191-2/+2
| | | | | | | | | | | if we sync the legacy and unified trees before moving to the right subcgroup then ultimately the cgroup paths in the hierarchies will be out-of-sync... Hence, let's move the payload first, and sync then. Addresses: https://github.com/systemd/systemd/pull/9762#issuecomment-441187979 (cherry picked from commit 27da7ef0d09e00eae821f3ef26e1a666fe7aa087) Resolves: #1837094
* Add support for opening files for appendingZsolt Dollenstein2020-05-1910-19/+101
| | | | | | | | Addresses part of #8983 (cherry picked from commit 566b7d23eb747e9c5a74e5647693077b52395fc5) Resolves: #1809175
* man: be clearer that .timer time expressions need to be reset to override themLennart Poettering2020-05-191-13/+18
| | | | | | | | | | | let's be clearer about the overriding concept for OnCalendar= settings. Prompted by this thread: https://lists.freedesktop.org/archives/systemd-devel/2019-March/042351.html (cherry picked from commit 58031d99c6320855b86f4890baa9165597e3d841) Resolves: #1816908
* udev-rules: make tape-changers also apprear in /dev/tape/by-path/Joerg Steffens2020-05-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is important to be able to access tape changer ("Medium Changers") by persistant name. While tape devices can be accessed via /dev/tape/by-id/ and /dev/tape/by-path/, tape-changers could only be accessed by /dev/tape/by-id/. However, in some cases, especially when accessing Amazon Webservice Storage Gateway VTLs (or accessing iSCSI VTLs in general?) this does not work, as all tape devices and the tape changer have the same ENV{ID_SERIAL}. The results is, that only the last device is available in /dev/tape/by-id/, as the former devices have been overwritten. As this behavior is hard to change without breaking consistentcy, this additional device in /dev/tape/by-path/ can be used to access the medium changes. The tape devices can also be accessed by this path. The content of the directory will now look like: # SCSI tape device, rewind (unchanged) /dev/tape/by-path/$env{ID_PATH} -> ../../st* # SCSI tape device, no-rewind (unchanged) /dev/tape/by-path/$env{ID_PATH}-nst -> ../../nst* # SCSI tape changer device (newly added) /dev/tape/by-path/$env{ID_PATH}-changer -> ../../sg* Tape devices and tape changer have different ID_PATHs. SCSI tape changer get the suffix "-changer" to make them better distinguishable from tape devices. (cherry picked from commit 7f8ddf96a25162f06bd94a684cf700c128d18142) Resolves: #1820112
* pid1: add new kernel cmdline arg systemd.cpu_affinity=Lennart Poettering2020-04-272-0/+20
| | | | | | | | | | | | | Let's allow configuration of the CPU affinity via the kernel cmdline, overriding CPUAffinity= in /etc/systemd/system.conf Prompted by: https://lists.freedesktop.org/archives/systemd-devel/2019-November/043754.html (cherry picked from commit 68d58f38693e586b5ce5785274f8e42a79625196) Resolves: #1812894
* test: store coredumps in journalFrantisek Sumsal2020-04-211-0/+2
| | | | | | | | | | | | To make debugging much easier, especially for crashes in tests under QEMU, let's store the entire coredump bundle in the systemd journal, which is usually kept around by various CIs. Right now, we usually end up with a journal, but without the coredump itself, which is pretty useless. (cherry picked from commit 215bffe1b8d7cb72fe9f72ed53682d52d5c2a9c5) Related: #1823767
* test: try to determine QEMU_SMP dynamicallyFrantisek Sumsal2020-04-211-1/+10
| | | | | | | | | | | | | If the QEMU_SMP value has not been explicitly set, try to determine it from the number of online CPUs using the nproc utility. If this approach fails, fall back to the default value QEMU_SMP=1. This change should significantly help when running integration tests under QEMU on multicore systems. (cherry picked from commit 5bfb2a93a4a36bba0d24199553dcda6e560cbb75) Related: #1823767
* test: parallelize tasks in TEST-24-UNIT-TESTSFrantisek Sumsal2020-04-212-22/+77
| | | | | | (cherry picked from commit 2f2a0454efd07644a4e0ccb3f00f1db2d7043391) Related: #1823767