Re: kerneld/multicast bug (tickled by gated)

Brian Candler (B.Candler@pobox.com)
Mon, 16 Jun 1997 01:18:30 +0800 (SGT)


> My limited understanding of gated is that it's a routing daemon similar to
> routed.

I do hope that Sue is not offended by the comparison! :-)

> It seems that while it's manipulating the routing table,
> something (perhaps gated itself) is trying to make connections through
> routes that don't exist. I assume you don't want to run pppd, so maybe
> just removing everything but "#!/bin/sh" from the request-route script
> would cause it to return, so gated can continue.

OK, but have a look at the script itself (attached below). There is no file
/etc/ppp/chat* on the machine, so the script should return immediately. The
lockup is indefinite, and your suggestion still doesn't explain why kerneld
doesn't reap its child. There must be a race/bug/deadlock somewhere.

Thanks,

Brian.

----- 8< -----------------------------------------------------------------
#! /bin/sh
LOCK=/tmp/request-route
PATH=/usr/sbin:$PATH # for ppp-2.2*
export PATH

# Note: you are _not_ forced to use ppp!
# You can do whatever you want in order to satisfy the kernel route request.
# It might be a good idea to set up the route as the default route, in case
# you are using e.g. slip or plip or any other net driver...

#
# This script will be called from kerneld with the requested route as $1
# Create a chat script for your nameserver (as defined in /etc/resolv.conf)
#

chatfile=/etc/ppp/chat.$1

if [ -f $chatfile ]
then
#
# Tune your favourite parameters to pppd, including the idle-disconnect option.
# Kerneld will be automatically triggered to load slhc.o and ppp.o
#
pppd connect "chat -f $chatfile" /dev/modem 38400 \
idle-disconnect 600 modem defaultroute noipdefault \
& # let pppd detach itself whenever it wants to...

#
# Timer to be killed by ip-up, tunable! Check kerneld delay as well
#
sleep 60 &
sleepid=$!
echo $sleepid > $LOCK
wait $sleepid
rm -f $LOCK
exit 0
else
exit 1
fi