plymouthd crashes on boot
Submitted by Dāvis
Assigned to Ray Strode @halfline
Description
plymouthd crashes on boot, but sometimes it works on shutdown/reboot. Also some while ago (maybe different config, idk) it sometimes worked, but now lately not at all. I've complied latest git version from master branch. Using proprietary nvidia drivers 352.30, with initramfs, Linux 4.1.4 and rEFInd UEFI bootloader, fb 0 EFI VGA
#0 0x00007f3002d3ca3c in ply_boot_splash_unset_keyboard (splash=splash@entry=0x112fd70) at ply-boot-splash.c:120
#1 0x00007f3002d3d195 in ply_boot_splash_free (splash=0x112fd70) at ply-boot-splash.c:404
#2 0x000000000040b1d5 in load_built_in_theme (state=<optimized out>) at main.c:1644
#3 show_theme (state=state@entry=0x7fffb2b4d630, theme_path=theme_path@entry=0x40f8a0 "/usr/share/plymouth/themes/default.plymouth") at main.c:1700
#4 0x000000000040b71d in show_default_splash (state=0x7fffb2b4d630) at main.c:475
#5 0x000000000040ce10 in show_default_splash (state=0x7fffb2b4d630) at main.c:946
#6 show_splash (state=0x7fffb2b4d630) at main.c:956
#7 0x00007f3002d33d4e in create_text_displays_for_terminal (terminal=0x112f630, manager=0x112f580) at ply-device-manager.c:640
#8 create_devices_for_terminal_and_renderer_type (manager=0x112f580, device_path=<optimized out>, terminal=0x112f630, renderer_type=<optimized out>)
at ply-device-manager.c:692
#9 0x00007f3002f4ba86 in ply_event_loop_handle_met_status_for_source (status=PLY_EVENT_LOOP_FD_STATUS_HAS_DATA, source=0x112f4c0, loop=0x1128150)
at ply-event-loop.c:1034
#10 ply_event_loop_process_pending_events (loop=loop@entry=0x1128150) at ply-event-loop.c:1279
#11 0x00007f3002f4bf38 in ply_event_loop_run (loop=0x1128150) at ply-event-loop.c:1310
#12 0x0000000000404fd6 in main (argc=<optimized out>, argv=<optimized out>) at main.c:2308
Dump of assembler code for function ply_boot_splash_unset_keyboard: 0x00007f3002d3ca38 <+0>: mov rax,QWORD PTR [rdi+0x10] => 0x00007f3002d3ca3c <+4>: mov rax,QWORD PTR [rax+0x18] 0x00007f3002d3ca40 <+8>: test rax,rax
Looks like splash->plugin_interface is NULL pointer
118 ply_boot_splash_unset_keyboard (ply_boot_splash_t *splash) 119 { 120 if (splash->plugin_interface->unset_keyboard == NULL) 121 return; 122 123 splash->plugin_interface->unset_keyboard (splash->plugin, splash->keyboard); 124 }
from journal
kernel: vgaarb: setting as boot device: PCI:0000:01:00.0 kernel: vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none kernel: vgaarb: loaded kernel: vgaarb: bridge control possible 0000:01:00.0 kernel: efifb: probing for efifb kernel: efifb: framebuffer at 0xdf000000, mapped to 0xffffc90001000000, using 3072k, total 3072k kernel: efifb: mode is 1024x768x32, linelength=4096, pages=1 kernel: efifb: scrolling: redraw kernel: efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0 kernel: Console: switching to colour frame buffer device 128x48 kernel: fb0: EFI VGA frame buffer device kernel: GHES: HEST is not enabled! kernel: Linux agpgart interface v0.103 systemd[1]: Started udev Coldplug all Devices. systemd[1]: Starting Show Plymouth Boot Screen... systemd-journal[75]: Journal started plymouthd[114]: [main.c:1891] check_verbosity:redirecting debug output to /dev/tty1 systemd[1]: Reached target System Initialization. systemd[1]: Started Journal Service. plymouth[120]: [ply-event-loop.c:759] ply_event_loop_stop_watching_fd:stopping watching fd 6 plymouth[120]: [ply-event-loop.c:775] ply_event_loop_stop_watching_fd:removing destination for fd 6 kernel: serio: i8042 KBD port at 0x60,0x64 irq 1 plymouth[120]: [ply-event-loop.c:759] ply_event_loop_stop_watching_fd:stopping watching fd 6 plymouth[120]: [ply-event-loop.c:775] ply_event_loop_stop_watching_fd:removing destination for fd 6 plymouth[120]: [./ply-boot-client.c:795] ply_boot_client_detach_from_event_loop:detaching from event loop kernel: nvidia: module license 'NVIDIA' taints kernel. systemd[1]: Started Show Plymouth Boot Screen. systemd[1]: Reached target Basic System. kernel: vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem kernel: [drm] Initialized nvidia-drm 0.0.0 20150116 for 0000:01:00.0 on minor 0 kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module 352.30 Tue Jul 21 18:53:45 PDT 2015 plymouth[731]: [ply-event-loop.c:759] ply_event_loop_stop_watching_fd:stopping watching fd 6 plymouth[731]: [ply-event-loop.c:775] ply_event_loop_stop_watching_fd:removing destination for fd 6 plymouth[731]: [ply-event-loop.c:1060] ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x403310 for fd 6 plymouth[731]: [ply-event-loop.c:759] ply_event_loop_stop_watching_fd:stopping watching fd 6 plymouth[731]: [ply-event-loop.c:768] ply_event_loop_stop_watching_fd:source for fd 6 is already disconnected plymouth[731]: error: unexpectedly disconnected from boot status daemon plymouth[731]: [./plymouth.c:414] on_disconnect:disconnect plymouth[731]: [ply-event-loop.c:1064] ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x403310 for fd plymouth[731]: [ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (0, (nil), 0x403310) of fd 6 plymouth[731]: [ply-event-loop.c:1144] ply_event_loop_free_destinations_for_source:freeing destination (1, 0x402b80, (nil)) of fd 6 systemd[1]: plymouth-start.service: Main process exited, code=dumped, status=11/SEGV systemd[1]: plymouth-start.service: Unit entered failed state. systemd[1]: plymouth-start.service: Failed with result 'core-dump'. systemd[1]: Started Tell Plymouth To Write Out Runtime Data. plymouth[731]: [./ply-boot-client.c:795] ply_boot_client_detach_from_event_loop:detaching from event loop systemd[1]: Reached target System Initialization. systemd-coredump[799]: Process 117 (plymouthd) of user 0 dumped core. systemd[1]: Started NVIDIA Persistence Daemon. systemd[1]: Starting Hold until boot process finishes up... systemd[1]: Starting Terminate Plymouth Boot Screen... plymouth[824]: [./ply-boot-client.c:183] ply_boot_client_connect:could not connect to /org/freedesktop/plymouthd: Connection refused plymouth[824]: [./ply-boot-client.c:184] ply_boot_client_connect:trying old fallback path /ply-boot-protocol plymouth[824]: [./ply-boot-client.c:190] ply_boot_client_connect:could not connect to /ply-boot-protocol: Connection refused plymouth[824]: [./plymouth.c:1121] main:daemon not running plymouth[824]: [./plymouth.c:1132] main:no need to wait systemd[1]: Started Hold until boot process finishes up. plymouth[825]: [./ply-boot-client.c:183] ply_boot_client_connect:could not connect to /org/freedesktop/plymouthd: Connection refused plymouth[825]: [./ply-boot-client.c:184] ply_boot_client_connect:trying old fallback path /ply-boot-protocol plymouth[825]: [./ply-boot-client.c:190] ply_boot_client_connect:could not connect to /ply-boot-protocol: Connection refused plymouth[825]: [./plymouth.c:1121] main:daemon not running plymouth[825]: [./ply-boot-client.c:795] ply_boot_client_detach_from_event_loop:detaching from event loop systemd[1]: Started Terminate Plymouth Boot Screen. systemd[1]: Started Simple Desktop Display Manager. systemd[1]: Started Login Service. systemd-logind[822]: New seat seat0.