Crash: setannotation Trash "/vendor/cmu/cyrus-imapd/expire" ("value.shared" NIL)
Hi,
Using 2.2.9 (ubuntu 14.04 LTS) and sending the following command, the server crashes when I try to delete an annotation:
… login … C: 2 setannotation Trash "/vendor/cmu/cyrus-imapd/expire" ("value.shared" NIL)
Apr 27 09:29:16 backend1 dovecot: imap-login: Login: user=<heiko>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=6651, secured Apr 27 09:29:16 backend1 dovecot: imap(heiko): Fatal: master: service(imap): child 6651 killed with signal 11 (core dumped)
Sending a real value it works:
… login … C: 2 setannotation Trash "/vendor/cmu/cyrus-imapd/expire" ("value.shared" "27") S: 2 OK Completed.
Is this a known bug that is fixed in later releases?
Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
-- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --------------- key ID: F69376CE - ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 ------------ -
Hi,
… login … C: 2 setannotation Trash "/vendor/cmu/cyrus-imapd/expire" ("value.shared" NIL)
Apr 27 09:29:16 backend1 dovecot: imap-login: Login: user=<heiko>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=6651, secured Apr 27 09:29:16 backend1 dovecot: imap(heiko): Fatal: master: service(imap): child 6651 killed with signal 11 (core dumped)
This doesn't seem to be dovecot core's fault, it's probably crashing in the METADATA plugin. Does anybody else use it?
Is it alive as a project? (Last Update of the mercurial repository http://hg.dovecot.org/dovecot-metadata-plugin was 2013 .
Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
-- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --------------- key ID: F69376CE - ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 ------------ -
On 27.04.2016 11:00, Heiko Schlittermann wrote:
Hi,
… login … C: 2 setannotation Trash "/vendor/cmu/cyrus-imapd/expire" ("value.shared" NIL)
Apr 27 09:29:16 backend1 dovecot: imap-login: Login: user=<heiko>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=6651, secured Apr 27 09:29:16 backend1 dovecot: imap(heiko): Fatal: master: service(imap): child 6651 killed with signal 11 (core dumped) This doesn't seem to be dovecot core's fault, it's probably crashing in the METADATA plugin. Does anybody else use it?
Is it alive as a project? (Last Update of the mercurial repository http://hg.dovecot.org/dovecot-metadata-plugin was 2013 .
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann
Hi!
We no longer use mercurial as VCS. And metadata has been moved as core feature, and is no longer a plugin. Please see https://github.com/dovecot/core
Aki
Hi Aki,
Aki Tuomi <aki.tuomi@dovecot.fi> (Mi 27 Apr 2016 10:06:35 CEST):
We no longer use mercurial as VCS. And metadata has been moved as core feature, and is no longer a plugin. Please see https://github.com/dovecot/core
Thank you. But it seems, for 2.2.9 I'm out of luck and on my own… I cloned the above repo and did
$ grep -ri 'annotat\(e\|ion\)' *
src/imap/cmd-notify.c: "MessageNew", "MessageExpunge", "FlagChange", "AnnotationChange",
src/imap/cmd-notify.c: /* if FlagChange or AnnotationChange is specified,
src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE)) != 0 &&
src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE)) != 0)
src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE |
src/imap/imap-notify.h: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE = 0x08,
src/imap/imap-notify.h: (IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE |
src/plugins/acl/acl-attributes.c: retrieve private or shared mailbox annotations on a mailbox on which
Shouldn't I get a bit more. Or is the handling of the SETANNOTATION/ANNOTATION command well hidden?
Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
-- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --------------- key ID: F69376CE - ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 ------------ -
Op 4/27/2016 om 11:11 AM schreef Heiko Schlittermann:
Hi Aki,
Aki Tuomi <aki.tuomi@dovecot.fi> (Mi 27 Apr 2016 10:06:35 CEST):
We no longer use mercurial as VCS. And metadata has been moved as core feature, and is no longer a plugin. Please see https://github.com/dovecot/core Thank you. But it seems, for 2.2.9 I'm out of luck and on my own… I cloned the above repo and did
$ grep -ri 'annotat\(e\|ion\)' *
src/imap/cmd-notify.c: "MessageNew", "MessageExpunge", "FlagChange", "AnnotationChange", src/imap/cmd-notify.c: /* if FlagChange or AnnotationChange is specified, src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE)) != 0 && src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE)) != 0) src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE | src/imap/imap-notify.h: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE = 0x08, src/imap/imap-notify.h: (IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE |
src/plugins/acl/acl-attributes.c: retrieve private or shared mailbox annotations on a mailbox on whichShouldn't I get a bit more. Or is the handling of the SETANNOTATION/ANNOTATION command well hidden?
Those commands are part of the IMAP ANNOTATE capability (RFC 5257 or based on an older draft like draft-daboo-imap-annotatemore-08). Only the IMAP METADATA capability (RFC 5464) is currently implemented in Dovecot core.
I haven't heard of anyone porting the ANNOTATE part of that old plugin to a recent Dovecot.
Regards,
Stephan.
Hi,
Stephan Bosch <stephan@rename-it.nl> (Mi 27 Apr 2016 11:32:23 CEST): …
Op 4/27/2016 om 11:11 AM schreef Heiko Schlittermann:
src/imap/cmd-notify.c: "MessageNew", "MessageExpunge", "FlagChange", "AnnotationChange", src/imap/cmd-notify.c: /* if FlagChange or AnnotationChange is specified, src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE)) != 0 && src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE)) != 0) src/imap/cmd-notify.c: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE | src/imap/imap-notify.h: IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE = 0x08, src/imap/imap-notify.h: (IMAP_NOTIFY_EVENT_ANNOTATION_CHANGE |
src/plugins/acl/acl-attributes.c: retrieve private or shared mailbox annotations on a mailbox on whichShouldn't I get a bit more. Or is the handling of the SETANNOTATION/ANNOTATION command well hidden?
Those commands are part of the IMAP ANNOTATE capability (RFC 5257 or based on an older draft like draft-daboo-imap-annotatemore-08). Only the IMAP METADATA capability (RFC 5464) is currently implemented in Dovecot core.
I haven't heard of anyone porting the ANNOTATE part of that old plugin to a recent Dovecot.
The old dovecot-metadata-plugin compiles¹ and runs with 2.2.9, it compiles with 2.2.23, 2.2.22. (I haven't checked if it runs, though).
¹) with some small change found in a previous post. The binary Ubuntu 14.04 package doesn't work, it's not compatible with the Dovecot cure they provide.
I'd like to see the ANNOTATE capability in recent dovecot versions, it makes migrations from cyrus environments more easy (e.g. some SquirrelMail plugin uses ANNOTATE to attach expiry information to the mailboxes).
Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
-- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --------------- key ID: F69376CE - ! key id 7CBF764A and 972EAC9F are revoked since 2015-01 ------------ -
Hi, just for the records. The dovecot-metadata-plugin found on http://hg.dovecot.org/dovecot-metadata-plugin (not in use anymore?) needs one change to make it compile on Ubuntu 14.04 and probably other current compilers. And a 2nd change that avoids a crash on deleting an annotation. I need this plugin with a dovecot 2.2.9 to store mailbox annotations (expiry information imported/migrated from a cyrus server, to be more precise). If dovecot provides ANNOTATION capabilities on it's own, I missed it... Please correct me, if I'm wrong. In a current clone of dovecot-core I do not find any traces that indicate support for ANNOATION. But again, I may be wrong, as I do often. changeset: 237:219c13a7696d bookmark: hs12 tag: tip user: Heiko Schlittermann <hs@schlittermann.de> date: Wed Apr 27 11:27:14 2016 +0200 summary: Check the Value before using strlen() diff -r 79ce82ce7279 -r 219c13a7696d src/metadata-backend.c --- a/src/metadata-backend.c Wed Apr 27 10:37:11 2016 +0200 +++ b/src/metadata-backend.c Wed Apr 27 11:27:14 2016 +0200 @@ -130,7 +130,7 @@ if (!metadata_entry_is_valid(entry)) return -METADATA_ERROR_INVALID; - if (strlen(metadata_entry_get_value(entry)) > muser->set->maxsize) + if (entry->value && strlen(metadata_entry_get_value(entry)) > muser->set->maxsize) return -METADATA_ERROR_TOOLARGE; if (count_entries(muser) > muser->set->maxentries) return -METADATA_ERROR_TOOMANY; changeset: 236:79ce82ce7279 user: Heiko Schlittermann <hs@schlittermann.de> date: Wed Apr 27 10:37:11 2016 +0200 summary: make it compile diff -r b6df1381bb79 -r 79ce82ce7279 src/imap-metadata-plugin.c --- a/src/imap-metadata-plugin.c Sun Oct 27 12:50:20 2013 +0100 +++ b/src/imap-metadata-plugin.c Wed Apr 27 10:37:11 2016 +0200 @@ -448,7 +448,7 @@ } -static bool +bool cmd_getmetadata(struct client_command_context *cmd) { int maxsize = 0, depth = 0; @@ -739,7 +739,7 @@ } -static bool +bool cmd_setmetadata(struct client_command_context *cmd) { const struct imap_arg *args; if (!client_read_args(cmd, 0, 0, &args))
participants (3)
-
Aki Tuomi
-
Heiko Schlittermann
-
Stephan Bosch