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@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@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
Bugs, which is subscribed to 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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1794292/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to