[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
Wed Apr 10 23:14:57 UTC 2019


Test Case
=========

For example, this Bionic Server VM:

	$ uvt-simplestreams-libvirt sync release=bionic arch=amd64
	$ uvt-kvm create --memory 2048 --cpu 2 --disk 8 bionic-lp1794292 release=bionic arch=amd64

        $ uvt-kvm ssh bionic-lp1794292

It has a virtual Cirrus VGA adapter:

	$ lspci | grep VGA
	00:02.0 VGA compatible controller: Cirrus Logic GD 5446

Install its DRM module, which should not load by default:

	$ sudo apt-get -y install linux-modules-extra-$(uname -r)
	$ echo 'blacklist cirrus' | sudo tee /etc/modprobe.d/blacklist-cirrus.conf

Update GRUB to use the default console (remove 'console=' options)

	$ sudo vim /etc/default/grub /etc/default/grub.d/*
	$ sudo update-grub
	$ sudo reboot

	$ cat /proc/cmdline 
	BOOT_IMAGE=/boot/vmlinuz-4.15.0-47-generic root=UUID=d7976e5d-71dc-4f7e-82d6-a2c292e0975e ro quiet splash vt.handoff=1

Upon boot, only the FB device is availble, not DRI/DRM:

	$ ls -l /dev/fb0
	crw-rw---- 1 root video 29, 0 Apr 10 22:43 /dev/fb0

	$ ls -l /dev/dri
	ls: cannot access '/dev/dri': No such file or directory

The modules exist but are not loaded:

	$ lspci -s 00:02.0 -k
	00:02.0 VGA compatible controller: Cirrus Logic GD 5446
		Subsystem: Red Hat, Inc. QEMU Virtual Machine
		Kernel modules: cirrusfb, cirrus

	$ lsmod | grep cirrus
	$

This is the test case.  Essentially:

	1) start plymouthd
	2) wait the default device timeout (5 seconds), so it detects '/dev/fb0'
	3) show splash, so it activates keyboard
	4) load module, so it detects '/dev/dri/card0'
	5) deactivate, so it deactivates keyboard and segfaults (or not)

  Give it a little time between each command to process events.
	
	sudo plymouthd --no-daemon --debug --kernel-command-line=splash &
	sleep 10
	sudo plymouth --show-splash
	sleep 10
	sudo modprobe cirrus
	sleep 10
	sudo plymouth deactivate
	<segfaults in a few seconds>

  With the same stack trace:

	#0  0x00007fdf0ef68f09 in ply_renderer_set_handler_for_input_source (renderer=<optimized out>, input_source=0x5636eaefc2a0, handler=0x0, user_data=0x0) at ply-renderer.c:406
	#1  0x00007fdf0ef62cbf in ply_keyboard_stop_watching_for_renderer_input (keyboard=0x5636eaefc6a0) at ply-keyboard.c:319
	#2  ply_keyboard_stop_watching_for_input (keyboard=keyboard at entry=0x5636eaefc6a0) at ply-keyboard.c:406
	#3  0x00007fdf0ef6221b in ply_device_manager_deactivate_keyboards (manager=0x5636eaeff6d0) at ply-device-manager.c:976
	#4  0x00005636e92d3ec3 in on_deactivate (state=0x7fff1c458390, deactivate_trigger=<optimized out>) at main.c:1361
	#5  0x00005636e92cdb9b in ply_boot_connection_on_request (connection=0x5636eaf12360) at ply-boot-server.c:504
	#6  0x00007fdf0f177fbe in ply_event_loop_handle_met_status_for_source (status=<optimized out>, source=0x5636eaf11970, loop=0x5636eaefa3a0) at ply-event-loop.c:1034
	#7  ply_event_loop_process_pending_events (loop=loop at entry=0x5636eaefa3a0) at ply-event-loop.c:1279
	#8  0x00007fdf0f178480 in ply_event_loop_run (loop=0x5636eaefa3a0) at ply-event-loop.c:1310
	#9  0x00005636e92cb514 in main (argc=4, argv=0x7fff1c459588) at main.c:2398

The version in -proposed does not have these lines in the module load
step.

	[ply-device-manager.c:345]                                 on_udev_event:got remove event for device fb0
	[ply-renderer.c:92]                             ply_renderer_free:Unloading renderer backend plugin

-- 
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