Date: Fri, 31 Jul 2009 14:27:15 +0200 From: Thomas Backman <serenity@exscape.org> To: James R. Van Artsdalen <james-freebsd-fs2@jrv.org> Cc: freebsd-fs@freebsd.org, FreeBSD current <freebsd-current@freebsd.org>, Pawel Jakub Dawidek <pjd@freebsd.org>, Andriy Gapon <avg@freebsd.org> Subject: Re: zfs: Fatal trap 12: page fault while in kernel mode Message-ID: <76338BEC-9B85-4AD1-B04B-850486866F3B@exscape.org> In-Reply-To: <4A72D946.4090401@jrv.org> References: <20090727072503.GA52309@jpru.ffm.jpru.de> <4A6EC9E2.5070200@icyb.net.ua> <20090729084723.GD1586@garage.freebsd.pl> <F4F82B3E-C119-40EF-9AA4-937052876D1E@exscape.org> <4A7030B6.8010205@icyb.net.ua> <97D5950F-4E4D-4446-AC22-92679135868D@exscape.org> <4A7048A9.4020507@icyb.net.ua> <52AA86CB-6C06-4370-BA73-CE19175467D0@exscape.org> <4A705299.8060504@icyb.net.ua> <D3491B77-DA5C-4E10-BE1D-D6EF8CFB112E@exscape.org> <4A7054E1.5060402@icyb.net.ua> <5918824D-A67C-43E6-8685-7B72A52B9CAE@exscape.org> <4A705E50.8070307@icyb.net.ua> <4A70728C.7020004@freebsd.org> <6D47A34B-0753-4CED-BF3D-C505B37748FC@exscape.org> <4A708455.5070304@freebsd.org> <86983A55-E5C4-4C04-A4C7-0AE9A9EE37A3@exscape.org> <4A718E03.6030909@freebsd.org> <71A038EC-02B1-4606-96C2-5E84BE80F005@exscape.org> <4A719CA4.4060400@freebsd.org> <19347561-3CE6-40B3-930A-EB9925D3AFD1@exscape.org> <4A71AD29.10705@freebsd.org> <7544AED1-1216-4A24-B287-F54117641F76@exscape.org> <4A71B2DA.9060902@freebsd.org> <4A72D946.4090 401@jrv.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 31, 2009, at 13:45, James R. Van Artsdalen wrote: > Andriy Gapon wrote: >> on 30/07/2009 17:39 Thomas Backman said the following: >> >>> Or, in patch form (I think the intendation screws the patch up as >>> linked >>> there): >>> http://exscape.org/temp/libzfs_sendrecv.patch >>> >> >> One comment on the patch - I personally don't like bit-wise xor in >> a logical >> expression. But if otherwise the expression would be huge and ugly, >> then OK. >> > > If you're going to code an XOR, use an XOR. > Don' make the reader untangle code to figure out that that some other > code is really just an XOR. > > However I think I was trying to handle two cases that can't happen: > the > top filesystem cannot be renamed to somewhere else in the pool, and no > other filesystem can be renamed to the root. So the new version of > the > patch below needs no XOR. > > Without this or something like it you can't replicate an entire > pool, i.e. > > zfs send -R -I @yesterday pool@today | ssh backup zfs recv -vF -d > pool > > dumps core from the strccmp(0, 0) in the original code below. > > > Index: cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c > =================================================================== > ... Nice job, thanks :) Just wanted to chime in and say that your new patch seems to work just as well as the previous one. I hope you don't mind me hosting this too (I had to apply it manually thanks to spacing... I think it's my mail client not being very nice at retaining tabs/spaces)... Straight from svn diff: http://exscape.org/temp/libzfs_sendrecv.new.patch BTW (maybe not on topic for this mail, but for this thread), I've created a test case to reproduce the new panic (every time). It happens with -DDEBUG=1, after destroying a filesystem and then doing an incremental backup. Currently recompiling world/kernel on a second box to reproduce before I post that. Regards, Thomas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?76338BEC-9B85-4AD1-B04B-850486866F3B>