Patchwork ysvinit-inittab: fix hang issue of series consoles check

login
register
mail settings
Submitter Zhenhua Luo
Date Sept. 26, 2012, 7:18 a.m.
Message ID <1348643917-26301-1-git-send-email-b19537@freescale.com>
Download mbox | patch
Permalink /patch/37235/
State Accepted
Commit 390e7f1f0b1b21d3c0787a6272583d5829561f95
Headers show

Comments

Zhenhua Luo - Sept. 26, 2012, 7:18 a.m.
From: Zhenhua Luo <b19537@freescale.com>

    the kernel boot process hangs when /proc/consoles doesn't exists, check
    the existence of /proc/consoles before executing pkg_postinst script.

    Following is the log when /proc/consoles doesn't exist:
        Running postinst /etc/rpm-postinsts/102...
        cat: /proc/consoles: No such file or directory
        cat: /proc/consoles: No such file or directory
        cat: /proc/consoles: No such file or directory
        INIT: Entering runlevel: 5
        Starting OpenBSD Secure Shell server: sshd
          generating ssh RSA key...
          generating ssh ECDSA key...
          generating ssh DSA key...
        done.
        Starting network benchmark server: netserver.
        Starting system log daemon...0
        Starting kernel log daemon...0
        Stopping Bootlog daemon: bootlogd.
        INIT: no more processes left in this runlevel

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
---
 .../sysvinit/sysvinit-inittab_2.88dsf.bb           |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Saul Wold - Sept. 27, 2012, 3:52 p.m.
On 09/26/2012 12:18 AM, b19537@freescale.com wrote:
> From: Zhenhua Luo <b19537@freescale.com>
>
>      the kernel boot process hangs when /proc/consoles doesn't exists, check
>      the existence of /proc/consoles before executing pkg_postinst script.
>
>      Following is the log when /proc/consoles doesn't exist:
>          Running postinst /etc/rpm-postinsts/102...
>          cat: /proc/consoles: No such file or directory
>          cat: /proc/consoles: No such file or directory
>          cat: /proc/consoles: No such file or directory
>          INIT: Entering runlevel: 5
>          Starting OpenBSD Secure Shell server: sshd
>            generating ssh RSA key...
>            generating ssh ECDSA key...
>            generating ssh DSA key...
>          done.
>          Starting network benchmark server: netserver.
>          Starting system log daemon...0
>          Starting kernel log daemon...0
>          Stopping Bootlog daemon: bootlogd.
>          INIT: no more processes left in this runlevel
>
> Signed-off-by: Zhenhua Luo <b19537@freescale.com>
> ---
>   .../sysvinit/sysvinit-inittab_2.88dsf.bb           |    4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
> index 5b79caf..b289853 100644
> --- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
> +++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
> @@ -2,7 +2,7 @@ DESCRIPTION = "Inittab for sysvinit"
>   LICENSE = "GPLv2"
>   LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
>
> -PR = "r8"
> +PR = "r9"
>
>   SRC_URI = "file://inittab"
>
> @@ -54,7 +54,7 @@ EOF
>
>   pkg_postinst_${PN} () {
>   # run this on the target
> -if [ "x$D" = "x" ]; then
> +if [ "x$D" = "x" ] && [ -e /proc/consoles ]; then
>   	tmp="${SERIAL_CONSOLES_CHECK}"
>   	for i in $tmp
>   	do
>

Merged into OE-Core

Thanks
	Sau!

Patch

diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 5b79caf..b289853 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -2,7 +2,7 @@  DESCRIPTION = "Inittab for sysvinit"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
 
-PR = "r8"
+PR = "r9"
 
 SRC_URI = "file://inittab"
 
@@ -54,7 +54,7 @@  EOF
 
 pkg_postinst_${PN} () {
 # run this on the target
-if [ "x$D" = "x" ]; then
+if [ "x$D" = "x" ] && [ -e /proc/consoles ]; then
 	tmp="${SERIAL_CONSOLES_CHECK}"
 	for i in $tmp
 	do