[Bug 1794292] Re: plymouthd crashed with SIGSEGV in /sbin/plymouthd:11 in ply_renderer_set_handler_for_input_source -> ply_keyboard_stop_watching_for_renderer_input -> ply_keyboard_stop_watching_for_input -> ply_device_manager_deactivate_keyboards -> on_deactivate
Mauricio Faria de Oliveira
mfo at canonical.com
Mon Apr 15 22:11:53 UTC 2019
Hi Łukasz,
I've tested the bionic/cosmic-proposed packages with disk encryption.
Both the updates/proposed packages still show the password prompt,
and read it correctly, and move forward to the login screen.
* One caveat here, read on to the Cosmic's details.
I could reproduce the problem with plymouth in the initramfs with
Gert's tip of using 'DeviceTimeout 1' in /etc/plymouth/plymouthd.conf,
and forcing initramfs-tools hooks _not_ to copy gpu/drm modules.
All that in VMs with Bionic/Cosmic desktop installed from the ISO,
with disk encryption enabled in the installer.
e.g.,
$ virt-install --name plymouth-lp1794292-<bionic|cosmic> \
--vcpus 2 --memory 4096 --disk size=16 \
--network bridge=virbr0,model=virtio \
--graphics vnc,port=5911,listen=0.0.0.0 \
--cdrom ~/Downloads/ubuntu-<18.04.2|18.10>-desktop-amd64.iso
crypt disk setup:
$ lsblk --ascii /dev/vda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 16G 0 disk
|-vda1 252:1 0 731M 0 part /boot
|-vda2 252:2 0 1K 0 part
`-vda5 252:5 0 15.3G 0 part
`-vda5_crypt 253:0 0 15.3G 0 crypt
|-ubuntu--vg-root 253:1 0 14.3G 0 lvm /
`-ubuntu--vg-swap_1 253:2 0 976M 0 lvm [SWAP]
$ sudo dmsetup table
vda5_crypt: 0 32047104 crypt aes-xts-plain64 <...zeroes...> 0 252:5 4096 1 allow_discards
ubuntu--vg-swap_1: 0 1998848 linear 253:0 30025728
ubuntu--vg-root: 0 30023680 linear 253:0 2048
initramfs setup (see commented lines with leading '#copy...')
$ cat /etc/plymouth/plymouthd.conf
DeviceTimeout 1
$ sudo grep -r -e 'copy_modules.*gpu' -e 'copy_modules.*drm' /usr/share/initramfs-tools/
/usr/share/initramfs-tools/hooks/framebuffer:#copy_modules_dir kernel/drivers/gpu
/usr/share/initramfs-tools/hooks/plymouth:#copy_modules_dir kernel/drivers/gpu/drm mga r128 savage sis tdfx via
And plymouth debugging enabled in kernel cmdline to check logs:
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.18.0-15-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash plymouth.debug=file:/run/plymouth.log vt.handoff=1
bionic-updates:
---
plymouth asks for encryption password, reads it,
goes on filling up to 3 progress-dots and freezes.
login screen didn't come up.
logged in via ssh, and checked plymouth logs,
it stopped in 'deactivating keyboards' as before.
$ dpkg -s plymouth | grep ^Version:
Version: 0.9.3-1ubuntu7.18.04.1
$ sudo tail /run/plymouth.log
[ply-boot-server.c:436] ply_boot_connection_on_request:got update request
[main.c:218] on_update:updating status to 'snapd.seeded.service'
[ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x5641e79dad20 for fd 15
[ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x5641e79dad20 for fd 15
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x5641e79dae80, 0x5641e79dad20) of fd 15
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 15 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 816 (/bin/plymouth deactivate) with parent pid 807 (/usr/sbin/gdm3)
[ply-boot-server.c:494] ply_boot_connection_on_request:got deactivate request
[main.c:1358] on_deactivate:deactivating
[ply-device-manager.c:967] ply_device_manager_deactivate_keyboards:deactivating keyboards
bionic-proposed:
---
plymouth (still) asks for encryption password and reads it,
goes on filling up dots, then login screen comes up.
plymouth logs show successful completion/exit.
$ dpkg -s plymouth | grep ^Version:
Version: 0.9.3-1ubuntu7.18.04.2
$ sudo tail /run/plymouth.log
[sudo] password for ubuntu:
[ply-device-manager.c:551] ply_device_manager_free:freeing device manager
[ply-renderer.c:92] ply_renderer_free:Unloading renderer backend plugin
[ply-event-loop.c:965] ply_event_loop_stop_watching_for_timeout:no matching timeout found for removal
[main.c:1254] quit_program:exiting event loop
[ply-boot-server.c:350] ply_boot_connection_on_quit_complete:quit complete
[main.c:2402] main:exited event loop
[ply-boot-splash.c:388] ply_boot_splash_free:freeing splash
[main.c:2412] main:freeing terminal session
[ply-terminal-session.c:535] ply_terminal_session_stop_logging:stopping logging of incoming console messages
[main.c:2418] main:exiting with code 0
cosmic-updates:
---
same thing than bionic-updates, encryption password is read correctly,
but no gdm screen, plymouth logs shows it stopped in deactivating keyboards.
$ sudo tail /run/plymouth.log
[ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x555d116b0e60, 0x555d116b0d00) of fd 14
[ply-event-loop.c:643] ply_event_loop_remove_source_node:failed to delete fd 14 from epoll watch list: Bad file descriptor
[ply-boot-server.c:388] print_connection_process_identity:connection is from pid 1083 (/bin/plymouth deactivate) with parent pid 1073 (/usr/sbin/gdm3)
[ply-boot-server.c:494] ply_boot_connection_on_request:got deactivate request
[main.c:1360] on_deactivate:deactivating
[ply-device-manager.c:1013] ply_device_manager_pause:ply_device_manager_pause() called, stopping watching for udev events
[ply-event-loop.c:759] ply_event_loop_stop_watching_fd:stopping watching fd 7
[ply-event-loop.c:775] ply_event_loop_stop_watching_fd:removing destination for fd 7
[ply-event-loop.c:784] ply_event_loop_stop_watching_fd:no more destinations remaing for fd 7, removing source
[ply-device-manager.c:993] ply_device_manager_deactivate_keyboards:deactivating keyboards
cosmic-proposed:
---
this *should* be like bionic-proposed.
but there's no login screen likely due to a problem
with qemu video emulation/cirrus driver.
it looks like the cirrus driver after some point
stopped successful probing the emulated video device
at the first attempt:
$ dmesg | grep cirrus
[ 16.599610] fb: switching to cirrusdrmfb from EFI VGA
<first attempt, when module first loads>
[ 16.600809] [drm:cirrus_device_init [cirrus]] *ERROR* can't reserve VRAM
[ 16.600814] cirrus 0000:00:02.0: Fatal error during GPU init: -6
<second attempt, when I manually bound the device to the driver>
< $ echo 0000:00:02.0 | sudo tee /sys/bus/pci/drivers/cirrus/bind >
[ 277.933564] fbcon: cirrusdrmfb (fb0) is primary device
[ 277.948868] cirrus 0000:00:02.0: fb0: cirrusdrmfb frame buffer device
[ 277.968224] [drm] Initialized cirrus 1.0.0 20110418 for 0000:00:02.0 on minor 0
when it works, from time to time, this is seen at first attempt
instead:
$ dmesg | grep cirrus
[ 14.571918] fbcon: cirrusdrmfb (fb0) is primary device
[ 14.665434] cirrus 0000:00:02.0: fb0: cirrusdrmfb frame buffer device
[ 14.688436] [drm] Initialized cirrus 1.0.0 20110418 for 0000:00:02.0 on minor 0
this causes the DRM device not to show up,
and in Cosmic the gdm systemd unit has this
'ExecStartPre=gdm-wait-for-drm' line, so it
keeps waiting forever until I rebind/reload
the cirrus driver to the adapter (then it works).
$ sudo systemctl status gdm
[sudo] password for ubuntu:
● gdm.service - GNOME Display Manager
Loaded: loaded (/lib/systemd/system/gdm.service; static; vendor preset: enabled)
Active: active (running) since Mon 2019-04-15 18:00:30 -03; 11s ago
Process: 788 ExecStartPre=/usr/lib/gdm3/gdm-wait-for-drm (code=exited, status=0/SUCCESS)
Process: 785 ExecStartPre=/usr/share/gdm/generate-config (code=exited, status=0/SUCCESS)
Main PID: 1072 (gdm3)
Tasks: 5 (limit: 4671)
Memory: 4.1M
CGroup: /system.slice/gdm.service
├─1072 /usr/sbin/gdm3
└─1149 /bin/plymouth quit
after I went back to Bionic to double check it,
the same behavior started occuring on Bionic,
_which used to work before_, so I guess it's
more on the QEMU side.
since this is driver-related, I'd say plymouth
is not at fault. from time to time the cirrus
driver binds correctly, though, and it works.
plymouth goes past the 'deactivating keyboards'
point, and sometimes reaches the 'exit 0' mark.
$ sudo tail /run/plymouth.log
[main.c:1423] on_quit:system initialized so saving boot-duration file
[ply-utils.c:728] ply_create_directory:directory '/var/lib/plymouth/' already exists
[main.c:769] get_cache_file_for_mode:returning cache file '/var/lib/plymouth//boot-duration'
[ply-progress.c:214] ply_progress_save_cache:saving progress cache to /var/lib/plymouth//boot-duration
[main.c:1717] tell_systemd_to_stop_printing_details:telling systemd to stop printing details
[main.c:1437] on_quit:closing log
[ply-device-manager.c:1022] ply_device_manager_deactivate_keyboards:deactivating keyboards
[main.c:1443] on_quit:unloading splash
[main.c:1539] toggle_between_splash_and_details:toggling between splash and details
[main.c:1541] toggle_between_splash_and_details:hiding and freeing current splash
$ sudo tail /run/plymouth.log
[main.c:1253] quit_program:cleaning up devices
[ply-device-manager.c:551] ply_device_manager_free:freeing device manager
[ply-event-loop.c:965] ply_event_loop_stop_watching_for_timeout:no matching timeout found for removal
[main.c:1256] quit_program:exiting event loop
[ply-boot-server.c:350] ply_boot_connection_on_quit_complete:quit complete
[main.c:2406] main:exited event loop
[ply-boot-splash.c:388] ply_boot_splash_free:freeing splash
[main.c:2416] main:freeing terminal session
[ply-terminal-session.c:535] ply_terminal_session_stop_logging:stopping logging of incoming console messages
[main.c:2422] main:exiting with code 0
Hope this helps,
Mauricio
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to plymouth in Ubuntu.
https://bugs.launchpad.net/bugs/1794292
Title:
plymouthd crashed with SIGSEGV in /sbin/plymouthd:11 in
ply_renderer_set_handler_for_input_source ->
ply_keyboard_stop_watching_for_renderer_input ->
ply_keyboard_stop_watching_for_input ->
ply_device_manager_deactivate_keyboards -> on_deactivate
Status in plymouth package in Ubuntu:
Fix Released
Status in plymouth source package in Bionic:
Fix Committed
Status in plymouth source package in Cosmic:
Fix Committed
Bug description:
[Impact]
plymouth has been crashing a whole bunch and notifying users about it.
[Test Case]
We don't have a specific test case but luckily :-( there are thousands of crashes in the Error Tracker about this issue. Subsequently, it should be enough to verify that the new version of plymouth doesn't appear in the following bucket:
https://errors.ubuntu.com/problem/6aa06f1bc51946c787a01d38e58bc76114555334
[Regression Potential]
The fix has to do with keyboard handling so a possible regression would be the inability to unlock your disks.
Original Description
--------------------
A green Xubuntu splash screen with a spinning circle normally appears on boot up.
Now just a blank black screen shows until the login box appears. On
logging in, the desktop appears as normal but an error message pops up
offering to report a bug to developers.
Description: Ubuntu Cosmic Cuttlefish (development branch)
Release: 18.10
All packages up-to-date as of 25 September 2018 14:00 BST
Errors Tracker:
https://errors.ubuntu.com/problem/6aa06f1bc51946c787a01d38e58bc76114555334
ProblemType: CrashDistroRelease: Ubuntu 18.10
Package: plymouth 0.9.3-1ubuntu8
ProcVersionSignature: Ubuntu 4.18.0-7.8-generic 4.18.5
Uname: Linux 4.18.0-7-generic x86_64
ApportVersion: 2.20.10-0ubuntu11
Architecture: amd64
CrashCounter: 1
Date: Tue Sep 25 13:47:47 2018
DefaultPlymouth: /usr/share/plymouth/themes/xubuntu-logo/xubuntu-logo.plymouth
ExecutablePath: /sbin/plymouthd
MachineType: Acer Veriton N280G
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.18.0-7-generic root=UUID=ff708f10-3fbc-4fa2-b7a5-93f0dd61eb21 ro splash quiet vt.handoff=1
ProcCmdline: @sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
ProcEnviron:
LANG=en_GB.UTF-8
PATH=(custom, no user)
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.18.0-7-generic root=UUID=ff708f10-3fbc-4fa2-b7a5-93f0dd61eb21 ro splash quiet vt.handoff=1
SegvAnalysis:
Segfault happened at: 0x7f05452a07f9 <ply_renderer_set_handler_for_input_source+25>: mov 0x78(%rax),%rax
PC (0x7f05452a07f9) ok
source "0x78(%rax)" (0x00000078) not located in a known VMA region (needed readable region)!
destination "%rax" ok
SegvReason: reading NULL VMA
Signal: 11SourcePackage: plymouth
StacktraceTop:
ply_renderer_set_handler_for_input_source () from /lib/x86_64-linux-gnu/libply-splash-core.so.4
ply_keyboard_stop_watching_for_input () from /lib/x86_64-linux-gnu/libply-splash-core.so.4
ply_device_manager_deactivate_keyboards () from /lib/x86_64-linux-gnu/libply-splash-core.so.4
?? ()
?? ()
TextPlymouth: /usr/share/plymouth/themes/xubuntu-text/xubuntu-text.plymouth
Title: plymouthd crashed with SIGSEGV in ply_renderer_set_handler_for_input_source()
UpgradeStatus: Upgraded to cosmic on 2018-08-21 (34 days ago)
UserGroups:
dmi.bios.date: 01/15/2011
dmi.bios.vendor: Acer
dmi.bios.version: P01-A3
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: TPDS03
dmi.board.vendor: Acer
dmi.board.version: To be filled by O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: Acer
dmi.chassis.version: To Be Filled By O.E.M.
dmi.modalias: dmi:bvnAcer:bvrP01-A3:bd01/15/2011:svnAcer:pnVeritonN280G:pvrToBeFilledByO.E.M.:rvnAcer:rnTPDS03:rvrTobefilledbyO.E.M.:cvnAcer:ct3:cvrToBeFilledByO.E.M.:
dmi.product.family: Acer Desktop
dmi.product.name: Veriton N280G
dmi.product.sku: To Be Filled By O.E.M.
dmi.product.version: To Be Filled By O.E.M.
dmi.sys.vendor: Acer
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1794292/+subscriptions
More information about the foundations-bugs
mailing list