On Tue, Jul 22, 2008 at 08:56:31AM -0600, Mark Shellenbaum wrote: > Pawel Jakub Dawidek wrote: > >On Tue, Jul 22, 2008 at 04:28:45PM +0200, Pawel Jakub Dawidek wrote: > >>Hi. > >> > >>I just reproduced a problem I was chasing on FreeBSD also on > >>OpenSolaris from around 2008.01. > >> > >>Simply doing something like this: > >> > >> write 9k of random data into 'foo' file > >> truncate 'foo' file to 7k > >> truncate 'foo' file to 11k > >> read data between 7k-9k > >> > >>There should be all zeros between 7k-9k, but there is previous data. > >>It worked fine on an older ZFS versions (I'm sure it works on version 6). > >> > >>Simple test program: > >[...] > > > > Thanks for reporting this. > > I've opened bug: > > 6728399 ftruncate(2) broken on ZFS
I went a bit further trying to find out what's going on. This is the change responsible for the problem: 20c04e18c58cfb135a135c0126c7d69f6078e1b5. In the dnode_free_range() function you can find this condition: [...] } else if (off > blkid) { /* Freeing past end-of-data */ goto out; [...] Unfortunately blkid is uninitialized at this point, so it can't be right. I tried to change it to 'blksz', but it panics further. I hope this helps. This is one of the last issues that holds back integration of the most recent ZFS into FreeBSD tree, so we would be very grateful if you guys could look into this. Thanks in advance! -- Pawel Jakub Dawidek http://www.wheel.pl pjd at FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 187 bytes Desc: not available URL: <http://mail.opensolaris.org/pipermail/zfs-code/attachments/20080816/6c85c5c5/attachment.bin>