Регистрация...

Eserv Forum / E4 / Mail / A29 BAD FETCH: error: digit_nz

recent wikipost // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
С последними версиями библиотеки SQlite лог IMAP сервера полон записей вида:

A29 BAD FETCH: error: digit_nz

A29 BAD FETCH: error: digit_nz

A29 BAD FETCH: error: digit_nz

что это? как можно отловить?
 
Комментарии к этой версии (24.03.2016 09:51) [~asm] 63aacad9
АвторДатаТекстtags
ac25.03.2016 00:32
Попробуйте вот эту версию: http://www.eserv.ru/download/acIMAP_511_437_2016-01-12_1.rar
wikipost
asm25.03.2016 10:57
ред: 25.03.2016 10:58
Андрей, а можно сборку под 4.х?! спасибо!
wikipost
asm25.03.2016 11:00
внутри оба, спасибо!
wikipost
asm25.03.2016 11:15
не помогло, ровно то же самое сообщение
wikipost
ac25.03.2016 11:58
Пришлите на support@ фрагмент IMAP-лога, где на FETCH такой ответ.
wikipost
asm25.03.2016 13:29
проблематично, так как в acimap.log ошибка выводится без дампа времени. можно добавить как-то для отладки?

Заодно, Андрей, какой функцией раскодировать IMAP кодиоровку UTF-7 в читабельную ?
wikipost
ac26.03.2016 14:54
asm пишет: в acimap.log ошибка выводится без дампа времени

В DATA\log\IMAPS\ по умолчанию очень подробно и с метками времени.

asm пишет: какой функцией раскодировать IMAP кодиоровку UTF-7 в читабельную

Если имеется в виду Eserv'ная функция, то это UTF7-IMAP> ( a1 u1 -- a2 u2 ). (Реализация в ~ac/lib/lin/iconv/utf7-imap.f).
wikipost
asm29.03.2016 18:11
у меня Pig* .. включил там и отладочный лог и максимальной уровень лога, но ни BAD FETCH ни digit_nz не встречаются

как можно добавить в вывод исключений в acimap еще метку времени?
wikipost
pig29.03.2016 23:24
За отладочный вывод отвечает строка 2024. Там всё должно быть.
А вообще в протокольные журналы что-нибудь попадает? Мне странно, что ответ сервера клиенту (в другом месте я BAD FETCH не нашёл) вместо нормального логирования попадает в acIMAP.log. Причём безотносительно разрешения отладочного лога.
Скорее всего, в acIMAP.exe что-то поменялось, и мой устаревший конфиг мышей не ловит.
wikipost
asm30.03.2016 09:15
ред: 30.03.2016 09:17
отловил

08:57:38 6 217.66.158.37;@;IN: A2 NOOP
08:57:38 6 217.66.158.37;@;OUT: A2 OK NOOP completed
08:57:38 6 217.66.158.37;@;IN: A3 CAPABILITY
08:57:38 6 217.66.158.37;@;OUT: * CAPABILITY IMAP4rev1 AUTH=LOGIN IDLE STARTTLS QUOTA NAMESPACE ACL RIGHTS=texk
08:57:38 6 217.66.158.37;@;OUT: A3 OK CAPABILITY completed
08:57:39 6 217.66.158.37;@;IN: A4 LOGIN "user@domain" "..."
08:57:39 6 217.66.158.37;user@domain;OUT: * CAPABILITY IMAP4rev1 LITERAL+ IDLE
08:57:39 6 217.66.158.37;user@domain;OUT: A4 OK LOGIN completed (user@domain)
08:57:39 6 217.66.158.37;user@domain;IN: A5 NAMESPACE
08:57:39 6 217.66.158.37;user@domain;OUT: * NAMESPACE "/" NIL "/"
08:57:39 6 217.66.158.37;user@domain;OUT: A5 OK NAMESPACE command completed
08:57:39 6 217.66.158.37;user@domain;IN: A6 LIST %08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "INBOX"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "Sent/Spam"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "Sent"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "Temp"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BC4EQAQw- &BDQEPg- 2015"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BBQEFQQaBB4EIAQQBBsEIQQiBCAEHgQZ-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BB0EEAQUBC8-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BCIEFQQaBB0EHgQh-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BBoEGwQYBBwEHgQSBBgEJw-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BB8EFQQiBCAEHgQcBBUEIgQQBBsEGw-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BBwEMARABDgETw- &BBQENQQ9BDgEQQQ+BDIEMA-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "Sent/&BBAEOwQ1BD0EMA-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BCEEPwQ4BEEEOgQ4- &BDoEOwQ4BDUEPQRCBD4EMg-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BC4EIAQQ- &BB8EEAQSBBsEHgQS-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BBoEHgQSBBAEGwQVBBI-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BBEEQwRFBDMEMAQ7BEIENQRABDgETw-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BBYEFQQdBC8-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCMENAQwBDsENQQ9BD0ESwQ1-"
08:57:39 6 217.66.158.37;user@domain;OUT: * LIST () "/" "&BCAEMAQxBD4EQgQw-/&BCEEPwQ4BEEEOgQ4- &BDoEOwQ4BDUEPQRCBD4EMg-/&BB0EMARIBDg- &BD4EPwQ+BDIENQRJBDUEPQQ4BE8-"
08:57:39 6 217.66.158.37;user@domain;OUT: A6 OK LIST completed
08:57:39 6 217.66.158.37;user@domain;IN: A7 LIST "&BCAEMAQxBD4EQgQw-/&BCEEPwQ4BEEEOgQ4- &BDoEOwQ4BDUEPQRCBD4EMg-/&BB0EMARIBDg- &BD4EPwQ+BDIENQRJBDUEPQQ4BE8-/" *
08:57:39 6 217.66.158.37;user@domain;OUT: A7 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A8 LIST "&BCMENAQwBDsENQQ9BD0ESwQ1-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A8 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A9 LIST "&BCAEMAQxBD4EQgQw-/&BBYEFQQdBC8-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A9 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A10 LIST "&BCAEMAQxBD4EQgQw-/&BBEEQwRFBDMEMAQ7BEIENQRABDgETw-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A10 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A11 LIST "&BCAEMAQxBD4EQgQw-/&BBoEHgQSBBAEGwQVBBI-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A11 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A12 LIST "&BCAEMAQxBD4EQgQw-/&BC4EIAQQ- &BB8EEAQSBBsEHgQS-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A12 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A13 LIST "&BCAEMAQxBD4EQgQw-/&BCEEPwQ4BEEEOgQ4- &BDoEOwQ4BDUEPQRCBD4EMg-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A13 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A14 LIST "Sent/&BBAEOwQ1BD0EMA-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A14 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A15 LIST "&BCAEMAQxBD4EQgQw-/&BBwEMARABDgETw- &BBQENQQ9BDgEQQQ+BDIEMA-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A15 OK LIST completed
08:57:40 6 217.66.158.37;user@domain;IN: A16 LIST "&BCAEMAQxBD4EQgQw-/&BB8EFQQiBCAEHgQcBBUEIgQQBBsEGw-/" *
08:57:40 6 217.66.158.37;user@domain;OUT: A16 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A17 LIST "&BCAEMAQxBD4EQgQw-/&BBoEGwQYBBwEHgQSBBgEJw-/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A17 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A18 LIST "&BCAEMAQxBD4EQgQw-/&BCIEFQQaBB0EHgQh-/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A18 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A19 LIST "&BCAEMAQxBD4EQgQw-/&BB0EEAQUBC8-/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A19 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A20 LIST "&BCAEMAQxBD4EQgQw-/&BBQEFQQaBB4EIAQQBBsEIQQiBCAEHgQZ-/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A20 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A21 LIST "&BCAEMAQxBD4EQgQw-/&BC4EQAQw- &BDQEPg- 2015/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A21 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A22 LIST "Temp/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A22 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A23 LIST "&BCAEMAQxBD4EQgQw-/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A23 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A24 LIST "Sent/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A24 OK LIST completed
08:57:41 6 217.66.158.37;user@domain;IN: A25 LIST "Sent/Spam/" *
08:57:41 6 217.66.158.37;user@domain;OUT: A25 OK LIST completed
08:57:42 6 217.66.158.37;user@domain;IN: A26 LIST "&BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA-/" *
08:57:42 6 217.66.158.37;user@domain;OUT: A26 OK LIST completed
08:57:42 6 217.66.158.37;user@domain;IN: A27 LIST "INBOX/" *
08:57:42 6 217.66.158.37;user@domain;OUT: A27 OK LIST completed
08:57:43 6 217.66.158.37;user@domain;OUT: * FLAGS ($Forwarded $MDNSent \Answered \Flagged \Deleted \Draft \Seen $label1 $label2 $label3 $label4 $label5 Junk NonJunk Hidden ambiguous)
08:57:43 6 217.66.158.37;user@domain;OUT: * 1341 EXISTS
08:57:43 6 217.66.158.37;user@domain;OUT: * 4 RECENT
08:57:43 6 217.66.158.37;user@domain;OUT: * OK [UIDVALIDITY 590] UID validity status
08:57:43 6 217.66.158.37;user@domain;OUT: * OK [UNSEEN 1338] first unseen message in this box
08:57:43 6 217.66.158.37;user@domain;OUT: * OK [PERMANENTFLAGS ($Forwarded $MDNSent \* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags
08:57:43 6 217.66.158.37;user@domain;OUT: * OK [UIDNEXT 3305] Predicted next UID
08:57:43 6 217.66.158.37;user@domain;OUT: A28 OK [READ-WRITE] SELECT completed (INBOX)
08:57:44 6 217.66.158.37;user@domain;IN: A29 UID FETCH 3165 BODY.PEEK[0.2]

-> A29 BAD FETCH: error: digit_nz

к Sqlite-у отношения не имеет.. какой-то смартфон от Microsoft
wikipost
ac01.04.2016 01:17
Вот описание этого поля команды FETCH:

RFC пишет: BODY[<section>]<<partial>>
The text of a particular body section. The section
specification is a set of zero or more part specifiers
delimited by periods. A part specifier is either a part number
or one of the following: HEADER, HEADER.FIELDS,
HEADER.FIELDS.NOT, MIME, and TEXT. An empty section
specification refers to the entire message, including the
header.

Every message has at least one part number. Non-[MIME-IMB]
messages, and non-multipart [MIME-IMB] messages with no
encapsulated message, only have a part 1.

Multipart messages are assigned consecutive part numbers, as
they occur in the message. If a particular part is of type
message or multipart, its parts MUST be indicated by a period
followed by the part number within that nested multipart part.

A part of type MESSAGE/RFC822 also has nested part numbers,
referring to parts of the MESSAGE part's body.

BODY.PEEK[<section>]<<partial>>
An alternate form of BODY[<section>] that does not implicitly
set the \Seen flag.


Вот соответствующий BNF для section из того же RFC:

section = "[" [section-spec] "]" section-msgtext = "HEADER" / "HEADER.FIELDS" [".NOT"] SP header-list / "TEXT" ; top-level or MESSAGE/RFC822 part section-part = nz-number *("." nz-number) ; body part nesting nz-number = digit-nz *DIGIT ; Non-zero unsigned 32-bit integer ; (0 < n < 4,294,967,296) digit-nz = %x31-39 ; 1-9


То есть нумерация частей начинается с 1, нуля там не может быть. На этом digit-nz acIMAP и спотыкается (его парсер дословно следует BNF из стандарта), когда обнаруживает 0 в BODY.PEEK[0.2].

Вывод: этот IMAP-клиент нарушает стандарт. Можно было бы подстроиться и не выдавать ошибку "BAD FETCH" в этом случае, но какую секцию отдавать клиенту по [0.2] — непонятно все равно.
wikipost
ac01.04.2016 01:19
pig пишет: Скорее всего, в acIMAP.exe что-то поменялось, и мой устаревший конфиг мышей не ловит.

По функционалу логов не менялось ничего давно.
wikipost
ac01.04.2016 01:29
А если удалить/переместить это письмо (3165) — через веб, например — то дальше будет работать нормально? Может в этом письме какая-то особенность, что сбивает с толку MIME-парсер...
wikipost
asm01.04.2016 09:21
отправил вам письмо на support@
wikipost
ac24.05.2016 03:48
Вот эта версия должна помочь: http://www.eserv.ru/download/acIMAP_512_438_2016-05-24_1.rar — просто пропускает нули в номере секции.
wikipost
Работает на Eserv/5.05567 (10.02.2020)