Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Dec 2011 14:37:18 +0300
From:      Sergey Kandaurov <pluknet@gmail.com>
To:        Damien Fleuriot <ml@my.gd>
Cc:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>
Subject:   Re: stuck /etc/rc autoboot processes
Message-ID:  <CAE-mSOLBSq_OhPtQyjPsLk8uEa90jTyA889TJ-BC3P=RGEW0WA@mail.gmail.com>
In-Reply-To: <4EFAF945.3050509@my.gd>
References:  <4EFA129C.2090407@my.gd> <CAE-mSO%2BrMGn2sqc-PhWBe0=023uPqDK=kyWSx2o86nzCgM%2BuOQ@mail.gmail.com> <4EFAF945.3050509@my.gd>

next in thread | previous in thread | raw e-mail | index | archive | help
On 28 December 2011 15:11, Damien Fleuriot <ml@my.gd> wrote:
>
>
> On 12/28/11 11:50 AM, Sergey Kandaurov wrote:
>> On 27 December 2011 22:46, Damien Fleuriot <ml@my.gd> wrote:
>>> Hello list,
>>>
>>>
>>>
>>> Yesterday and today, I've been busy either patching boxes for the BIND
>>> advisory that we received on the 23rd (when they were running 8.1 or
>>> 8.2-RELEASE), or upgrading them (when running 8.0-RELEASE).
>>>
>>>
>>> Today I've come across 2 boxes running 8.2-STABLE and of course, the
>>> BIND patch wouldn't apply correctly.
>>>
>>> I've decided to cvsup them to 8.2-RELEASE and "upgrade" them to it.
>>>
>>>
>>> I've gone through the following steps:
>>> - make buildworld
>>> - make buildkernel
>>> - make installkernel
>>> - nextboot -k my new kernel, to ensure it worked fine
>>> - rebooted again with the new kernel, this time correctly installed as
>>> /boot/kernel
>>> - installed the world
>>> - run mergemaster -FiPU
>>> - rebuild ports
>>>
>>>
>>> Now, I'm facing this odd situation where, just after booting, I get thi=
s
>>> on the 2 boxes:
>>>
>>>
>>> root =A0 =A0 =A0 =A0 22 =A00.0 =A00.0 =A08256 =A01876 =A0v0 =A0Is+ =A0 =
7:32PM =A0 0:00.03 sh
>>> /etc/rc autoboot
>>> root =A0 =A0 =A0 1250 =A00.0 =A00.0 18000 =A02576 =A0v0 =A0I+ =A0 =A07:=
32PM =A0 0:00.04
>>> /usr/local/sbin/rsyslogd -a /var/run/log -a /var/named/var/run/log -i
>>> /var/run/syslog.pid -f /usr/local/etc/rsyslog.conf
>>> root =A0 =A0 =A0 1790 =A00.0 =A00.0 =A08256 =A01952 =A0v0 =A0I+ =A0 =A0=
7:32PM =A0 0:00.00 sh
>>> /etc/rc autoboot
>>> root =A0 =A0 =A0 1793 =A00.0 =A00.0 =A08256 =A01952 =A0v0 =A0I+ =A0 =A0=
7:32PM =A0 0:00.00 sh
>>> /etc/rc autoboot
>>>
>>>
>>> Does anybody have an idea why I get these stuck "sh /etc/rc autoboot"
>>> processes ?
>>>
>>> Any pointers as to where I should look ?
>>
>> Check if the box has a working resolving during boot.
>> This is a main reason why it may stuck in /etc/rc phase.
>> When on physical console, type ^T. Usually it will get you
>> the name of offending process.
>>
>> You posted output from ps aux. It would be nice if you post
>> ps auxl, so values of MWCHAN ps keyword will be also seen,
>> which can add an additional debugging info.
>>
>
>
> Find below the info:
>
>
> # ps aufx
> http://pastebin.com/iLy0Hs8s
>
> # ps aufxl
> http://pastebin.com/3meFWvRH
>
> # dmesg.boot
> http://pastebin.com/rFEsPfD5
>
> Again, the box gets stuck at "Local package initialization:" from
> /etc/rc.d/localpkg
>
>
> I then run the following:
> # sh -x /etc/rc.d/localpkg
>
>
> A snip from the end of the script's output (stuck) yields:
> + logger 'localpkg: DEBUG: run_rc_command: doit: pkg_start '
> + echo 'localpkg: DEBUG: run_rc_command: doit: pkg_start '
> localpkg: DEBUG: run_rc_command: doit: pkg_start
> + eval 'pkg_start '
> + pkg_start
> + local initdone
> + initdone=3D''
> + find_local_scripts_old
> + zlist=3D''
> + slist=3D''
> + [ -d /usr/local/etc/rc.d ]
> + grep '^# PROVIDE:' '/usr/local/etc/rc.d/[0-9]*.sh'
> + zlist=3D' /usr/local/etc/rc.d/[0-9]*.sh'
> + grep '^# PROVIDE:' /usr/local/etc/rc.d/relayd_check.sh
> + slist=3D' /usr/local/etc/rc.d/relayd_check.sh'
> + [ -z '' -a -f '/usr/local/etc/rc.d/[0-9]*.sh' ]
> + [ -x '/usr/local/etc/rc.d/[0-9]*.sh' ]
> + [ -f '/usr/local/etc/rc.d/[0-9]*.sh' -o -L
> '/usr/local/etc/rc.d/[0-9]*.sh' ]
> + [ -z '' -a -f /usr/local/etc/rc.d/relayd_check.sh ]
> + echo -n 'Local package initialization:'
> Local package initialization:+ initdone=3Dyes
> + [ -x /usr/local/etc/rc.d/relayd_check.sh ]
> + set -T
> + trap 'exit 1' 2
> + /usr/local/etc/rc.d/relayd_check.sh start
>
>
> relayd_check.sh is a custom script that I wrote to monitor relayd for
> crashes, log them to /var/log/ and restart the process.
>
> This script does *not* contain any "PROVIDE / REQUIRE / KEYWORD"
> initialization info and I'm beginning to think this may be the problem.
>
> I shall try further, thanks for all the pointers so far :)

Yeah, just thought to point you out at sleeping relayd_check.sh,
when I finished to read your mail :-). Ok, I was glad to help you.

btw,
rcorder(8) can help you to clarify a starting order for your process.
Just use:  rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

--=20
wbr,
pluknet



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-mSOLBSq_OhPtQyjPsLk8uEa90jTyA889TJ-BC3P=RGEW0WA>