Bug 19539 - Timeout with black screens, gray screens and plymouth
Summary: Timeout with black screens, gray screens and plymouth
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Mageia tools maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-05 14:27 CEST by Giuseppe Ghibò
Modified: 2016-10-06 12:53 CEST (History)
0 users

See Also:
Source RPM: drakxtools-17.56-1.mga6.src.rpm
CVE:
Status comment:


Attachments
patch for fixing the gray screen problem (654 bytes, patch)
2016-10-05 14:31 CEST, Giuseppe Ghibò
Details | Diff
patch for the draxktools spec file (757 bytes, patch)
2016-10-05 14:32 CEST, Giuseppe Ghibò
Details | Diff

Description Giuseppe Ghibò 2016-10-05 14:27:52 CEST
Description of problem:

After booting, there is a 2 minutes timeout in a black screen, then appears a  gray screen with three black question mark [?][?][?] in reverse text mode (just after a black screen). Sometimes happens also without the timeout. The timeout is exactly 2 minutes plus some seconds as shown by "systemd-analyze blame". Same occurs sometimes with native boot and may occur inside a VM.

Apparently these 2 minutes timeout come from harddrake when it finds new hardware, and the way it calls plymouth; looking closely at the service_harddrake code, the routine dialog_with_timeout() is called with a 2 minutes timeout, which has been previosly set in the line:

# timeout runaway processes after 2mn:
run_program::set_default_timeout(2*60);

...

and then:

sub dialog_with_timeout {
    my ($type, $title, $msg, $timeout, $plymouth) = @_;
    my ($pid, $res, $timed_out);

    $SIG{ALRM} = sub { $timed_out = 1; kill 15, $pid };
    unless ($pid = fork()) {
        $plymouth and system('plymouth', 'hide-splash');
        exec("/usr/share/harddrake/confirm", $type, $title, $msg);

which calls plymouth with the 'hide-splash' option. This plymouth call is what causes the blocking in the boot and the gray screen with the three question marks.

What is originally supposed to do this part of code is not 100% clear to me, but from the next calls at /usr/share/harddrake/confirm seems that if it finds new hardware it should prompt for a user confirmation. Probably in the past was working like this, but right now I never see a prompting dialog box or a single line asking for any confirm, but a black or gray screen instead. The gray screen seems to be caused with the call to the plymouth executable with the option 'hide-splash'; calling with 'debug' instead of 'hide-splash' just get rid of it (and also the timeouts), though probably there is no terminal at that point where one can answer for the confirm (terminal that there wasn't anyway before).
Comment 1 Giuseppe Ghibò 2016-10-05 14:31:48 CEST
Created attachment 8492 [details]
patch for fixing the gray screen problem

This patch calls plymouth without the hide-splash option. For convenience it calls with the "debug option".
Comment 2 Giuseppe Ghibò 2016-10-05 14:32:32 CEST
Created attachment 8493 [details]
patch for the draxktools spec file
Comment 3 Giuseppe Ghibò 2016-10-05 14:34:11 CEST
Of course it happens at every reboot, not just after the first installation.
Rémi Verschelde 2016-10-06 12:53:18 CEST

Assignee: bugsquad => mageiatools


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