On Fri, Jun 08, 2007 at 09:30:21AM -0700, George Pavlov wrote: > As to the full length of the entries that get > interrupted they do seem to be all on the long side--I can't say with > total certainty, but the couple of dozen that I looked at were all > > 4096 when all the interruptions are taken out. So I think I can say that > I see corruptions happen within "long" entries, but they can happen > anywhere within that long entry, and one can have multiple interruptions > within one entry. That sounds about right. There's a requirement to be atomic for writes less than PIPE_BUF, but for larger there are no guarentees at all. I imagine the kernel noted the write was large and proceeded to fill the last block of the buffer upto a round 4k. That would basically mean they could get chopped into peices of any size. Incidently, on systems I've worked with logging went through syslog and it seems to split long lines at 80 characters or so: [528-1] SELECT fo... [528-2] ... etc... I always assumed it was postgres doing the splitting but perhaps it was syslog all along. Have a nice day, -- Martijn van Oosterhout <kleptog@xxxxxxxxx> http://svana.org/kleptog/ > From each according to his ability. To each according to his ability to litigate.
Attachment:
signature.asc
Description: Digital signature