Summary: | UnexpectedResponseReceived Unhandled ENABLED response␍␊ENABLE ␊␊ | ||
---|---|---|---|
Product: | [Unmaintained] trojita | Reporter: | Dennis Schridde <heri+kde> |
Component: | IMAP | Assignee: | Trojita default assignee <trojita-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | git | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/trojita/8152670c3715769753ceec5ac55a04853b086450 | Version Fixed In: | |
Sentry Crash Report: |
Description
Dennis Schridde
2015-07-07 17:16:38 UTC
Actually it does not happen when open "any" folder. It happens when I open one folder and afterwards open another. Looks like a server error - the response is "ENABLE ␊␊" (notice the double LF) https://tools.ietf.org/html/rfc3501#section-2.2 ---------------------------------------------------------- 2.2. Commands and Responses [...] All interactions transmitted by client and server are in the form of lines, that is, strings that end with a CRLF. The protocol receiver of an IMAP4rev1 client or server is either reading a line, or is reading a sequence of octets with a known count followed by a line. ---------------------------------------------------------- Since there's a small chance trojita or the network stack screw bytes locally, can you reproduce this with another mail server (eventually even not with another cyrus server, could be a broken config or something)? So the server always writes a double LF instead of CRLF? And you are sure that ENABLED vs. ENABLE, which the error message suggests, is not the actual issue? Wireshark logs (before Trojita issues STARTTLS): * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE MUPDATE=mupdate://cyrus-portal/ STARTTLS AUTH=PLAIN AUTH=LOGIN SASL-IR] cyrus-portal01 Cyrus IMAP Murder v2.4.17-Fedora-RPM-2.4.17-8.el7_1 server ready\x0d\x0a So the linefeeds seem to be correct. Maybe they are just wrong in the debug console? This is a bug in Cyrus, so I reported [1] it to their upstream. A quick workaround is to disable QRESYNC and CONDSTORE extensions in Trojita (IMAP -> Settings -> IMAP -> Blacklist protocol extensions). A patch which relaxes Trojita's expectations is available for review at [2]. [1] https://bugzilla.cyrusimap.org/show_bug.cgi?id=3898 [2] https://gerrit.vesnicky.cesnet.cz/r/464 Git commit 8152670c3715769753ceec5ac55a04853b086450 by Jan Kundrát. Committed on 18/07/2015 at 08:59. Pushed by gerrit into branch 'master'. IMAP: Ignore empty ENABLED responses when switching mailboxes Some versions of Cyrus send out extra ENABLED responses. Trojita already contains code (see bug 329204) for filtering them out in case they look relevant to CONDSTORE or QRESYNC, but it turns out that sometimes we get back an empty ENABLED as well. There is a couple of options here, either to play the guessing game and add a kludge to silently eat the empty ENABLED to fix this particular bug, or to change the code to accept any possible ENABLED response while switching mailboxes. Related: bug 329204 Upstream-Bug: https://bugzilla.cyrusimap.org/show_bug.cgi?id=3898 Change-Id: I7ce7e663108d5b64a46580fb4aaa57c4cf379445 M +11 -1 src/Imap/Tasks/ObtainSynchronizedMailboxTask.cpp M +15 -1 tests/Imap/test_Imap_Tasks_ObtainSynchronizedMailbox.cpp M +2 -1 tests/Imap/test_Imap_Tasks_ObtainSynchronizedMailbox.h http://commits.kde.org/trojita/8152670c3715769753ceec5ac55a04853b086450 Thanks! I tried 0.5.git.1437920489.7bd16b2 and it seems to work with our server now. |