Locked up processes after upgrade to ZFS v15
Jeremy Chadwick
freebsd at jdc.parodius.com
Tue Oct 12 13:02:47 UTC 2010
On Tue, Oct 12, 2010 at 02:12:28PM +0300, Andriy Gapon wrote:
> on 12/10/2010 13:07 Jeremy Chadwick said the following:
> > I've been trying to reproduce this problem on my testbed box without
> > much luck so far. The box differs severely -- the biggest differences
> > being the testbed runs i386 (due to CPU), only has 1GB RAM, and is
> > single-core. I don't have an amd64 testbed system on hand right now.
> >
> > I've been trying to reproduce it by enabling Sendfile and MMAP in Apache
> > on the system, putting up some very large files on an Apache-accessible
> > ZFS filesystem, and using something like "wget -r" to download
> > everything. I've been watching "netstat -m" to monitor the number of
> > sendfile requests.
> >
> > There have been a couple cases where I've seen processes go into "zfs"
> > state, but I have yet to see any lock up.
> >
> > Is there something amd64-specific to the problem at hand, or maybe some
> > VM feature which isn't getting triggered on i386? Or do you know of a
> > reliable way to reproduce the issue at this point?
>
> I don't have an easy way to reproduce it.
> The theory is that you should sendfile a file with size which is not multiple of
> page size (4K) and then you should mmap and read the same file; the last step
> should lock up.
> Perhaps, tools/regression/sockets/sendfile/sendfile.c with the following patch
> would reproduce it?
> http://people.freebsd.org/~avg/sendfile.diff
This patch only works on HEAD. I downloaded the HEAD version of
sendfile.c from here:
http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/sockets/sendfile/sendfile.c?rev=1.7;content-type=text%2Fplain
And the HEAD Makefile as well (since libmd linking is needed):
http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/sockets/sendfile/Makefile?rev=1.6;content-type=text%2Fplain
And then applied your patch. However, the result doesn't induce a
lock-up. Bummer.
testbox# ./sendfile
1..11
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
mmap test
testbox#
Other stuff I tried:
- Verified getpagesize() returns 4096 (PAE isn't enabled on this box;
I'm assuming PAE results in 2MByte pages is why I mention it)
- Enabling the #if 0'd code
- Adjusting TEST_EXTRA a bit (200, 1000, and 3819; just numbers I
pulled out of thin air)
Alternately, I can try building an amd64 testbed box, but it'll be a
virtual machine under VMware, which I try to avoid using as a testbed
for low-level changes (VM, etc.).
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
More information about the freebsd-fs
mailing list