Frank
Hello,
we have a traditional murder (frontend with 2 backend servers – cyrus-imapd-3.2.6-Debian-3.2.6-2+deb11u1).
We use shared folder (group namesapce).
Moving e-mails between folders on different backend servers (from backend1 to backend2) works with Thunderbird, alpine etc. With Horde Webmail there is an error, see below.IMAP logs:
OK:
Frontend:
<1648127917<6 UID MOVE 855056 group.fritest2
>1648127917>* OK [COPYUID 1647952540 855056 11] Completed
Backend (same source and target)
<1648127917<6 UID Move 855056 {14+}
>1648127917>* OK [COPYUID 1647952540 855056 11] Completed
NOT OK:
Frontend:
<1648127910<6 UID MOVE 855054 group.fritest
>1648127910>6 OK [COPYUID 1611826992 15] Completed
Backend (source):
<1648127910<6 Uid Fetch 855054 (Flags Internaldate)
>1648127910>* 1981 FETCH (FLAGS (\Seen $Label4 NonJunk) UID 855054 INTERNALDATE "23-Mar-2022 19:55:11 +0100")
6 OK Completed (0.000 sec)
<1648127910<PROXY2 Uid Fetch 855054 (Rfc822.peek)
>1648127910>* 1981 FETCH (UID 855054 RFC822 {3129}
Return-Path: …
PROXY2 OK Completed (0.000 sec)
Backend (target):
<1648127910<6 Append {13+}
group.fritest (\Seen $Label4 NonJunk) "23-Mar-2022 19:55:11 +0100" {3129+}
Return-Path: …
>1648127910>6 OK [APPENDUID 1611826992 15] Completed
<1648127910<Q01 LOGOUT
>1648127910>* BYE LOGOUT received
Q01 OK Completed
So the responses on COPYUID are different.
When moving between different backend servers, Horde Webmail throws warnings and errors in its log file:
2022-03-24T14:18:30 WARNING: HORDE: [imp] PHP ERROR: array_combine(): Both parameters should have an equal number of elements [pid 64686 on line 4905 of "/usr/share/pear/Horde/Imap/Client/Socket.php"]
PHP source is:
case 'COPYUID': // Defined by RFC 4315 // COPYUID: [0] = UIDVALIDITY, [1] = UIDFROM, [2] = UIDTO $pipeline->data['copyuid'] = array_combine( $this->getIdsOb($rc->data[1])->ids, $this->getIdsOb($rc->data[2])->ids );So the IMAP client in Horde expects 3 values for COPYUID response (and doesn't handle if there are 2 values only – it throws errors in the following processing).
Is cyrus-imapd wrong in this case returning 2 values only (missing the source UID of the moved message)?
Thanks,
Frank--
Chemnitz University of Technology, Germany
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature