reconstruct caused mailboxes (skiplist) corruption?

Bron Gondwana brong at fastmail.fm
Thu Nov 11 17:16:26 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...

Truss on Solaris 10:

-bash-3.00# truss ls
execve("/usr/ucb/ls", 0x08047D9C, 0x08047DA4)  argc = 1
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFF0000
resolvepath("/usr/ucb/ls", "/usr/ucb/ls", 1023) = 11
sysconfig(_CONFIG_PAGESIZE)                     = 4096
xstat(2, "/usr/ucb/ls", 0x08047B78)             = 0
open("/var/ld/ld.config", O_RDONLY)             = 3


Truss on FreeBSD:

[root at cyrus1 /tmp]# truss ls
__sysctl(0x7fffffffe470,0x2,0x7fffffffe48c,0x7fffffffe480,0x0,0x0) = 0 (0x0)
mmap(0x0,672,PROT_READ|PROT_WRITE,MAP_ANON,-1,0x0) = 34365202432 (0x800536000)
munmap(0x800536000,672)		     = 0 (0x0)
__sysctl(0x7fffffffe4e0,0x2,0x80063f428,0x7fffffffe4d8,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34365202432 (0x800536000)
issetugid(0x800537015,0x800530cc4,0x80064bc50,0x80064bc20,0x6351,0x0) = 0 (0x0)
open("/etc/libmap.conf",O_RDONLY,0666)	     ERR#2 'No such file or directory'
open("/var/run/ld-elf.so.hints",O_RDONLY,057)	 = 2 (0x2)


It's definitely FreeBSD that's at fault here!

Bron.


More information about the Info-cyrus mailing list