RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1167735 - [3.5-7.0] Abort media check will cause system halt
Summary: [3.5-7.0] Abort media check will cause system halt
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: plymouth
Version: 7.0
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: pre-dev-freeze
: 7.0
Assignee: Ray Strode [halfline]
QA Contact: Desktop QE
URL:
Whiteboard:
Depends On:
Blocks: 1095028 1203710 1297830 1313485 1415068
TreeView+ depends on / blocked
 
Reported: 2014-11-25 10:35 UTC by cshao
Modified: 2020-02-14 17:27 UTC (History)
22 users (show)

Fixed In Version: plymouth-0.8.9-0.26.20140113.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-11-04 07:52:52 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
cancel-media-check (13.24 KB, image/png)
2014-11-25 10:35 UTC, cshao
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2016:2527 0 normal SHIPPED_LIVE plymouth bug fix update 2016-11-03 14:16:34 UTC

Description cshao 2014-11-25 10:35:54 UTC
Created attachment 961135 [details]
cancel-media-check

Description of problem:
[3.5-7.0] Abort media check will cause system halt.

Version-Release number of selected component (if applicable):
rhev-hypervisor7-7.0-20141119.0.el7ev
ovirt-node-3.1.0-0.27.20141119git24e087e.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1. Boot from RHEV-H iso.
2. Press Esc key to abort media check.
3. Focus on screen.

Actual results:
[3.5-7.0] Abort media check will cause system halt.

Expected results:
Abort media check will not cause system halt.

Additional info:

Comment 1 Fabian Deutsch 2014-11-25 10:51:43 UTC
This is the upstream behavior.

If you do not want to run th emediacheck add rd.live.check=0 to the kernel cmdline.

Comment 2 cshao 2014-11-25 11:11:48 UTC
Move to dracut component and re-open this bug.
Hope dracut can fixed the system halt issue due to the issue is not acceptable by user.

Thanks!

Comment 4 Ying Cui 2014-11-25 11:25:37 UTC
dracut-033-161.el7_0.173.x86_64 in rhev-hypervisor7-7.0-20141119.0.el7ev

Comment 10 Ying Cui 2015-08-27 06:28:38 UTC
QE are pending for RHEV-H 7.2 build with dracut pkg which included the fix.
So once we get the build, we will verify this bug then.

Comment 14 Harald Hoyer 2015-09-11 09:18:51 UTC
workaround: remove "rhgb" from the kernel command line.

Comment 15 Harald Hoyer 2015-09-11 09:20:17 UTC
or add "rd.plymouth=0"

Comment 16 Harald Hoyer 2015-09-11 09:22:04 UTC
(In reply to Harald Hoyer from comment #15)
> or add "rd.plymouth=0"

sorry, "plymouth.enable=0"

Comment 17 Harald Hoyer 2015-09-24 13:47:48 UTC
moving to 7.3

Comment 22 Harald Hoyer 2015-11-17 14:24:58 UTC
All right, I tested the same dracut code on rawhide and RHEL-7. rawhide works, and RHEL-7 does not work with the "ESC" key. I'll reassign this to plymouth, because it is most likely the location to be fixed.

There is a very small chance, that systemd's "StandardInput=tty-force" has some changes, but more likely are plymouth fixes.


doesn't work:
plymouth-0.8.9-0.24.20140113.el7.x86_64

works:
plymouth-0.8.9-15.2013.08.14.fc24.x86_64

Comment 23 Ray Strode [halfline] 2015-11-17 15:55:23 UTC
does dracut call plymouth hide-splash before initiating the media check? If not, it needs to.

Comment 24 Harald Hoyer 2015-11-18 10:20:54 UTC
(In reply to Ray Strode [halfline] from comment #23)
> does dracut call plymouth hide-splash before initiating the media check? If
> not, it needs to.

yes it does

Comment 25 Ray Strode [halfline] 2015-11-20 21:22:15 UTC
So after a hide-splash call plymouth definitely closes the file descriptor related to the tty. I confirmed this with ls -l /proc/pid/fd .

I tried to reproduce with the latest 7.2 nightly and couldn't; escape properly canceled the media check.

I also tried to reproduce with the link mentioned in comment 13.  It doesn't have a separate media check item, though, the main item does have rd.live.check on the command line.  Still, I saw no evidence of it trying to actually perform the media check.  if I add "single" to the command line, it does perform the media check but again escape works fine to cancel the check.

I do see a problem in the plymouth code, related to a show-splash call after the hide-splash.  We now fail to reopen the terminal before trying to use it.  That's fixed with this patch:

--- a/src/plugins/renderers/drm/plugin.c  
+++ b/src/plugins/renderers/drm/plugin.c  
@@ -1183,6 +1183,10 @@
   if (backend->terminal == NULL)
     return false;
 
+  if (!ply_terminal_is_open (backend->terminal) &&
+      !ply_terminal_open (backend->terminal))
+    return false;
+
   terminal_fd = ply_terminal_get_fd (backend->terminal);
 
   input_source->backend = backend;
--- a/src/plugins/renderers/frame-buffer/plugin.c  
+++ b/src/plugins/renderers/frame-buffer/plugin.c  
@@ -702,6 +702,10 @@
   if (backend->terminal == NULL)
     return false;
 
+  if (!ply_terminal_is_open (backend->terminal) &&
+      !ply_terminal_open (backend->terminal))
+    return false;
+
   terminal_fd = ply_terminal_get_fd (backend->terminal);
 
   input_source->backend = backend;

But I don't see how that problem could prevent media check from canceling since that code would only be run after the media check was canceled, and the plymouth problem I've identified would only result in a failure to redisplay the splash screen not a hang or delay.  

what am I missing to reproduce this issue?

Comment 28 Ray Strode [halfline] 2016-07-01 20:08:50 UTC
I don't quite understand comment 26, I think it might be missing steps (like modifying the kickstart file etc).

Still, I was able to reproduce this today with debug messages following these instructions:

⒈ $ wget http://download.eng.bos.redhat.com/brewroot/packages/rhev-hypervisor7/7.2/20160627.3/images/rhev-hypervisor7-7.2-20160627.3.iso

⒉ $ qemu-kvm -drive format=raw,bps=1000000,index=0,media=disk,file=$PWD/rhev-hypervisor7-7.2-20160627.3.iso -m 256M -smp 2 -serial stdio

⒊ Wait several minutes (because I/O is throttled) and eventually notice the plymouth progress bar appears. 

⒋ Hit the [Esc] key and notice media check is slowing progressing.

This shouldn't be happening, given comment 24.

⒌ Click on the Machine menu and choose reset.

⒍ Hit the [Tab⭾] key to bring up the kernel command line and add:

  plymouth.debug=stream:/dev/ttyS0

⒎ Hit the [⏎Enter] key to boot the operating system
⒏ Again wait for the splash to erroneously show
⒐ Examine plymouth output sent to the terminal qemu was run on.

Comment 29 Ray Strode [halfline] 2016-07-01 20:09:30 UTC
For convenience debug output is here:

——————✂———————————————
[main.c:2027]                                 check_logging:checking if console messages should be redirected and logged
[main.c:2036]                                 check_logging:logging will be enabled!
[main.c:2117]                        initialize_environment:source built on Oct 26 2015
[main.c:2126]                        initialize_environment:Making sure /var/run/plymouth exists
[main.c:2130]                        initialize_environment:initialized minimal work environment
[main.c:1828]                     attach_to_running_session:creating new terminal session
[ply-terminal-session.c:372]                   ply_terminal_session_attach:ptmx not passed in, creating one
[ply-terminal-session.c:237]                           open_pseudoterminal:opening device '/dev/ptmx'
[ply-terminal-session.c:243]                           open_pseudoterminal: opened device '/dev/ptmx'
[ply-terminal-session.c:245]                           open_pseudoterminal:creating pseudoterminal
[ply-terminal-session.c:254]                           open_pseudoterminal:done creating pseudoterminal
[ply-terminal-session.c:256]                           open_pseudoterminal:unlocking pseudoterminal
[ply-terminal-session.c:264]                           open_pseudoterminal:unlocked pseudoterminal
[ply-terminal-session.c:383]                   ply_terminal_session_attach:redirecting system console to terminal device
[ply-terminal-session.c:393]                   ply_terminal_session_attach:done redirecting system console to terminal device
[ply-terminal-session.c:526]            ply_terminal_session_start_logging:logging incoming console messages
[main.c:698]                       get_cache_file_for_mode:returning cache file '/var/lib/plymouth//boot-duration'
[main.c:277]                                 load_settings:Trying to load /etc/plymouth//plymouthd.conf
[ply-key-file.c:171]                       ply_key_file_load_group:trying to load group Daemon
[ply-key-file.c:268]                      ply_key_file_load_groups:key file has no more groups
[ply-key-file.c:368]                        ply_key_file_get_value:key file does not have entry for key 'ShowDelay'
[main.c:415]                    find_system_default_splash:System configured theme file is '/usr/share/plymouth/themes/text/text.plymouth'
[main.c:277]                                 load_settings:Trying to load /usr/share/plymouth//plymouthd.defaults
[ply-key-file.c:171]                       ply_key_file_load_group:trying to load group Daemon
[ply-key-file.c:268]                      ply_key_file_load_groups:key file has no more groups
[main.c:298]                                 load_settings:Splash delay is set to nan
[main.c:430]              find_distribution_default_splash:Distribution default theme file is '/usr/share/plymouth/themes/spinner/spinner.plymouth'
[main.c:853]           plymouth_should_show_default_splash:checking if plymouth should show default splash
[main.c:880]           plymouth_should_show_default_splash:using default splash because kernel command line has option "rhgb"
[ply-device-manager.c:779]                 create_devices_from_terminals:checking for consoles
[ply-device-manager.c:560]                        add_consoles_from_file:opening /sys/class/tty/console/active
[ply-device-manager.c:569]                        add_consoles_from_file:reading file
[ply-device-manager.c:611]                        add_consoles_from_file:console /dev/tty1 found!
[ply-device-manager.c:404]                         watch_for_udev_events:watching for udev graphics device add and remove events
[main.c:2434]                                          main:entering event loop
[ply-boot-server.c:370]             print_connection_process_identity:connection is from pid 400 (/usr/bin/plymouth show-splash) with parent pid 1 (/init rd_NO_MULTIPATH install rhgb)
[ply-boot-server.c:480]                ply_boot_connection_on_request:got show splash request
[main.c:822]      plymouth_should_ignore_show_splash_calls:checking if plymouth should be running
[main.c:937]                                on_show_splash:no displays available to show splash on, waiting...
[ply-event-loop.c:1188]              ply_event_loop_disconnect_source:disconnecting source with fd 11
[ply-event-loop.c:1088]   ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x7f1caf891ad0 for fd 11
[ply-event-loop.c:1092]   ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x7f1caf891ad0 for fd 11
[ply-event-loop.c:1190]              ply_event_loop_disconnect_source:done disconnecting source with fd 11
[ply-event-loop.c:1196]              ply_event_loop_disconnect_source:freeing watches for source with fd 11
[ply-event-loop.c:1198]              ply_event_loop_disconnect_source:done freeing watches for source with fd 11
[ply-event-loop.c:1199]              ply_event_loop_disconnect_source:freeing destinations for source with fd 11
[ply-event-loop.c:1175]   ply_event_loop_free_destinations_for_source:freeing destination (1, 0x7f1caf891f70, 0x7f1caf891ad0) of fd 11
[ply-event-loop.c:1201]              ply_event_loop_disconnect_source:done freeing destinations for source with fd 11
[ply-event-loop.c:1204]              ply_event_loop_disconnect_source:removing source with fd 11 from event loop
[ply-event-loop.c:656]             ply_event_loop_remove_source_node:failed to delete fd 11 from epoll watch list: Bad file descriptor
[ply-event-loop.c:1206]              ply_event_loop_disconnect_source:done removing source with fd 11 from event loop
[ply-boot-server.c:362]             print_connection_process_identity:connection is from toplevel init process (/init rd_NO_MULTIPATH install rhgb)
[ply-boot-server.c:419]                ply_boot_connection_on_request:could not finish writing update reply: Broken pipe
[ply-boot-server.c:421]                ply_boot_connection_on_request:got update request
[main.c:191]                                     on_update:updating status to 'plymouth-start.service'
[ply-event-loop.c:1188]              ply_event_loop_disconnect_source:disconnecting source with fd 11
[ply-event-loop.c:1088]   ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x7f1caf891ad0 for fd 11
[ply-event-loop.c:1092]   ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x7f1caf891ad0 for fd 11
[ply-event-loop.c:1190]              ply_event_loop_disconnect_source:done disconnecting source with fd 11
[ply-event-loop.c:1196]              ply_event_loop_disconnect_source:freeing watches for source with fd 11
[ply-event-loop.c:1198]              ply_event_loop_disconnect_source:done freeing watches for source with fd 11
[ply-event-loop.c:1199]              ply_event_loop_disconnect_source:freeing destinations for source with fd 11
[ply-event-loop.c:1175]   ply_event_loop_free_destinations_for_source:freeing destination (1, 0x7f1caf891f70, 0x7f1caf891ad0) of fd 11
[ply-event-loop.c:1201]              ply_event_loop_disconnect_source:done freeing destinations for source with fd 11
[ply-event-loop.c:1204]              ply_event_loop_disconnect_source:removing source with fd 11 from event loop
[ply-event-loop.c:656]             ply_event_loop_remove_source_node:failed to delete fd 11 from epoll watch list: Bad file descriptor
[ply-event-loop.c:1206]              ply_event_loop_disconnect_source:done removing source with fd 11 from event loop
[ply-boot-server.c:362]             print_connection_process_identity:connection is from toplevel init process (/init rd_NO_MULTIPATH install rhgb)
[ply-boot-server.c:419]                ply_boot_connection_on_request:could not finish writing update reply: Broken pipe
[ply-boot-server.c:421]                ply_boot_connection_on_request:got update request
[main.c:191]                                     on_update:updating status to 'sys-kernel-config.mount'
[ply-event-loop.c:1188]              ply_event_loop_disconnect_source:disconnecting source with fd 12
[ply-event-loop.c:1088]   ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x7f1caf891ad0 for fd 12
[ply-event-loop.c:1092]   ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x7f1caf891ad0 for fd 12
[ply-event-loop.c:1190]              ply_event_loop_disconnect_source:done disconnecting source with fd 12
[ply-event-loop.c:1196]              ply_event_loop_disconnect_source:freeing watches for source with fd 12
[ply-event-loop.c:1198]              ply_event_loop_disconnect_source:done freeing watches for source with fd 12
[ply-event-loop.c:1199]              ply_event_loop_disconnect_source:freeing destinations for source with fd 12
[ply-event-loop.c:1175]   ply_event_loop_free_destinations_for_source:freeing destination (1, 0x7f1caf891f70, 0x7f1caf891ad0) of fd 12
[ply-event-loop.c:1201]              ply_event_loop_disconnect_source:done freeing destinations for source with fd 12
[ply-event-loop.c:1204]              ply_event_loop_disconnect_source:removing source with fd 12 from event loop
[ply-event-loop.c:656]             ply_event_loop_remove_source_node:failed to delete fd 12 from epoll watch list: Bad file descriptor
[ply-event-loop.c:1206]              ply_event_loop_disconnect_source:done removing source with fd 12 from event loop
[ply-device-manager.c:364]                                 on_udev_event:got add event for device card0
[ply-device-manager.c:179]                create_devices_for_udev_device:device subsystem is drm
[ply-device-manager.c:183]                create_devices_for_udev_device:found DRM device /dev/dri/card0
[ply-device-manager.c:704] create_devices_for_terminal_and_renderer_type:creating devices for /dev/dri/card0 (renderer type: 1) (terminal: /dev/tty1)
[ply-renderer.c:235]                      ply_renderer_open_plugin:trying to open renderer plugin /usr/lib64/plymouth/renderers/drm.so
[./plugin.c:379]                                create_backend:creating renderer backend for device /dev/dri/card0
[./plugin.c:464]                                   load_driver:Opening '/dev/dri/card0'
[ply-terminal.c:619]                             ply_terminal_open:trying to open terminal '/dev/tty1'
[ply-terminal.c:409]                 ply_terminal_look_up_geometry:looking up terminal text geometry
[ply-terminal.c:424]                 ply_terminal_look_up_geometry:terminal is now 128x48 text cells
[ply-terminal.c:462]                                 get_active_vt:Remembering that initial vt is 1
[./plugin.c:581]                   find_controller_for_encoder:Found already lit monitor
[./plugin.c:669]                      get_index_of_active_mode:Looking for connector mode index of active mode 1024x768
[./plugin.c:648]                            find_index_of_mode:Found connector mode index 0 for mode 1024x768
[./plugin.c:149]               ply_renderer_head_add_connector:Adding connector with id 20 to 1024x768 head
[./plugin.c:192]                         ply_renderer_head_new:Creating 1024x768 renderer head
[./ply-renderer-generic-driver.c:177]                       ply_renderer_buffer_new:returning 1x1 buffer with stride 4
[ply-renderer.c:257]                      ply_renderer_open_plugin:opened renderer plugin /usr/lib64/plymouth/renderers/drm.so
[main.c:988]                             on_keyboard_added:listening for keystrokes
[main.c:992]                             on_keyboard_added:listening for escape
[main.c:996]                             on_keyboard_added:listening for backspace
[main.c:1000]                             on_keyboard_added:listening for enter
[ply-device-manager.c:637]            create_pixel_displays_for_renderer:Adding displays for 1 heads
[main.c:1045]                        on_pixel_display_added:pixel display added before splash loaded, so loading splash now
[main.c:958]                                   show_splash:delaying show splash for 4.468548 seconds
[ply-event-loop.c:989]      ply_event_loop_stop_watching_for_timeout:no matching timeout found for removal
[ply-device-manager.c:676]             create_text_displays_for_terminal:adding text display for terminal /dev/tty1
[main.c:1075]                         on_text_display_added:text display added before splash loaded, so loading splash now
[main.c:958]                                   show_splash:delaying show splash for 4.465545 seconds
[ply-device-manager.c:364]                                 on_udev_event:got add event for device fb0
[ply-device-manager.c:386]                                 on_udev_event:ignoring since we only handle subsystem graphics devices after coldplug completes
[ply-device-manager.c:364]                                 on_udev_event:got change event for device card0
[ply-device-manager.c:842]                         on_udev_queue_changed:udev coldplug complete
[ply-event-loop.c:775]               ply_event_loop_stop_watching_fd:stopping watching fd 10
[ply-event-loop.c:792]               ply_event_loop_stop_watching_fd:removing destination for fd 10
[ply-event-loop.c:802]               ply_event_loop_stop_watching_fd:no more destinations remaing for fd 10, removing source
[ply-device-manager.c:811]                      create_devices_from_udev:Looking for devices from udev
[ply-device-manager.c:291]                  create_devices_for_subsystem:creating devices for drm devices
[ply-device-manager.c:310]                  create_devices_for_subsystem:found device /sys/devices/pci0000:00/0000:00:02.0/drm/card0
[ply-device-manager.c:318]                  create_devices_for_subsystem:device is initialized
[ply-device-manager.c:329]                  create_devices_for_subsystem:found node /dev/dri/card0
[ply-device-manager.c:179]                create_devices_for_udev_device:device subsystem is drm
[ply-device-manager.c:183]                create_devices_for_udev_device:found DRM device /dev/dri/card0
[ply-device-manager.c:699] create_devices_for_terminal_and_renderer_type:ignoring device /dev/dri/card0 since it's already managed
[ply-device-manager.c:310]                  create_devices_for_subsystem:found device /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-Virtual-1
[ply-device-manager.c:341]                  create_devices_for_subsystem:it's not initialized
[ply-device-manager.c:310]                  create_devices_for_subsystem:found device /sys/devices/pci0000:00/0000:00:02.0/drm/controlD64
[ply-device-manager.c:318]                  create_devices_for_subsystem:device is initialized
[ply-device-manager.c:336]                  create_devices_for_subsystem:device doesn't have a seat tag
[ply-device-manager.c:310]                  create_devices_for_subsystem:found device /sys/devices/virtual/drm/ttm
[ply-device-manager.c:341]                  create_devices_for_subsystem:it's not initialized
[ply-device-manager.c:291]                  create_devices_for_subsystem:creating devices for frame buffer devices
[ply-device-manager.c:310]                  create_devices_for_subsystem:found device /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0
[ply-device-manager.c:318]                  create_devices_for_subsystem:device is initialized
[ply-device-manager.c:329]                  create_devices_for_subsystem:found node /dev/fb0
[ply-device-manager.c:179]                create_devices_for_udev_device:device subsystem is graphics
[ply-device-manager.c:188]                create_devices_for_udev_device:found frame buffer device /dev/fb0
[ply-device-manager.c:131]                      fb_device_has_drm_device:trying to find associated drm node for fb device (path: pci-0000:00:02.0)
[ply-device-manager.c:195]                create_devices_for_udev_device:ignoring, since there's a DRM device associated with it
[ply-device-manager.c:310]                  create_devices_for_subsystem:found device /sys/devices/virtual/graphics/fbcon
[ply-device-manager.c:341]                  create_devices_for_subsystem:it's not initialized
[ply-boot-server.c:370]             print_connection_process_identity:connection is from pid 496 (plymouth --hide-splash) with parent pid 456 (/bin/sh /sbin/dmsquash-live-root /dev/disk/by-label/rhev-hypervisor7-7.2-20160627.3)
[ply-boot-server.c:486]                ply_boot_connection_on_request:got hide splash request
[ply-event-loop.c:1188]              ply_event_loop_disconnect_source:disconnecting source with fd 10
[ply-event-loop.c:1088]   ply_event_loop_handle_disconnect_for_source:calling disconnected_handler 0x7f1caf891ad0 for fd 10
[ply-event-loop.c:1092]   ply_event_loop_handle_disconnect_for_source:done calling disconnected_handler 0x7f1caf891ad0 for fd 10
[ply-event-loop.c:1190]              ply_event_loop_disconnect_source:done disconnecting source with fd 10
[ply-event-loop.c:1196]              ply_event_loop_disconnect_source:freeing watches for source with fd 10
[ply-event-loop.c:1198]              ply_event_loop_disconnect_source:done freeing watches for source with fd 10
[ply-event-loop.c:1199]              ply_event_loop_disconnect_source:freeing destinations for source with fd 10
[ply-event-loop.c:1175]   ply_event_loop_free_destinations_for_source:freeing destination (1, 0x7f1caf891f70, 0x7f1caf891ad0) of fd 10
[ply-event-loop.c:1201]              ply_event_loop_disconnect_source:done freeing destinations for source with fd 10
[ply-event-loop.c:1204]              ply_event_loop_disconnect_source:removing source with fd 10 from event loop
[ply-event-loop.c:656]             ply_event_loop_remove_source_node:failed to delete fd 10 from epoll watch list: Bad file descriptor
[ply-event-loop.c:1206]              ply_event_loop_disconnect_source:done removing source with fd 10 from event loop
[main.c:853]           plymouth_should_show_default_splash:checking if plymouth should show default splash
[main.c:880]           plymouth_should_show_default_splash:using default splash because kernel command line has option "rhgb"
[main.c:439]                           show_default_splash:Showing splash screen
[main.c:449]                           show_default_splash:Trying system default splash
[main.c:1745]                                    load_theme:Loading boot splash theme '/usr/share/plymouth/themes/text/text.plymouth'
[ply-key-file.c:171]                       ply_key_file_load_group:trying to load group Plymouth Theme
[ply-key-file.c:268]                      ply_key_file_load_groups:key file has no more groups
[./plugin.c:317]                                 create_plugin:creating plugin
[main.c:1761]                                    load_theme:attaching plugin to event loop
[main.c:1764]                                    load_theme:attaching progress to plugin
[ply-boot-splash.c:174]              ply_boot_splash_add_text_display:Adding 128x48 text display
[ply-terminal.c:615]                             ply_terminal_open:terminal /dev/tty1 is already open
[ply-device-manager.c:980]         ply_device_manager_activate_renderers:activating renderers
[ply-boot-splash.c:493]                          ply_boot_splash_show:showing splash screen
[main.c:1692]                 tell_systemd_to_print_details:telling systemd to start printing details
[ply-device-manager.c:1013]         ply_device_manager_activate_keyboards:activating keyboards
[main.c:249]                                 show_messages:not displaying messages, since no boot splash


——————✂———————————————

Comment 30 Ray Strode [halfline] 2016-07-01 20:14:28 UTC
So we can see quite clearly that plymouth is being told to hide itself:

[ply-boot-server.c:370]             print_connection_process_identity:connection is from pid 496 (plymouth --hide-splash) with parent pid 456 (/bin/sh /sbin/dmsquash-live-root /dev/disk/by-label/rhev-hypervisor7-7.2-20160627.3)
[ply-boot-server.c:486]                ply_boot_connection_on_request:got hide splash request


but then it goes and shows itself anyway:

[main.c:439]                           show_default_splash:Showing splash screen

What's going on is this code:

static void•
show_splash (state_t *state)•
{•
…
      if (state->splash_delay > running_time)•
        {•
          double time_left = state->splash_delay - running_time;•
•
          ply_trace ("delaying show splash for %lf seconds",•
                     time_left);•
…
          ply_event_loop_watch_for_timeout (state->loop,•
                                            time_left,•
                                            (ply_event_loop_timeout_handler_t)•
                                            show_splash,•
                                            state);•
          return;•
        }•
…
}•

If we get a show splash request early on, we don't act on it for ~splash_delay (~5) seconds.  Then if we get a hide splash request, we notice we're not shown yet and so the hide splash is a noop.

The fix is simple, we just need to cancel the timeout on a hide splash request.

Comment 31 Ray Strode [halfline] 2016-07-01 20:16:47 UTC
While testing, I noticed the colors of the progress bar are wrong. i'll push the fix mentioned in comment 25, the fix mentioned in comment 30, and a small fix for the progress bar colors shortly.

Comment 32 Ray Strode [halfline] 2016-07-01 20:59:14 UTC
looking deeper comment 25 is off base, we do correctly open the terminal when necessary.

So I'll just be doing comment 30 and a small fix for progress bar colors.

Comment 37 errata-xmlrpc 2016-11-04 07:52:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2527.html


Note You need to log in before you can comment on or make changes to this bug.