Check this out for "fun": cyr_dbtool: cyrusdb_skiplist.c:395: LEVEL: Assertion `((__extension__ ({ register unsigned int __v, __x = (*((bit32 *)(ptr))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); __v; }))) == DUMMY || ((__extension__ ({ register unsigned int __v, __x = (*((bit32 *)(ptr))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); __v; }))) == INORDER || ((__extension__ ({ register unsigned int __v, __x = (*((bit32 *)(ptr))); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); __v; }))) == ADD' failed. sh: line 1: 26873 Aborted sudo -u cyrus /usr/cyrus/bin/cyr_dbtool -C /etc/imapd-slot1009-master.conf /mnt/meta9/slot1009/store44/conf/mailboxes.db skiplist show >/mnt/meta9/slot1009/store44/conf/dbbak/mailboxes.txt.1198541222
Now what's particularly interesting about this not that it died with a level assertion (though that's going to be interesting too when I track down what caused it. Current suspect is a kernel bug in the mmap handling actually) What's interesting is that the skiplist file got this same text at the start of it as follows - unsurpisingly causing Cyrus to get VERY unhappy: 00000000 63 79 72 5f 64 62 74 6f 6f 6c 3a 20 63 79 72 75 |cyr_dbtool: cyru| 00000010 73 64 62 5f 73 6b 69 70 6c 69 73 74 2e 63 3a 33 |sdb_skiplist.c:3| 00000020 39 35 3a 20 4c 45 56 45 4c 3a 20 41 73 73 65 72 |95: LEVEL: Asser| 00000030 74 69 6f 6e 20 60 28 28 5f 5f 65 78 74 65 6e 73 |tion `((__extens| 00000040 69 6f 6e 5f 5f 20 28 7b 20 72 65 67 69 73 74 65 |ion__ ({ registe| 00000050 72 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 5f |r unsigned int _| 00000060 5f 76 2c 20 5f 5f 78 20 3d 20 28 2a 28 28 62 69 |_v, __x = (*((bi| 00000070 74 33 32 20 2a 29 28 70 74 72 29 29 29 3b 20 69 |t32 *)(ptr))); i| 00000080 66 20 28 5f 5f 62 75 69 6c 74 69 6e 5f 63 6f 6e |f (__builtin_con| 00000090 73 74 61 6e 74 5f 70 20 28 5f 5f 78 29 29 20 5f |stant_p (__x)) _| 000000a0 5f 76 20 3d 20 28 28 28 28 5f 5f 78 29 20 26 20 |_v = ((((__x) & | 000000b0 30 78 66 66 30 30 30 30 30 30 29 20 3e 3e 20 32 |0xff000000) >> 2| 000000c0 34 29 20 7c 20 28 28 28 5f 5f 78 29 20 26 20 30 |4) | (((__x) & 0| 000000d0 78 30 30 66 66 30 30 30 30 29 20 3e 3e 20 38 29 |x00ff0000) >> 8)| 000000e0 20 7c 20 28 28 28 5f 5f 78 29 20 26 20 30 78 30 | | (((__x) & 0x0| 000000f0 30 30 30 66 66 30 30 29 20 3c 3c 20 38 29 20 7c |000ff00) << 8) || 00000100 20 28 28 28 5f 5f 78 29 20 26 20 30 78 30 30 30 | (((__x) & 0x000| 00000110 30 30 30 66 66 29 20 3c 3c 20 32 34 29 29 3b 20 |000ff) << 24)); | 00000120 65 6c 73 65 20 5f 5f 61 73 6d 5f 5f 20 28 22 62 |else __asm__ ("b| 00000130 73 77 61 70 20 25 30 22 20 3a 20 22 3d 72 22 20 |swap %0" : "=r" | 00000140 28 5f 5f 76 29 20 3a 20 22 30 22 20 28 5f 5f 78 |(__v) : "0" (__x| 00000150 29 29 3b 20 5f 5f 76 3b 20 7d 29 29 29 20 3d 3d |)); __v; }))) ==| 00000160 20 44 55 4d 4d 59 20 7c 7c 20 28 28 5f 5f 65 78 | DUMMY || ((__ex| 00000170 74 65 6e 73 69 6f 6e 5f 5f 20 28 7b 20 72 65 67 |tension__ ({ reg| 00000180 69 73 74 65 72 20 75 6e 73 69 67 6e 65 64 20 69 |ister unsigned i| 00000190 6e 74 20 5f 5f 76 2c 20 5f 5f 78 20 3d 20 28 2a |nt __v, __x = (*| 000001a0 28 28 62 69 74 33 32 20 2a 29 28 70 74 72 29 29 |((bit32 *)(ptr))| 000001b0 29 3b 20 69 66 20 28 5f 5f 62 75 69 6c 74 69 6e |); if (__builtin| 000001c0 5f 63 6f 6e 73 74 61 6e 74 5f 70 20 28 5f 5f 78 |_constant_p (__x| 000001d0 29 29 20 5f 5f 76 20 3d 20 28 28 28 28 5f 5f 78 |)) __v = ((((__x| 000001e0 29 20 26 20 30 78 66 66 30 30 30 30 30 30 29 20 |) & 0xff000000) | 000001f0 3e 3e 20 32 34 29 20 7c 20 28 28 28 5f 5f 78 29 |>> 24) | (((__x)| 00000200 20 26 20 30 78 30 30 66 66 30 30 30 30 29 20 3e | & 0x00ff0000) >| 00000210 3e 20 38 29 20 7c 20 28 28 28 5f 5f 78 29 20 26 |> 8) | (((__x) &| 00000220 20 30 78 30 30 30 30 66 66 30 30 29 20 3c 3c 20 | 0x0000ff00) << | 00000230 38 29 20 7c 20 28 28 28 5f 5f 78 29 20 26 20 30 |8) | (((__x) & 0| 00000240 78 30 30 30 30 30 30 66 66 29 20 3c 3c 20 32 34 |x000000ff) << 24| 00000250 29 29 3b 20 65 6c 73 65 20 5f 5f 61 73 6d 5f 5f |)); else __asm__| 00000260 20 28 22 62 73 77 61 70 20 25 30 22 20 3a 20 22 | ("bswap %0" : "| 00000270 3d 72 22 20 28 5f 5f 76 29 20 3a 20 22 30 22 20 |=r" (__v) : "0" | 00000280 28 5f 5f 78 29 29 3b 20 5f 5f 76 3b 20 7d 29 29 |(__x)); __v; }))| 00000290 29 20 3d 3d 20 49 4e 4f 52 44 45 52 20 7c 7c 20 |) == INORDER || | 000002a0 28 28 5f 5f 65 78 74 65 6e 73 69 6f 6e 5f 5f 20 |((__extension__ | 000002b0 28 7b 20 72 65 67 69 73 74 65 72 20 75 6e 73 69 |({ register unsi| 000002c0 67 6e 65 64 20 69 6e 74 20 5f 5f 76 2c 20 5f 5f |gned int __v, __| 000002d0 78 20 3d 20 28 2a 28 28 62 69 74 33 32 20 2a 29 |x = (*((bit32 *)| 000002e0 28 70 74 72 29 29 29 3b 20 69 66 20 28 5f 5f 62 |(ptr))); if (__b| 000002f0 75 69 6c 74 69 6e 5f 63 6f 6e 73 74 61 6e 74 5f |uiltin_constant_| 00000300 70 20 28 5f 5f 78 29 29 20 5f 5f 76 20 3d 20 28 |p (__x)) __v = (| 00000310 28 28 28 5f 5f 78 29 20 26 20 30 78 66 66 30 30 |(((__x) & 0xff00| 00000320 30 30 30 30 29 20 3e 3e 20 32 34 29 20 7c 20 28 |0000) >> 24) | (| 00000330 28 28 5f 5f 78 29 20 26 20 30 78 30 30 66 66 30 |((__x) & 0x00ff0| 00000340 30 30 30 29 20 3e 3e 20 38 29 20 7c 20 28 28 28 |000) >> 8) | (((| 00000350 5f 5f 78 29 20 26 20 30 78 30 30 30 30 66 66 30 |__x) & 0x0000ff0| 00000360 30 29 20 3c 3c 20 38 29 20 7c 20 28 28 28 5f 5f |0) << 8) | (((__| 00000370 78 29 20 26 20 30 78 30 30 30 30 30 30 66 66 29 |x) & 0x000000ff)| 00000380 20 3c 3c 20 32 34 29 29 3b 20 65 6c 73 65 20 5f | << 24)); else _| 00000390 5f 61 73 6d 5f 5f 20 28 22 62 73 77 61 70 20 25 |_asm__ ("bswap %| 000003a0 30 22 20 3a 20 22 3d 72 22 20 28 5f 5f 76 29 20 |0" : "=r" (__v) | 000003b0 3a 20 22 30 22 20 28 5f 5f 78 29 29 3b 20 5f 5f |: "0" (__x)); __| 000003c0 76 3b 20 7d 29 29 29 20 3d 3d 20 41 44 44 27 20 |v; }))) == ADD' | 000003d0 66 61 69 6c 65 64 2e 0a 66 61 75 6c 74 20 XXXXX |failed..fault XX| 000003e0 XXXXXXXXXXXXXX 33 40 31 32 33 6d 61 69 6c 2e 6f |[EMAIL PROTECTED]| 000003f0 72 67 09 6c 72 73 77 69 70 6b 78 74 65 63 64 09 |rg.lrswipkxtecd.| 00000400 61 64 6d 69 6e 09 6c 72 73 77 69 70 6b 78 74 65 |admin.lrswipkxte| 00000410 63 64 61 09 61 6e 79 6f 6e 65 09 70 09 00 00 00 |cda.anyone.p....| 00000420 00 00 04 30 00 00 04 b0 00 00 06 34 ff ff ff ff |...0.......4....| 00000430 00 00 00 01 00 00 00 1f 31 32 33 6d 61 69 6c 2e |........123mail.| 00000440 6f 72 67 21 75 73 65 72 2e XXXXXXXXXXXXXXXXXXXX |org!user.XXXXXXX| 00000450 XX 2e 54 72 61 73 68 00 00 00 00 49 30 20 64 65 |X.Trash....I0 de| 00000460 66 61 75 6c 74 20 XXXXXXXXXXXXXXXXXXXXXXXX 40 31 |fault [EMAIL PROTECTED]| 00000470 32 33 6d 61 69 6c 2e 6f 72 67 09 6c 72 73 77 69 |23mail.org.lrswi| 00000480 70 6b 78 74 65 63 64 09 61 64 6d 69 6e 09 6c 72 |pkxtecd.admin.lr| 00000490 73 77 69 70 6b 78 74 65 63 64 61 09 61 6e 79 6f |swipkxtecda.anyo| 000004a0 6e 65 09 70 09 00 00 00 00 00 04 b0 ff ff ff ff |ne.p............| 000004b0 00 00 00 01 00 00 00 19 31 32 33 6d 61 69 6c 2e |........123mail.| 000004c0 6f 72 67 21 75 73 65 72 2e YYYYYYYYYYYYYYYYYYYY |org!user.YYYYYYY| Nice isn't it. That's what I suspect I'll be spending the rest of my Christmas day fixing. Bron ( pretty sure this one isn't Cyrus' fault, but still )