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>