Re: New RCorder: abi loaded too late

From: Doug Barton <dougb_at_FreeBSD.org>
Date: Fri, 17 Feb 2006 18:14:10 -0800
Doug Barton wrote:

> I won't object to your original suggestion,

Oops, spoke too soon. :) Seriously though, I should have tested this first.
Turns out that doing it as you suggested creates a circular dependency (and
causes rcorder compiled with the new malloc to dump core):

Loading configuration files.
rcorder: Circular dependency on provision `rpcbind' in file
`/etc/rc.d/nfsclient'.
rcorder: Circular dependency on file `/etc/rc.d/nisdomain'.
rcorder: Circular dependency on provision `rpcbind' in file
`/etc/rc.d/nisdomain'.
rcorder: Circular dependency on provision `SERVERS' in file
`/etc/rc.d/nisdomain'.
rcorder: Circular dependency on provision `rpcbind' in file `/etc/rc.d/ypserv'.
rcorder: Circular dependency on provision `rpcbind' in file `/etc/rc.d/amd'.
rcorder: Circular dependency on provision `SERVERS' in file
`/etc/rc.d/ipxrouted'.
rcorder: Circular dependency on provision `rpcbind' in file `/etc/rc.d/mountd'.
rcorder: Circular dependency on provision `SERVERS' in file `/etc/rc.d/DAEMON'.
rcorder: Circular dependency on provision `rpcbind' in file
`/etc/rc.d/bootparams'.
rcorder: Circular dependency on provision `named' in file `/etc/rc.d/ntpdate'.
Assertion failed: (reg->next.u.s.slot == slot), function arena_undelay, file
/usr/local/src/lib/libc/stdlib/malloc.c, line 2312.
Abort trap (core dumped)
rcorder: Circular dependency on provision `LOGIN' in file `/etc/rc.d/archdep'.

The attached patch sorts out the mess, and further illustrates why I dislike
BEFORE. :)  I boot-tested it and it works for me, so I intend to commit it
unless there is objection.

Doug

PS to jasone, the trace on the core file shows that the error in rcorder is
at line 761 of rcorder.c (which was recently patched to fix a different kind
of core dumping problem). I'd be glad to provide you or the list with more
details if there is interest.

-- 

    This .signature sanitized for your protection



Index: SERVERS
===================================================================
RCS file: /usr/local/ncvs/src/etc/rc.d/SERVERS,v
retrieving revision 1.5
diff -u -r1.5 SERVERS
--- SERVERS	7 Oct 2004 13:55:25 -0000	1.5
+++ SERVERS	18 Feb 2006 01:51:10 -0000
_at__at_ -5,7 +5,7 _at__at_
 #
 
 # PROVIDE: SERVERS
-# REQUIRE: mountcritremote
+# REQUIRE: mountcritremote abi
 
 #	This is a dummy dependency, for early-start servers relying on
 #	some basic configuration.
Index: abi
===================================================================
RCS file: /usr/local/ncvs/src/etc/rc.d/abi,v
retrieving revision 1.7
diff -u -r1.7 abi
--- abi	24 Jan 2006 18:58:48 -0000	1.7
+++ abi	18 Feb 2006 01:50:03 -0000
_at__at_ -4,8 +4,7 _at__at_
 #
 
 # PROVIDE: abi
-# REQUIRE: LOGIN
-# BEFORE:  securelevel
+# REQUIRE: archdep
 # KEYWORD: nojail
 
 . /etc/rc.subr
Index: archdep
===================================================================
RCS file: /usr/local/ncvs/src/etc/rc.d/archdep,v
retrieving revision 1.10
diff -u -r1.10 archdep
--- archdep	13 Feb 2006 21:41:32 -0000	1.10
+++ archdep	18 Feb 2006 01:49:59 -0000
_at__at_ -4,8 +4,7 _at__at_
 #
 
 # PROVIDE: archdep
-# REQUIRE: LOGIN
-# BEFORE: abi
+# REQUIRE: mountcritremote
 # KEYWORD: nojail
 
 . /etc/rc.subr
Received on Sat Feb 18 2006 - 01:14:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:52 UTC