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