I am wondering if I should file a PR on /sbin/rcorder dumping core? This is a reproducible core dump. I am using FreeBSD 5-Stable dated July 2, I think. SMP, i386, custom kernel.

First, try this.  Make a file that looks like this:

#!/bin/sh
#
# PROVIDE: hello_world
# REQUIRE: hello_world

Now, save it, and let's call it "hello_world.sh"

Now, try and order this one file.

#rcorder hello_world.sh
rcorder: Circular dependency on file `hello_world.sh'.
rcorder: Circular dependency on provision `hello_world' in file `hello_world.sh'.
rcorder in free(): error: chunk is already free
Abort (core dumped)
Exit 134

Whoops, that's not nice, is it?!?? Since rcorder normally only runs at bootup, I smell a big problem if such a problem existed in a startup script.

I know that this file does indeed have a circular dependency, but let's please not dump core because of it. The impending other problem is that 6-current will soon be released, and there will be eventually a stable, and in that branch everything in /usr/local/etc/rc.d/*.sh is sent to rcorder.

Putting "rcorder" into our world of ports maintainers, some of which could write some insane rcng startup files.... ouch. Perhaps we need to ensure that things of this sort can't happen -- and we need a strenuous sanity check on the files in /usr/local/etc/rc.d between now and 6-release. I know, admins should check these files, but in many cases they may not, and then get a big *surprise* when their machine dumps core during boot. I guess it's one thing for 6-Current, but another thing for the stable tree. We may have a lot of time in the 5.x tree, but as sure as I say that, the new /etc/rc.d/localpkg hack will get backported to 5.x and something may start going wrong.

Back to the circular dependency, I have one example of this happening in a port's rc.d script, but I don't want to mention any names... I found this out when a port I had installed kept crashing rcorder when I tried running rcorder on /usr/local/etc/rc.d/*.sh.

So now that I found this, I was going to write a PR, but hey, I figured I'd say something here first.

Can someone verify this on 6-Current, anyway? If so, it is definitely a major bug for that branch. For 5.x, rcorder is only run on a small set of files in /etc, most of which don't get edited much, minimizing its impact. But still a bug nevertheless.

One other thing: I know nothing about NetBSD, but should this be reported to them, too?

Okay, one more shot at this bug.   Try this shell script:

#!/bin/sh
#
# PROVIDE: hello_world
# BEFORE:  hello_world

Save it as hello1.sh.

# rcorder hello1.sh
rcorder: Circular dependency on file `hello1.sh'.
rcorder: Circular dependency on provision `fake_prov_00000000' in file `hello1.sh'.
rcorder in free(): error: chunk is already free
Abort (core dumped)
Exit 134

Whoops again.

Billy
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to