Messages in this thread | | | Date | Fri, 20 Jun 2008 04:59:22 -0400 | From | Theodore Tso <> | Subject | Re: Performance of ext4 |
| |
On Fri, Jun 20, 2008 at 08:32:52AM +0000, Holger Kiehl wrote: >> It sounds like i_size is actually dropping in >> size at some pointer long after the file was written. If I had to
sorry, "at some point"... >> guess the value in the inode cache is correct; and perhaps so is the >> value on the journal. But somehow, the wrong value is getting written >> to disk
Or, "the right value is never getting written to disk". (Which as I think about it is more likely; it's likely that an update to i_size is getting *lost*, perhaps because the delalloc code is possibly modifying i_size without starting a transaction first. Again this is just a guess.)
> What I find strange is that the missing parts of the file are not for > example exactly 512 or 1024 or 4096 bytes it is mostly some odd number > of bytes.
Is there any chance the truncation point is related to how the program is writing its output file? i.e., if it is a text file, is the truncation happening after a new-line or when the stdio library might have done an explicit or implicit fflush()?
- Ted
| |