DragonFly commits List (threaded) for 2005-04
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: cvs commit: src/sys/kern vfs_bio.c vfs_lock.c vfs_subr.c vfs_sync.c src/sys/sys buf.h mount.h tree.h vnode.h src/sys/vfs/gnu/ext2fs ext2_inode.c ext2_vfsops.c ext2_vnops.c src/sys/vfs/hpfs hpfs_vnops.c src/sys/vfs/msdosfs msdosfs_vfsops.c ...
-On [20050417 01:32], Matthew Dillon (dillon@xxxxxxxxxxxxxxxxxxxx) wrote:
> That's not good. What are you seeing? Is it reproducable? I'll back
> the commit out if necessary.
Never mind that. It is not your commit.
I suspected some subtle file system corruption because after your commit I
built world and kernel, cvsupped my repositories and subsequently got a 100%
reproduceable SIGSEGV (sig 11) with cvs when trying to use those
repositories.
Even after using an older kernel I still got this behaviour, so hence I
started suspecting a subtle fs corruption.
This is not the case once I got to do some more testing.
cvs repeatedly failed in cvs-1.12.11/src/lock.c:
readlock = xmalloc (strlen (hostname) + sizeof (CVSRFL) + 40);
Funny part was that it failed on local filesystems, checking out from a
pserver worked as it should.
Tested it with a:
cd /tmp
mkdir test test2
cvs -d /tmp/test init
cd test2
cvs -d /tmp/test checkout .
and got the same problem (backtrace in lock.c, same line).
So that confirmed for me that it is not the filesystem reworking.
I now jumped back to CVS 1.12.9. My SIGSEGV 11's are gone and I can
checkout from my local cvsupped repositories.
So something is rotten in CVS 1.12.11's use of some functions. For the
record, my box has 1,5 GB of memory.
Backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x0806c7a1 in set_readlock_name ()
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/lock.c:4
65
465 readlock = xmalloc (strlen (hostname) + sizeof (CVSRFL) + 40);
#0 0x0806c7a1 in set_readlock_name ()
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/lock.c:4
65
#1 0x0806c866 in Reader_Lock (
xrepository=0x80db280 "/home/ncvs/FreeBSD/ports")
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/lock.c:4
99
#2 0x0807af95 in do_recursion (frame=0xbfbff550)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/recurse.
c:829
#3 0x0807b886 in do_dir_proc (p=0x0, closure=0xbfbff608)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/recurse.
c:1253
#4 0x08065d2c in walklist (list=0x82056a0, proc=0x807b22f <do_dir_proc>,
closure=0xbfbff608)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/hash.c:3
86
#5 0x0807b0d6 in do_recursion (frame=0xbfbff6e0)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/recurse.
c:884
#6 0x0807ab0f in start_recursion (fileproc=0xffffffff,
filesdoneproc=0x80dc0d9, direntproc=0x808ea3f <update_dirent_proc>,
dirleaveproc=0x808edfc <update_dirleave_proc>, callerdat=0x0, argc=0,
argv=0x8200f00, local=0, which=3, aflag=1, locktype=1,
update_preload=0x8200eb0 "ports", dosrcs=1, repository_in=0x0)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/recurse.
c:457
#7 0x0808e2b0 in do_update (argc=0, argv=0x0, xoptions=0x0, xtag=0x0,
xdate=0x0, xforce=0, local=0, xbuild=0, xaflag=0, xprune=0, xpipeout=0,
which=0, xjoin_rev1=0x281e5020 " \200\r\bà\200\r\b ^ \b", xjoin_rev2=0x0,
preload_update_dir=0x0, xdotemplate=0, repository=0x0)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/update.c
:502
#8 0x080523c9 in checkout_proc (argc=1, argv=0x8200ec4, where_orig=0x0,
mwhere=0x8200ea0 "ports", mfile=0x0, shorten=0, local_specified=0,
omodule=0xbfbffc14 "ports", msg=0x80bae9a "Updating")
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/checkout
. c:1074
#9 0x08076057 in my_module (db=0x80d9310, mname=0xbfbffc14 "ports",
m_type=CHECKOUT, msg=0x80bae9a "Updating",
callback_proc=0x80516a3 <checkout_proc>, where=0x0, shorten=0,
local_specified=0, run_module_prog=1, build_dirs=1, extra_arg=0x0,
stack=0x0)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/modules.
c:528
#10 0x08076707 in do_module (db=0x0, mname=0x0, m_type=CHECKOUT, msg=0x0,
callback_proc=0, where=0x0, shorten=0, local_specified=0,
run_module_prog=0, build_dirs=0, extra_arg=0x0)
---Type <return> to continue, or q <return> to quit---
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/modules.
c:758
#11 0x0805131a in checkout (argc=1, argv=0xbfbffaf4)
at /usr/src/gnu/usr.bin/cvs/cvs/../../../../contrib/cvs-1.12.11/src/checkout
. c:374
#12 0x08095f8f in main (argc=3, argv=0xbfbffaec) at main.c:1053
And this is what I get *EVERY* time.
And it also shows that SIGSEGV, the dreaded signal 11, is not always faulty
hardware. It can be miscompilation as well as other subtle bugs.
--
Jeroen Ruigrok van der Werven <asmodai(at)wxs.nl> / asmodai / kita no mono
Free Tibet! http://www.savetibet.org/ | http://ashemedai.deviantart.com/
http://www.tendra.org/ | http://www.in-nomine.org/
Man inagines that it is death he fears; but what he fears is the unforeseen,
the explosion. What man fears is himself...
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]