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

systemd / systemd / 25026908423
73%

Build:
DEFAULT BRANCH: main
Ran 28 Apr 2026 03:11AM UTC
Jobs 1
Files 2059
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

27 Apr 2026 07:14PM UTC coverage: 71.865% (-0.3%) from 72.175%
25026908423

push

github

daandemeyer
udev: don't assert on worker cap after killing a broken idle worker

manager_can_process_event() considers an event processable if either
there is room below children_max to spawn, or an idle worker exists.
When only the latter holds, event_run() picks the idle worker and
tries device_monitor_send(). If that send fails, event_run() SIGKILLs
the worker, marks it WORKER_KILLED and continues the loop. With no
other idle worker available, it falls through to worker_spawn(),
guarded by:

    assert(hashmap_size(manager->workers) < manager->config.children_max);

The just-killed worker is still in manager->workers until its SIGCHLD
is reaped by on_worker_exit(), so at the cap this assertion trips and
udevd aborts:

    Assertion 'hashmap_size(manager->workers) < manager->config.children_max'
    failed at src/udev/udev-manager.c:635, function event_run(). Aborting.

Instead of asserting, bail out when we are already at the worker
limit. The event remains in EVENT_QUEUED; once the killed worker's
SIGCHLD arrives and frees it from the hashmap, on_post() re-runs
event_queue_start() and the event is retried.

1 of 1 new or added line in 1 file covered. (100.0%)

7309 existing lines in 125 files now uncovered.

322519 of 448782 relevant lines covered (71.87%)

1173939.78 hits per line

Coverage Regressions

Lines Coverage ∆ File
1677
47.95
-25.99% src/repart/repart.c
860
0.0
0.0% src/vmspawn/vmspawn.c
689
72.61
-0.02% src/nspawn/nspawn.c
213
71.55
-0.05% src/dissect/dissect.c
200
0.0
0.0% src/udev/cdrom_id/cdrom_id.c
179
48.92
-0.07% src/storagetm/storagetm.c
137
0.0
0.0% src/shutdown/shutdown.c
135
69.37
-0.04% src/varlinkctl/varlinkctl.c
134
0.0
0.0% src/udev/ata_id/ata_id.c
131
90.96
-0.08% src/shared/format-table.c
126
44.0
-0.04% src/imds/imdsd.c
114
71.86
-0.09% src/measure/measure-tool.c
110
0.0
0.0% src/bless-boot/bless-boot.c
99
79.14
0.05% src/core/job.c
99
0.0
0.0% src/vmspawn/vmspawn-varlink.c
97
50.55
0.01% src/udev/scsi_id/scsi_serial.c
88
69.78
-0.07% src/sbsign/sbsign.c
87
43.97
3.97% src/udev/scsi_id/scsi_id.c
80
64.71
-0.08% src/imds/imds-tool.c
72
67.49
-0.09% src/notify/notify.c
69
0.0
0.0% src/libsystemd-network/test-ndisc-send.c
65
64.6
-0.2% src/udev/dmi_memory_id/dmi_memory_id.c
55
17.46
-0.43% src/factory-reset/factory-reset-tool.c
53
39.78
-0.33% src/ask-password/ask-password.c
49
82.32
-0.03% src/creds/creds.c
47
44.13
-0.16% src/tty-ask-password-agent/tty-ask-password-agent.c
46
76.47
-5.01% src/libsystemd/sd-varlink/varlink-util.c
44
68.88
-0.01% src/tmpfiles/tmpfiles.c
43
66.73
-0.06% src/cgtop/cgtop.c
42
40.4
0.54% src/shared/blockdev-list.c
41
74.21
-0.06% src/cryptenroll/cryptenroll.c
41
77.78
-0.03% src/firstboot/firstboot.c
40
74.01
-0.08% src/bootctl/bootctl.c
40
81.13
-0.07% src/pcrextend/pcrextend.c
39
80.73
-1.4% src/basic/fs-util.c
39
66.19
-0.1% src/import/pull.c
39
0.0
0.0% src/udev/iocost/iocost.c
38
70.19
1.33% src/journal-remote/journal-remote-main.c
38
83.14
-0.06% src/tpm2-setup/tpm2-setup.c
37
69.35
-0.15% src/keyutil/keyutil.c
37
2.33
0.01% src/login/inhibit.c
36
74.89
-0.11% src/validatefs/validatefs.c
35
41.58
-0.04% src/cryptsetup/cryptsetup.c
35
58.33
-0.25% src/vpick/vpick-tool.c
34
75.23
-0.01% src/pcrlock/pcrlock.c
34
65.36
-0.22% src/stdio-bridge/stdio-bridge.c
32
0.0
0.0% src/hibernate-resume/hibernate-resume.c
32
0.0
0.0% src/udev/fido_id/fido_id.c
30
0.0
0.0% src/udev/v4l_id/v4l_id.c
29
72.13
-0.02% src/sysusers/sysusers.c
28
65.09
-0.13% src/import/import.c
27
0.0
0.0% src/binfmt/binfmt.c
27
70.91
-0.03% src/sysupdate/sysupdate.c
26
46.89
-0.19% src/socket-activate/socket-activate.c
25
88.55
-2.47% src/libsystemd/sd-path/path-lookup.c
25
67.55
-0.17% src/mute-console/mute-console.c
23
91.89
-2.51% src/test/test-fs-util.c
23
0.0
0.0% src/udev/mtd_probe/mtd_probe.c
21
74.69
-0.16% src/cgls/cgls.c
21
65.29
-0.28% src/ptyfwd/ptyfwd-tool.c
21
0.0
0.0% src/socket-proxy/socket-proxyd.c
20
67.95
-0.05% src/import/importctl.c
20
77.81
-0.03% src/journal-remote/journal-gatewayd.c
20
50.0
-0.68% src/oom/oomd.c
17
0.0
0.0% src/journal/bsod.c
16
63.3
-0.33% src/core/executor.c
16
38.46
-0.47% src/growfs/growfs.c
15
12.61
0.0% src/ssh-generator/ssh-proxy.c
15
0.0
0.0% src/test/test-chase-manual.c
14
53.25
-0.6% src/journal/cat.c
13
0.0
0.0% src/ac-power/ac-power.c
13
50.0
-0.56% src/detect-virt/detect-virt.c
13
76.7
-0.22% src/libsystemd/sd-journal/test-journal-append.c
12
57.08
-0.2% src/random-seed/random-seed-tool.c
11
63.33
0.73% src/core/socket.c
11
90.91
-0.07% src/escape/escape-tool.c
11
78.16
-0.25% src/machine-id-setup/machine-id-setup-main.c
11
84.71
-0.5% src/network/networkd-link.c
11
70.58
-1.28% src/resolve/resolved-dns-scope.c
11
50.0
-0.42% src/ssh-generator/ssh-issue.c
11
71.0
-0.13% src/sysctl/sysctl.c
11
55.48
-0.05% src/sysupdate/updatectl.c
11
98.19
-0.2% src/test/test-varlink.c
10
66.44
-0.23% src/core/service.c
10
55.08
-0.12% src/hostname/hostnamectl.c
10
65.45
-0.18% src/import/import-fs.c
10
95.05
0.08% src/test/test-format-table.c
9
77.22
-0.04% src/report/report.c
9
63.36
-1.59% src/shared/loop-util.c
9
94.85
-0.15% src/shared/options.c
8
37.93
-1.05% src/hwdb/hwdb.c
8
77.17
-0.07% src/libudev/test-libudev.c
8
83.11
-0.61% src/resolve/resolved-link.c
8
45.07
-0.22% src/timedate/timedatectl.c
8
58.43
-1.34% src/timesync/timesyncd-manager.c
5
66.67
-0.26% src/network/generator/network-generator-main.c
5
98.35
0.16% src/test/test-options.c
5
57.38
-0.69% src/update-done/update-done.c
4
74.69
-0.18% src/core/cgroup.c
4
68.13
-0.2% src/import/export.c
4
45.76
-0.9% src/oom/oomctl.c
4
98.72
0.0% src/resolve/test-dns-cache.c
3
88.7
-0.04% src/delta/delta.c
3
91.41
-0.05% src/id128/id128.c
3
86.36
-0.3% src/tmpfiles/test-offline-passwd.c
2
88.1
-0.79% src/basic/pidref.c
2
76.07
-0.36% src/core/dbus.c
2
82.67
-0.38% src/core/path.c
2
85.71
-14.29% src/libsystemd/sd-path/path-lookup.h
2
83.64
-0.41% src/oom/oomd-util.c
2
96.46
-0.25% src/shared/calendarspec.c
1
82.0
-2.0% src/basic/errno-util.h
1
77.03
-0.68% src/basic/io-util.c
1
82.82
-0.1% src/basic/process-util.c
1
78.49
3.02% src/journal-remote/journal-upload-journal.c
1
83.52
-0.04% src/libsystemd/sd-event/sd-event.c
1
86.05
0.0% src/libsystemd/sd-journal/sd-journal.c
1
88.35
-0.38% src/network/networkd-address-generation.c
1
83.83
-0.12% src/network/networkd-dhcp-prefix-delegation.c
1
88.75
-0.25% src/network/networkd-neighbor.c
1
86.49
-0.12% src/network/networkd-nexthop.c
1
92.0
-0.11% src/path/path-tool.c
1
84.21
-5.26% src/shared/dissect-image.h
1
28.61
-0.13% src/udev/udev-builtin-net_id.c
1
81.0
-0.24% src/udev/udev-node.c
Jobs
ID Job ID Ran Files Coverage
1 25026908423.1 28 Apr 2026 03:11AM UTC 2059
71.87
GitHub Action Run
Source Files on build 25026908423
  • Tree
  • List 2059
  • Changed 169
  • Source Changed 109
  • Coverage Changed 162
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25026908423
  • 181a9f65 on github
  • Prev Build on main (#24944119124)
  • Next Build on main (#25084703852)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc