• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

systemd / systemd / 24165447443
74%

Build:
DEFAULT BRANCH: main
Ran 09 Apr 2026 02:50AM UTC
Jobs 1
Files 2023
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Apr 2026 10:44PM UTC coverage: 72.303% (+0.1%) from 72.175%
24165447443

push

github

bluca
compress: write sparse files when decompressing to regular files

Core dumps are often very sparse, containing large zero-filled regions
whose actual disk usage can be significantly reduced by preserving
holes. Previously, decompress_stream() always wrote dense output,
expanding all zero regions into allocated disk blocks.

Each decompression backend (xz, lz4, zstd) now auto-detects whether the
output fd is suitable for sparse writes via a shared should_sparse()
helper. The check requires both S_ISREG (regular file) and !O_APPEND,
since O_APPEND causes write() to ignore the file position set by
lseek(), which would collapse the holes and corrupt the output. For
pipes, sockets, and append-mode files, dense writes are preserved via
loop_write_full() with USEC_INFINITY timeout, matching the original
behavior. After sparse decompression, finalize_sparse() sets the final
file size to account for any trailing holes.

This is transparent to callers — all public signatures are unchanged.
coredumpctl benefits automatically:
- coredumpctl debug: temp file in /var/tmp is now sparse
- coredumpctl dump -o file: output file is now sparse
- coredumpctl dump > file: redirected stdout is now sparse
- coredumpctl dump | ...: pipe output unchanged (dense)
- coredumpctl dump >> file: append mode, falls back to dense

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-developed-by: Codex (GPT-5) <noreply@openai.com>

123 of 132 new or added lines in 2 files covered. (93.18%)

5704 existing lines in 82 files now uncovered.

319660 of 442111 relevant lines covered (72.3%)

1196031.58 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
89.84
-0.32% src/basic/compress.c
4
96.58
-0.43% src/test/test-compress.c

Coverage Regressions

Lines Coverage ∆ File
968
0.0
0.0% src/vmspawn/vmspawn.c
759
73.8
0.36% src/nspawn/nspawn.c
515
43.72
-0.21% src/imds/imdsd.c
499
68.91
-0.16% src/tmpfiles/tmpfiles.c
295
36.29
-0.37% src/core/swap.c
244
71.94
-0.48% src/sysusers/sysusers.c
240
80.4
-0.07% src/sysext/sysext.c
218
54.29
-0.86% src/sysupdate/updatectl.c
200
65.13
-0.36% src/fstab-generator/fstab-generator.c
134
80.7
0.07% src/libsystemd/sd-varlink/sd-varlink.c
126
64.78
-0.42% src/imds/imds-tool.c
116
78.66
0.38% src/varlinkctl/varlinkctl.c
113
79.13
0.52% src/coredump/coredumpctl.c
109
69.55
10.54% src/repart/repart.c
107
37.04
-0.13% src/shared/generator.c
87
13.38
0.07% src/network/networkd-wwan-bus.c
85
92.32
0.05% src/libsystemd/sd-journal/journal-file.c
85
53.73
-10.75% src/machine/machined-dbus.c
60
85.75
-0.11% src/libsystemd/sd-journal/sd-journal.c
57
82.16
3.8% src/machine/machine-varlink.c
53
50.68
0.14% src/udev/scsi_id/scsi_serial.c
36
83.08
1.05% src/tpm2-setup/tpm2-setup.c
35
74.76
0.12% src/basic/recurse-dir.c
34
40.11
-18.68% src/ask-password/ask-password.c
33
74.81
-3.14% src/bootctl/bootctl-install.c
33
79.2
-2.73% src/resolve/resolved-manager.c
33
0.0
0.0% src/tpm2-setup/tpm2-clear.c
27
0.0
0.0% src/bless-boot/boot-check-no-failures.c
25
64.61
-2.08% src/core/dbus-unit.c
25
12.61
0.0% src/ssh-generator/ssh-proxy.c
23
49.33
4.13% src/battery-check/battery-check.c
20
71.74
1.84% src/nspawn/nspawn-register.c
19
79.18
-0.91% src/basic/namespace-util.c
19
88.07
-0.08% src/nss-myhostname/nss-myhostname.c
17
57.14
-2.86% src/basic/confidential-virt.c
17
74.98
-0.58% src/core/cgroup.c
16
30.0
1.08% src/shared/smack-util.c
15
57.14
-2.41% src/shared/ptyfwd.c
14
67.96
-3.4% src/machine/machine-dbus.c
14
93.15
-0.03% src/test/test-path.c
12
93.71
0.0% src/basic/uid-range.c
12
71.28
-0.47% src/resolve/resolved-dns-scope.c
12
79.19
-3.47% src/resolve/resolved-dns-zone.c
11
70.43
-1.37% src/machine/machine.c
10
79.85
-0.6% src/network/networkd-dhcp-server-static-lease.c
10
71.15
0.0% src/shared/selinux-util.c
8
83.35
-0.97% src/resolve/resolved-link.c
7
53.62
-0.47% src/core/dbus-manager.c
7
61.35
-1.89% src/core/scope.c
7
3.6
-2.1% src/resolve/resolved-dnssd.c
7
94.01
3.75% src/shared/options.c
6
98.14
0.17% src/test/test-options.c
5
94.12
0.56% src/basic/xattr-util.c
5
69.16
-0.28% src/network/networkd-ndisc.c
5
86.67
5.27% src/tmpfiles/test-offline-passwd.c
5
86.47
-0.39% src/udev/udev-manager.c
4
67.86
-1.79% src/core/dbus-job.c
4
98.72
0.0% src/resolve/test-dns-cache.c
4
88.46
-1.18% src/shared/serialize.c
4
67.93
-1.17% src/udev/udev-builtin-blkid.c
3
78.71
1.24% src/core/job.c
3
0.0
0.0% src/vmspawn/vmspawn-util.h
2
88.1
-0.79% src/basic/pidref.c
2
69.59
-0.06% src/core/exec-invoke.c
2
76.08
-0.16% src/journal/journald-manager.c
2
78.87
0.38% src/journal-remote/journal-upload-journal.c
2
75.76
-0.09% src/libsystemd/sd-bus/sd-bus.c
2
94.85
-2.06% src/libsystemd/sd-bus/test-bus-peersockaddr.c
2
43.8
-0.53% src/resolve/resolved-mdns.c
2
50.0
-25.0% src/shared/find-esp.h
1
90.87
-0.12% src/basic/cgroup-util.c
1
82.0
-2.0% src/basic/errno-util.h
1
82.82
-0.1% src/basic/process-util.c
1
94.29
0.0% src/basic/time-util.h
1
63.26
-0.05% src/core/socket.c
1
77.8
-0.21% src/libsystemd/sd-json/json-util.c
1
84.49
-0.03% src/libsystemd/sd-json/sd-json.c
1
86.47
-0.12% src/network/networkd-nexthop.c
1
78.19
-0.41% src/network/wait-online/wait-online-manager.c
1
78.94
0.0% src/resolve/resolved-dns-transaction.c
1
81.4
-1.16% src/shared/journal-util.c
1
0.0
0.0% src/vmspawn/vmspawn-settings.c
Jobs
ID Job ID Ran Files Coverage
1 24165447443.1 09 Apr 2026 02:50AM UTC 2023
72.3
GitHub Action Run
Source Files on build 24165447443
  • Tree
  • List 2023
  • Changed 128
  • Source Changed 52
  • Coverage Changed 125
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24165447443
  • 9bd72b61 on github
  • Prev Build on main (#24013684156)
  • Next Build on main (#24219823122)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc