[Dovecot] Possible signed/unsigned bug in libdovecot-storage (2:2.0.14 )

Kui Zhang kuizhang at gmail.com
Sat Sep 3 12:29:07 EEST 2011


it is mdbox, file size 10M

I dont know if the message was ever copy that many times. I dont know
any way to tell.

I was able to trigger the error message with following.

a uid copy 726974 inbox_2



epoll_wait(5, {{EPOLLIN, {u32=39151008, u64=39151008}}}, 3, 18653) = 1
read(0, "a uid copy 726974 Inbox_2\n", 7545) = 26
stat("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails",
{st_dev=makedev(9, 3), st_ino=44696357, st_mode=S_IFDIR|0700,
st_nlink=2, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2011/09/02-19:27:08,
st_mtime=2011/09/03-00:05:26, st_ctime=2011/09/03-00:05:26}) = 0
stat("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails",
{st_dev=makedev(9, 3), st_ino=44696357, st_mode=S_IFDIR|0700,
st_nlink=2, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2011/09/02-19:27:08,
st_mtime=2011/09/03-00:05:26, st_ctime=2011/09/03-00:05:26}) = 0
stat("/home/user_name/mdbox/mailboxes/Inbox_2", {st_dev=makedev(9, 3),
st_ino=44696356, st_mode=S_IFDIR|0700, st_nlink=3, st_uid=1000,
st_gid=1000, st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2011/09/02-19:27:08, st_mtime=2011/09/02-19:27:08,
st_ctime=2011/09/02-19:27:08}) = 0
stat("/home/user_name/mdbox/mailboxes/Inbox_2", {st_dev=makedev(9, 3),
st_ino=44696356, st_mode=S_IFDIR|0700, st_nlink=3, st_uid=1000,
st_gid=1000, st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2011/09/02-19:27:08, st_mtime=2011/09/02-19:27:08,
st_ctime=2011/09/02-19:27:08}) = 0
stat("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails",
{st_dev=makedev(9, 3), st_ino=44696357, st_mode=S_IFDIR|0700,
st_nlink=2, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=8,
st_size=4096, st_atime=2011/09/02-19:27:08,
st_mtime=2011/09/03-00:05:26, st_ctime=2011/09/03-00:05:26}) = 0
open("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails/dovecot.index.log",
O_RDWR) = 11
fstat(11, {st_dev=makedev(9, 3), st_ino=44696360,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=40, st_size=16404,
st_atime=2011/09/02-19:32:11, st_mtime=2011/09/03-00:05:26,
st_ctime=2011/09/03-00:05:26}) = 0
pread(11, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
open("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails/dovecot.index",
O_RDWR) = 12
alarm(120)                              = 0
fcntl(12, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
alarm(0)                                = 120
fstat(12, {st_dev=makedev(9, 3), st_ino=44696353,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=72, st_size=33504,
st_atime=2011/09/03-00:05:26, st_mtime=2011/09/03-00:05:26,
st_ctime=2011/09/03-00:05:26}) = 0
pread(12, "xxxxxxxxxxxxxxxxxxxxxxxxxx")
pread(12, "xxxxxxxxxxxxxxxxxxxxxxxxxx")
fcntl(12, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
fstat(11, {st_dev=makedev(9, 3), st_ino=44696360,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=40, st_size=16404,
st_atime=2011/09/02-19:32:11, st_mtime=2011/09/03-00:05:26,
st_ctime=2011/09/03-00:05:26}) = 0
pread(11, "", 8192, 16404)              = 0
stat("/home/user_name/mdbox/storage/dovecot.map.index.log",
{st_dev=makedev(9, 3), st_ino=42730409, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=56,
st_size=22356, st_atime=2011/09/02-19:31:53,
st_mtime=2011/09/03-01:48:40, st_ctime=2011/09/03-01:48:40}) = 0
fstat(9, {st_dev=makedev(9, 3), st_ino=42730409, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=56,
st_size=22356, st_atime=2011/09/02-19:31:53,
st_mtime=2011/09/03-01:48:40, st_ctime=2011/09/03-01:48:40}) = 0
fstat(9, {st_dev=makedev(9, 3), st_ino=42730409, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=56,
st_size=22356, st_atime=2011/09/02-19:31:53,
st_mtime=2011/09/03-01:48:40, st_ctime=2011/09/03-01:48:40}) = 0
open("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails/dovecot.index.cache",
O_RDWR) = 13
fstat(13, {st_dev=makedev(9, 3), st_ino=44696366,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=1608, st_size=818176,
st_atime=2011/09/02-19:28:48, st_mtime=2011/09/02-20:11:59,
st_ctime=2011/09/02-20:11:59}) = 0
mmap(NULL, 818176, PROT_READ, MAP_SHARED, 13, 0) = 0x7f8d081f2000
pread(14, "xxxxxxxxxxxxxxxxxxxxxxxxx")
pread(14, "xxxxxxxxxxxxxxxxxxxxxxxxx")
fstat(14, {st_dev=makedev(9, 3), st_ino=42731774,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=20480, st_size=10484876,
st_atime=2011/09/02-19:26:41, st_mtime=2011/09/02-19:26:43,
st_ctime=2011/09/02-19:26:43}) = 0
stat("/home/user_name/mdbox", {st_dev=makedev(9, 3), st_ino=42729592,
st_mode=S_IFDIR|0700, st_nlink=5, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=8, st_size=4096,
st_atime=2011/04/07-09:30:08, st_mtime=2011/09/03-01:57:47,
st_ctime=2011/09/03-01:58:08}) = 0
chown("/home/user_name/mdbox", 1000, 4294967295) = 0
stat("/home/user_name/mdbox/dovecot-quota", {st_dev=makedev(9, 3),
st_ino=42730175, st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000,
st_gid=1000, st_blksize=4096, st_blocks=8, st_size=59,
st_atime=2011/09/03-01:48:40, st_mtime=2011/09/03-01:48:40,
st_ctime=2011/09/03-01:48:40}) = 0
fstat(15, {st_dev=makedev(9, 3), st_ino=42730175,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=8, st_size=59,
st_atime=2011/09/03-01:48:40, st_mtime=2011/09/03-01:48:40,
st_ctime=2011/09/03-01:48:40}) = 0
alarm(180)                              = 0
fcntl(9, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
alarm(0)                                = 180
stat("/home/user_name/mdbox/storage/dovecot.map.index.log",
{st_dev=makedev(9, 3), st_ino=42730409, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=56,
st_size=22356, st_atime=2011/09/02-19:31:53,
st_mtime=2011/09/03-01:48:40, st_ctime=2011/09/03-01:48:40}) = 0
fstat(9, {st_dev=makedev(9, 3), st_ino=42730409, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=56,
st_size=22356, st_atime=2011/09/02-19:31:53,
st_mtime=2011/09/03-01:48:40, st_ctime=2011/09/03-01:48:40}) = 0
stat("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails/dovecot.index.log.2",
{st_dev=makedev(9, 3), st_ino=44696358, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=144,
st_size=66812, st_atime=2011/09/02-19:27:08,
st_mtime=2011/09/02-19:32:11, st_ctime=2011/09/02-19:32:11}) = 0
alarm(180)                              = 0
fcntl(11, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
alarm(0)                                = 180
stat("/home/user_name/mdbox/mailboxes/Inbox_2/dbox-Mails/dovecot.index.log",
{st_dev=makedev(9, 3), st_ino=44696360, st_mode=S_IFREG|0600,
st_nlink=1, st_uid=1000, st_gid=1000, st_blksize=4096, st_blocks=40,
st_size=16404, st_atime=2011/09/02-19:32:11,
st_mtime=2011/09/03-00:05:26, st_ctime=2011/09/03-00:05:26}) = 0
fstat(11, {st_dev=makedev(9, 3), st_ino=44696360,
st_mode=S_IFREG|0600, st_nlink=1, st_uid=1000, st_gid=1000,
st_blksize=4096, st_blocks=40, st_size=16404,
st_atime=2011/09/02-19:32:11, st_mtime=2011/09/03-00:05:26,
st_ctime=2011/09/03-00:05:26}) = 0
fcntl(9, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
fcntl(11, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
write(1, "a NO [CANNOT] Message has been copied too many times (32767
+ 1)\r\n", 66) = 66
epoll_wait(5, {}, 3, 5000)              = 0
epoll_wait(5, {}, 3, 4)                 = 0





15642 timeout_reset(0x25565c0, 0x254632a, 3, 32704, 0x203a2961632e79)     = 1
15642 i_stream_read(0x2556300, 0x2999108, 0, 0x25565c0, 8)                = 26
15642 o_stream_ref(0x25564b8, 0x2559e0d, 0, 26, 8)                        = 26
15642 o_stream_cork(0x25564b8, 0x2559e0d, 0, 26, 8)                       = 1
15642 t_push(0x2555ed0, 1, 0x2556440, 26, 8)                              = 3
15642 i_stream_get_data(0x2556300, 0x7fffb16662c0, 4, 32704, 8)
   = 0x2559e0d
15642 buffer_create_dynamic(0x2556620, 40, 0x2556600, 1856, 8)
   = 0x25566c0
15642 imap_parser_read_word(0x25557a0, 0x2555ef8, 0x2556600, 1760, 8)
   = 0x255bd08
15642 p_strdup(0x2556620, 0x255bd08, 0, 97, 8)
   = 0x2556720
15642 imap_parser_read_word(0x25557a0, 0x255bd0a, 0, 97, 0x255bd08)
   = 0x255bd10
15642 p_strdup(0x2556620, 0x255bd10, 0, 25705, 0x255bd08)
   = 0x2556728
15642 t_str_new(128, 0x255bd14, 0, 0x646975, 0x255bd10)
   = 0x2523088
15642 str_append_c(0x2523088, 91, 0, 98, 128)
   = 0x25230c0
15642 str_append(0x2523088, 0x254c420, 1, 91, 128)
   = 0x25230c1
15642 str_len(0x2523088, 0x254c431, 0, 0x6f6840736e6f726f,
0x61632e7961777473) = 18
15642 str_append_c(0x2523088, 32, 0, 0x6f6840736e6f726f,
0x61632e7961777473) = 0x25230d2
15642 str_append(0x2523088, 0x2556728, 0, 32, 0x61632e7961777473)
   = 0x25230d3
15642 str_append_c(0x2523088, 93, 0, 25705, 0x2556728)
   = 0x25230d6
15642 str_c(0x2523088, 0x7fffb166624d, 0, 93, 0x2556728)
   = 0x25230c0
15642 process_title_set(0x25230c0, 0x7fffb166624d, 0, 93, 0x2556728)
   = 0x7fffb1666bc0
15642 array_bsearch_i(0x61feb0, 0x2556728, 0x411510,
0x5d6469752061632e, 0x746f6365766f642f <unfinished ...>
15642 strcasecmp("uid", "NOOP")                                           = 7
15642 strcasecmp("uid", "UID COPY")                                       = -32
15642 strcasecmp("uid", "STATUS")                                         = 2
15642 strcasecmp("uid", "THREAD")                                         = 1
15642 strcasecmp("uid", "UID")                                            = 0
15642 <... array_bsearch_i resumed> )
   = 0x252ca98
15642 imap_parser_read_word(0x25557a0, 0x41bd4e, 0, 0, 0)
   = 0x255bd18
15642 t_strconcat(0x41b57d, 0x255bd18, 0, 0x79706f63, 0)
   = 0x2523170
15642 array_bsearch_i(0x61feb0, 0x2523170, 0x411510, 32432, 0x255bd18
<unfinished ...>
15642 strcasecmp("UID copy", "NOOP")                                      = 7
15642 strcasecmp("UID copy", "UID COPY")                                  = 0
15642 <... array_bsearch_i resumed> )
   = 0x252cab0
15642 p_strconcat(0x2556620, 0x41b57d, 0x255bd18, 0, 0)
   = 0x2556730
15642 imap_parser_read_args(0x25557a0, 2, 0, 0x7fffb16660d8, 0x255bd18)   = 2
15642 t_str_new(256, 0, 0, 146, 32)
   = 0x2523198
15642 imap_write_args(0x2523198, 0x255bc28, 0, 0, 0)
   = 0x25231d7
15642 str_c(0x2523198, 0x255bd2f, 0, 0x325f786f, 0x255bd28)
   = 0x25231d0
15642 p_strdup(0x2556620, 0x25231d0, 0, 0x325f786f, 0x255bd28)
   = 0x2556740
15642 imap_arg_get_astring(0x255bc28, 0x7fffb16660d0, 24,
0x325f786f626e49, 0x25231d0) = 1
15642 imap_arg_get_astring(0x255bc48, 0x7fffb16660d0, 32,
0x325f786f626e49, 0x25231d0) = 1
15642 mail_search_build_init(0x2556640, 0x255bd20, 1, 0x7fffb16661f0,
0x25231d0) = 0x2568920
15642 buffer_create_dynamic(0x2568900, 128, 0x25688e0, 3840, 8)
   = 0x25689e0
15642 imap_seq_set_parse(0x255bd20, 0x2568968, 0x25688e0, 3656, 8)        = 0
15642 mail_search_args_init(0x2568920, 0x2556e50, 1, 0x2555fb0,
0x7fffb1666068) = 4
15642 mail_namespace_find(0x2550340, 0x7fffb1666108, 0x7fffb16661d8,
0x7fffb166620c, 8) = 0x2550340
15642 strlen("Inbox_2")                                                   = 7
15642 strlen("Inbox_2")                                                   = 7
15642 mailbox_list_get_mailbox_name_status(0x2552930, 0x255bd28,
0x7fffb166620c, 47, 0x255bd28) = 0
15642 mailbox_get_namespace(0x2556e50, 0x2550340, 0x255bd28, 0, 0)
   = 0x2550340
15642 mailbox_get_name(0x2556e50, 0x2550340, 0x2550340, 0, 0)
   = 0x25570c0
15642 strcmp("INBOX", "Inbox_2")                                          = -32
15642 strcasecmp("INBOX", "INBOX")                                        = 0
15642 strcasecmp("Inbox_2", "INBOX")                                      = 95
15642 mailbox_alloc(0x2552930, 0x255bd28, 10, 0, 95)
   = 0x2569930
15642 mailbox_open(0x2569930, 0, 2, 32024, 104)                           = 0
15642 mailbox_transaction_begin(0x2569930, 6, 0x7f8d0e5aa560, 32024,
0)   = 0x299cb20
15642 t_str_new(256, 0x7fffb1666120, 0, 0x299cc00, 0x7f8d0df1aeb8)
   = 0x25235f8
15642 mailbox_transaction_begin(0x2556e50, 0, 0, 0, 0)
   = 0x256c590
15642 mailbox_search_init(0x256c590, 0x2568920, 0, 0x256dc20,
0x7f8d0df1aeb8) = 0x256dc50
15642 mail_alloc(0x256c590, 0, 0, 3, 32)
   = 0x256e440
15642 mailbox_search_next(0x256dc50, 0x256e440, 0x7f8d0e5aa560, 30976, 88) = 1
15642 mailbox_save_alloc(0x299cb20, 726974, 0, 0x256dd30, 0)
   = 0x256dee0
15642 mailbox_save_copy_flags(0x256dee0, 0x256e440, -1, 0, 0)             = 12
15642 mailbox_copy(0x7fffb16661c0, 0x256e440, 44, 0x2902410, 726974)      = 0
15642 mailbox_search_next(0x256dc50, 0x256e440, 0, 0xffffffff,
0x7f8d0df19580) = 0
15642 mail_free(0x7fffb16661b8, 40, 0, 0x7fffb1666080, 0x7f8d0df19580)    = 2065
15642 str_printfa(0x25235f8, 0x41bd53, 726974, 726974, 48)                = 130
15642 mailbox_search_deinit(0x7fffb16661d0, 6, 0x2523636, 0x41bd55, 0)    = 0
15642 mailbox_transaction_commit(0x7fffb16661c8, 2, 0x256de00, 132976, 0) = 0
15642 str_c(0x25235f8, 0, 0x256d3b0, 132976, 56)
   = 0x2523630
15642 mail_search_args_unref(0x7fffb16661f0, 0, 0x256d3b0, 132976, 56)    = 4113
15642 t_str_new(256, 0, 0x2996cb0, 132976, 120)
   = 0x2523758
15642 mailbox_transaction_commit_get_changes(0x7fffb16661f8,
0x7fffb1666170, 0, 0, 0) = 0xffffffff
15642 mailbox_get_storage(0x2569930, 0, 0x7f8d0e5aa560, 30624, 48)
   = 0x2553140
15642 mailbox_free(0x7fffb1666200, 0, 0x7f8d0e5aa560, 0x2569930, 48)      = 7201
15642 mailbox_is_inconsistent(0x2556e50, 0x2553140, 0x299cc80, 132976, 8) = 0
15642 mail_storage_get_last_error(0x2553140, 0x7fffb166612c,
0x4d9de690, 132976, 8) = 0x2573bf0
15642 t_strdup_printf(0x41b1d7, 0x41b19d, 0x2573bf0, 132976, 8)
   = 0x2523890
15642 o_stream_send_str(0x25564b8, 0x2556720, 0x2523010, 30560, 0)        = 1
15642 o_stream_send(0x25564b8, 0x419dd1, 1, 97, 0x2556720)                = 1
15642 o_stream_send_str(0x25564b8, 0x2523890, 0, 32, 0x2556720)           = 62
15642 o_stream_send(0x25564b8, 0x41b5cf, 2, 0x3233282073656d69,
0x2931202b20373637) = 2
15642 timeout_reset(0x25565c0, 0x41b5d1, 0, 2573, 0x2931202b20373637)     = 2
15642 imap_parser_reset(0x25557a0, 0x29999d8, 0, 0x25565c0, 8)
   = 0x25557d0
15642 t_str_new(128, 0, 0, -5, 16)
   = 0x25238e8
15642 str_append_c(0x25238e8, 91, 0, 98, 128)
   = 0x2523920
15642 str_append(0x25238e8, 0x254c420, 1, 91, 128)
   = 0x2523921
15642 str_append_c(0x25238e8, 93, 0, 0x6f6840736e6f726f,
0x61632e7961777473) = 0x2523932
15642 str_c(0x25238e8, 0x7fffb166621d, 0, 93, 0x61632e7961777473)
   = 0x2523920
15642 process_title_set(0x2523920, 0x7fffb166621d, 0, 93,
0x61632e7961777473) = 0x7fffb1666beb
15642 t_pop_check(0x7fffb16662cc, 171, 0xabababababababab, 414, 4)        = 3
15642 t_push(0x7fffb16662cc, 171, 0x7f8d0e5aa560, 32704, 4)               = 3
15642 i_stream_get_data(0x2556300, 0x7fffb16662b8, 4, 32704, 4)
   = 0x2559e26
15642 i_stream_skip(0x2556300, 1, 1, 1, 4)                                = 1
15642 i_stream_get_data(0x2556300, 0x7fffb16662c0, 647, 0x25562a0, 4)     = 0
15642 t_pop_check(0x7fffb16662cc, 0x7fffb16662c0, 0x25562a0, 647, 4)      = 3
15642 mailbox_transaction_get_count(0x2556e50, 0x7fffb16662c0,
0x7f8d0e5aa560, 32704, 4) = 0
15642 o_stream_uncork(0x25564b8, 0, 0x7f8d0e5aa560, 32704, 4)             = 0
15642 o_stream_unref(0x7fffb1666310, 0, 66, 0, 4)                         = 1
15642 i_stream_get_data(0x2556300, 0x7fffb16662e8, 66, 0, 4)              = 0


Thanks for checking

KuiZ



On Fri, Sep 2, 2011 at 10:36 PM, Timo Sirainen <tss at iki.fi> wrote:
> On 3.9.2011, at 6.06, Kui Zhang wrote:
>
>> We are getting following errors when moving mail from inbox to any folder.
>>
>> "Message has been copied too many times (32767+1)"
>
> mdbox? Is it actually copied that many times?
>
>



More information about the dovecot mailing list