[07:39:24] --- jaltman has left: Disconnected [09:10:38] --- Russ has become available [12:07:22] --- jaltman has become available [13:02:43] --- jaltman has left: Disconnected [13:22:40] --- deason has become available [13:48:32] During buildworld, on the console: FlushVCache refcount too large afs_vop_reclaim: afs_FlushVCache failed code 16 vnode vc 0xffffff80010ca8c8 vp 0xffffff006cdce000 tag afs, fid: 113.536890486.82842.46143, opens 0, writers 0 states statd A while later, buildworld gives: ===> lib/libarchive (all) make: don't know how to make /afs/sipb.mit.edu/project/freebsd/build/src/lib/libarchive/archive_write_set_compression_xz.c. Stop On a different machine: athena% fs getfid /afs/sipb.mit.edu/project/freebsd/build/src/lib/libarchive/archive_write_set_compression_xz.c File /afs/sipb.mit.edu/project/freebsd/build/src/lib/libarchive/archive_write_set_compression_xz.c (536890486.82842.46143) contained in volume 536890486 So I guess I get to audit refcounting ... I'm kind of curious as to where a bug would have to be in order to be this hard to tickle. A race condition, perhaps? [15:23:23] something not locking the right thing when dec'ing that refcount may be very hard to reproduce... you only have a window of a few instructions [15:24:18] I.e. a race condition. [15:27:03] well, you can assert that the right thing is locked but it may require wrapping the decrement [15:52:28] well, it could also just be a lack of a dec in some case you hit rarely or something... possibly a vfs path only hit when contesting something a lot [15:52:47] but yeah, a simple race would be the first thought [16:18:50] --- jaltman has become available [17:39:53] cc -O2 -pipe -ggdb3 -fno-strict-aliasing -c y.tab.c -o error_table.o error_table.y:2:23: error: afsconfig.h: No such file or directory error_table.y:3:23: error: afs/param.h: No such file or directory In file included from error_table.y:23: /usr/include/sys/timeb.h:42:2: warning: #warning "this file includes which is deprecated" [18:02:22] But make claims that it's using AFS_LDRULE, which has $(AFS_CFLAGS) which has $(LWP_CFLAGS) which has $(COMMON_CFLAGS) which has ${COMMON_INCL} which has -I${TOP_OBJDIR}/src/config which should be enough to pull in afsconfig, at least. [19:03:38] Are you sure you're not getting an implicit make rule to generate an object file from *.y source that bypasses the .c.o make rule? [19:12:54] No. [19:17:38] I posted a link to debugging make output in my mail. [19:19:55] Looks like Examining error_table.y...modified 20:18:27 Oct 24, 2010...up-to-date. Examining error_table.o...non-existent...modified before source (et_lex.lex.c).. .out-of-date. error_table.o:> = et_lex.lex.c error_table.o:? = et_lex.lex.c error_table.o:> = et_lex.lex.c error_table.y error_table.o:? = et_lex.lex.c error_table.y byacc -d error_table.y cc -O2 -pipe -ggdb3 -fno-strict-aliasing -c y.tab.c -o error_table.o Hm, is y.tab.c the default output of byacc? [19:20:09] Yup. [19:21:27] "So now what?" [19:51:06] we add a hardcoded rule back or add a .y.o rule, i guess? [21:28:24] --- Russ has left: Disconnected [22:12:13] --- deason has left [23:19:20] --- canehan has become available [23:37:37] --- reuteras has become available