Message not found (FETCH) ** Exception time: Wed, 11 Apr 2012 05:35:04 +0400
** Thread number/reuse/id:356 0 2412
** API Calls: GetTickCount sqlite3_finalize
по логу, вроде как, ничего криминального..
05:35:01 369 100.587 STATUS "Deleted Messages" (UIDNEXT UNSEEN)
05:35:02 21 80.536 FETCH 808:* (INTERNALDATE UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (date subject from to cc message-id in-reply-to references x-priority x-mail-rss-source-name x-uniform-type-identifier x-universally-unique-identifier received-spf x-spam-status x-spam-flag)])
05:35:02 21 81.536 NOOP
05:35:02 21 82.536 UID FETCH 7383 (BODYSTRUCTURE BODY.PEEK[HEADER])
05:35:02 21 83.536 UID FETCH 7383 (BODY.PEEK[2] BODY.PEEK[1.2] BODY.PEEK[1.4] BODY.PEEK[1.1.1] BODY.PEEK[1.1.2])
05:35:02 21 84.536 UID FETCH 7383 BODY.PEEK[1.3]
05:35:04 21 85.536 IDLE
05:35:04 369 101.587 LSUB "" *
05:35:04 370 Secure connection from: 109.172.15.17:42115
05:35:04 21 86.536 UID STORE 7383 +FLAGS.SILENT ($Junk)
05:35:04 21 87.536 UID STORE 7383 -FLAGS.SILENT ($NotJunk)
05:35:04 370 1.588 CAPABILITY
05:35:04 21 88.536 UID FETCH 7383 (BODYSTRUCTURE BODY.PEEK[HEADER])
05:35:04 370 2.588 AUTHENTICATE LOGIN
05:35:04 21 89.536 UID FETCH 7383 (BODY.PEEK[2] BODY.PEEK[1.2] BODY.PEEK[1.3] BODY.PEEK[1.4]<0.338>)
05:35:04 21 90.536 UID FETCH 7383 (BODY.PEEK[1.2]<338.25994> BODY.PEEK[1.3]<338.497278> BODY.PEEK[1.4]<338.1016>)
05:35:04 370 Authorized as: ...ru
05:35:04 21 91.536 UID FETCH 7383 (BODY.PEEK[1.2]<1354.24978> BODY.PEEK[1.3]<1354.496262> BODY.PEEK[1.4]<1354.3048>)
05:35:05 370 3.588 CAPABILITY
05:35:05 21 92.536 UID FETCH 7383 (BODY.PEEK[1.2]<4402.21930> BODY.PEEK[1.3]<4402.493214> BODY.PEEK[1.4]<4402.9144>)
05:35:05 370 4.588 LIST "" ""
05:35:05 370 5.588 LIST "" *
05:35:05 21 93.536 UID FETCH 7383 (BODY.PEEK[1.2]<13546.12786> BODY.PEEK[1.3]<13546.484070> BODY.PEEK[1.4]<13546.27432>)
05:35:05 21 94.536 UID FETCH 7383 (BODY.PEEK[1.3]<40978.456638> BODY.PEEK[1.4]<40978.5580> BODY.PEEK[1.1.1] BODY.PEEK[1.1.2])
05:35:07 21 95.536 IDLE
05:35:26 367 ch1t LOGOUT
можно ли как-то отловить, что именно сбоит? может быть выводить чуть больше отладочной информации при ошибке FETCH, чтобы можно было найти индекс в базе и покопать в ту сторону?
P.S. судя по беглому анализу, подобные исключения вызывают только клиенты яблочных девайсов(
Мы уже как-то раз это обсуждали, это не исключение на самом деле (не сбой), просто для отладочного вывода использовалась та же функция. Настоящий сбой всегда с кодом исключения Windows и с дампом регистров.
Может письмо на самом деле было удалено одним клиентом, а второй не успел получить извещение об удалении и читает его. Если такие сообщения в логе неприемлемы, то я могу их отключить. Или вы отключите физическое удаление писем из архива.
Команды FETCH долгоиграющие, часто работают с сотнями или тысячами сообщений за раз, а это конкретное исключение касалось одного письма из многих в середине этого цикла, т.е. сама команда FETCH может быть за несколько минут до исключения. Можно сделать grep лога по номеру потока чтобы посмотреть, что там было в командах.