Bug 2513853
| Summary: | weston 15.0.1 crashes with SEGV during initial-setup on Raspberry Pi 4 (input device permission failure triggers Mesa null deref on teardown) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Jaroslav Groman <jgroman> | ||||
| Component: | weston | Assignee: | Erico Nunes <ernunes> | ||||
| Status: | CLOSED DUPLICATE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 45 | CC: | ernunes, negativo17, ngompa13, rhughes, tdawson | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | aarch64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | --- | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2026-08-11 13:26:49 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
Created attachment 2154236 [details]
F45 Rawhide 20260807.n.0 boot log
Duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=2358688 Fix Update /usr/libexec/initial-setup/run-gui-backend, line 27: From: weston --config=${CONFIG_FILE} --socket=wl-firstboot-0 To: LIBSEAT_BACKEND=noop weston --config=${CONFIG_FILE} --socket=wl-firstboot-0 --seat=seat0 *** This bug has been marked as a duplicate of bug 2358688 *** |
On first boot of the Fedora 45 Xfce spin on a Raspberry Pi 4, initial-setup launches Weston 15.0.1 as the Wayland compositor for the first-boot GUI wizard. Weston fails to open any input devices, attempts to shut down, and crashes with SIGSEGV during Mesa/Gallium context teardown. After the crash, initial-setup disables itself and falls through to LightDM, so the system does eventually reach a usable login screen, but the first-boot setup wizard is skipped entirely. Since initial-setup is skipped there is no user created and there is no way to login. The only workaround is to create boot device with arm_image installer `--norootpass` CLI option which would create root user with empty password. Reproducible: Always Steps to Reproduce: 1. Write Fedora 45 Xfce aarch64 image to an SD card 2. Boot on a Raspberry Pi 4 Model B 3. The initial-setup service starts and launches Weston 4. Weston crashes, no initial user is created and login screen is displayed Actual Results: Attaching complete boot log. Weston logs: [00:02:01.233] warning: no input devices on entering Weston. Possible causes: - no permissions to read /dev/input/event* - seats misconfigured (Weston backend option 'seat', udev device property ID_SEAT) [00:02:01.233] failed to create input devices [00:02:01.237] fatal: failed to create compositor backend Weston then terminates with signal 11/SEGV. Core dump stack trace: Stack trace of thread 989: #0 0x0000000000000070 n/a (n/a + 0x0) #1 0x0000ffffa9383e40 u_transfer_helper_transfer_unmap (libgallium-26.2.0.so + 0xeb3e40) #2 0x0000aaaafcd867d0 n/a (n/a + 0x0) #3 0x0000aaaafcd867d0 n/a (n/a + 0x0) #4 0x0000ffffa86003b8 st_destroy_context_priv (libgallium-26.2.0.so + 0x1303b8) Expected Results: Either: - Weston should have permission to access input devices when launched by initial-setup, or - Weston should shut down gracefully without crashing when input devices are unavailable Additional Information: Analysis There are two bugs here: 1. Permission/seat configuration issue: Weston is launched by initial-setup as root (UID 0, session 4) on /dev/tty7 via libseat/logind, but none of the 9 input devices are accepted. Weston logs not using input device for every /dev/input/event*. This suggests a seat assignment or udev rule mismatch -- the devices may not be assigned to the seat Weston is using. 2. Mesa crash on teardown: When Weston fails and attempts to tear down its GL context, Mesa's Gallium state tracker dereferences a null pointer in u_transfer_helper_transfer_unmap() called from st_destroy_context_priv(). This is a Mesa bug -- context destruction should not crash even if initialization was incomplete. System Information - Hardware: Raspberry Pi 4 Model B Rev 1.5 (BCM2711, 4GB) - Kernel: 7.2.0-0.rc6.260806g0d8395707651.51.fc45.aarch64 - systemd: 261.2-1.fc45 - Weston: 15.0.1-3.fc45 - Mesa: 26.2.0-1.fc45 (libgallium, V3D 4.2.14.0 via vc4-drm) - libseat: seatd-0.9.3-2.fc45 (using logind backend) - LightDM: display manager (works fine after Weston crash) - EGL: Mesa 1.5, GL ES 3.1, GL renderer V3D 4.2.14.0 - U-Boot BIOS: 2026.10-rc1 - RPi firmware: 2026-07-23 Additional Notes - Weston successfully opens /dev/dri/card2 (vc4), initializes the GL renderer with Mesa 26.2.0, and sets up the DRM backend with atomic modesetting before the input device failure occurs. - The crash happens during teardown, not during initialization. The null deref in Mesa st_destroy_context_priv suggests the Gallium context was partially initialized when Weston called the cleanup path.