reconstruct caused mailboxes (skiplist) corruption?
Bron Gondwana
brong at fastmail.fm
Thu Nov 11 17:02:57 EST 2010
On Thu, Nov 11, 2010 at 02:24:47PM -0200, Henrique de Moraes Holschuh wrote:
> On Thu, 11 Nov 2010, Paul Dekkers wrote:
> > Uhoh! And then I looked at mailboxes.db: It looks like part completely
> > rewritten, including the skiplist header, and the first line now said:
> > user.bla: System I/O error System I/O error
>
> This is something that has plagued cyrus for a long time. Can we find a
> way to actually keep tabs on our FDs so it cannot ever happen again,
> please? I recall reports of crap showing inside prot streams 10 years
> ago... if now it is leaking into even worse places, well...
Here's the ktrace/kdump output on FreeBSD:
45426 reconstruct CALL access(0x80065d000,F_OK)
45426 reconstruct NAMI "/usr/local/lib/libsasl2.so.2"
45426 reconstruct RET access 0
45426 reconstruct CALL open(0x80065e000,O_RDONLY,<unused>0x763300)
45426 reconstruct NAMI "/usr/local/lib/libsasl2.so.2"
45426 reconstruct RET open 3
45426 reconstruct CALL fstat(0x3,0x7fffffffe350)
45426 reconstruct STRU struct stat {dev=87, ino=1084119, mode=-rwxr-xr-x , nlink=1, uid=0, gid=0, rdev=4338624, atime=1289519226, stime=1276299162, ctime=1289480449, birthtime=1276299162, size=114591, blksize=16384, blocks=224, flags=0x0 }
45426 reconstruct RET fstat 0
45426 reconstruct CALL pread(0x3,0x8007622e0,0x1000,0)
45426 reconstruct GIO fd 3 read 4096 bytes
What do you know fd 3. It's almost certainly truss doing something
stupid.
We maybe be able to work around it in Cyrus - and that might actually be
worth it - but I don't think it's Cyrus' fault.
Bron.
More information about the Info-cyrus
mailing list