Messages in this thread | | | Date | Sun, 21 Oct 2001 09:35:47 -0700 | From | Larry McVoy <> | Subject | Re: Kernel Compile in tmpfs crumples in 2.4.12 w/epoll patch |
| |
> Jan-Frode Myklebust wrote: > > > Running BitKeeper regression tests fails for me on tmpfs /tmp/. I have > > reported it to the bitkeeper bugtracking, but am not sure if this is a > > bitkeeper or tmpfs bug. Any insight? > > > > http://bitkeeper.bkserver.com/cgi-bin/bugview?open/2001-09-11-001 > > > > Last tested with Bitkeeper 2.0 on linux 2.4.10-xfs.
One of the engineers here has also seen this. The root cause is that readdir() is returning a file multiple times. We've seen it on tmpfs. We also have seen in in NFS and had a workaround, the workaround depended that the file would be returned twice right next to each other and that's not the case in tmpfs. wscott@bitmover.com can provide you with the details of his machine config, here's the mail he sent a while back about it:
> Date: Tue, 16 Oct 2001 17:32:32 -0500 (EST) > To: dev@bitmover.com > Subject: bug in tmpfs found by bitkeeper > From: Wayne Scott <wscott@bitmover.com> > X-Mailer: Mew version 2.0.56 on Emacs 20.7 / Mule 4.1 (AOI) > > > My new machine has a reiserfs filesystem for /tmp. > > Since BK has a bug that prevents it from working correctly on reiserfs > that I explained list week I can't run the regressions locally. > > I thought I would work around the problem by mounting the kernel > 'tmpfs' filesystem on /tmp. Now the regressions again fail, but this > time I thing the filesystem is to blame. A readdir() call is > returning the same files multiple times. > > Look at this patch: > > --- /tmp/geta4199 Tue Oct 16 17:24:55 2001 > +++ sfiles.c Tue Oct 16 17:24:10 2001 > @@ -659,11 +659,13 @@ > return; > } > if (base[-1] != '/') *base++ = '/'; > + fprintf(stderr, "dir = %s\n", path); > while ((e = readdir(d)) != NULL) { > #ifndef WIN32 /* Linux 2.3.x NFS bug, skip repeats. */ > if (lastInode == e->d_ino) continue; > lastInode = e->d_ino; > #endif > + fprintf(stderr, "%s: %x\n", e->d_name, e->d_ino); > if (streq(e->d_name, ".") || streq(e->d_name, "..")) { > continue; > } > > At this output from running t.bk_basic > > dir = ./BitKeeper/etc/SCCS/.bk_skip > .: 1f72 > ..: 1f71 > s.config: 1f85 > x.dfile: 1f86 > s.ignore: 1f7f > s.logging_ok: 1f7d > s.ignore: 1f7f > ROOTKEY > +wscott@wscott1.homeip.net|BitKeeper/etc/ignore|20011016222415|54740|3065f497fd7 > +ed3bd > used by BitKeeper/etc/SCCS/s.ignore > and by BitKeeper/etc/SCCS/s.ignore > > The file s.ignore occurs more than once. An unlike the old 2.3 NFS > bug I see that already has a workaround, these files are not ever > adjecent. > > However the tests that do complete do so very very fast. :) > (Yes I know the value of fast and broken!)
-- --- Larry McVoy lm at bitmover.com http://www.bitmover.com/lm - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |