Virtual Plugin crash (Assertion Failed)

Darius Düppetell dueppetell at chectec.net
Do Apr 19 15:56:29 CEST 2018


Hallo Dovecot Community,

wir arbeiten zur Zeit an einem Filterungssystem, welches auf einer 
älteren Dovecot Version von Dovecot(v2.2.22) basiert. Nun haben wir auf 
die aktuelle Version geupdated. (Ein Downgrade ist ausgeschlossen)

Folgendes Problem besteht nun:

Alle Filterordner werden in Thunderbird richtig angezeigt, sowie alle 
Emails, die sich in den Ordnern befinden. Soll nun eine Email geöffnet 
werden, dann gibt Dovecot einen Error aus und Thunderbird (v. 52.7) 
schließt die Email direkt wieder. Einige Emails lassen sich öffnen! Es 
ist immer zufällig, ob sich die Email öffnen lässt.

Dovecot Version:
2.3.1 (c5a5c0c82)


Dovecot-config
# 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.devel (61b47828)
# OS: Linux 4.13.13-2-pve x86_64 Ubuntu 16.04.4 LTS
auth_mechanisms = plain login
dict {
   sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
listen = *
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c 
%k
mail_home = /var/vmail/%d/%n
mail_location = sdbox:~/sdbox
mail_max_userip_connections = 500
mail_nfs_storage = yes
mail_plugins = quota acl fts fts_solr virtual notify
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character vacation subaddress comparator-i;ascii-numeric 
relational regex imap4flags copy include variables body enotify 
environment mailbox date index ihave duplicate mime foreverypart 
extracttext editheader imapflags notify vnd.dovecot.duplicate
namespace {
   list = yes
   location = virtual:~/sdbox/Filter/:INDEX=MEMORY
   prefix = Filter/
   separator = /
   subscriptions = yes
}
namespace inbox {
   inbox = yes
   location =
   mailbox Archiv {
     special_use = \Archive
   }
   mailbox Archive {
     auto = subscribe
     special_use = \Archive
   }
   mailbox Archives {
     special_use = \Archive
   }
   mailbox "Deleted Messages" {
     special_use = \Trash
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Entwürfe {
     special_use = \Drafts
   }
   mailbox "Gelöschte Objekte" {
     special_use = \Trash
   }
   mailbox Gesendet {
     special_use = \Sent
   }
   mailbox "Gesendete Objekte" {
     special_use = \Sent
   }
   mailbox Junk {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Papierkorb {
     special_use = \Trash
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     special_use = \Sent
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
   separator = /
}
passdb {
   args = /etc/dovecot/dovecot-mysql.conf
   driver = sql
}
plugin {
   acl = vfile
   acl_anyone = allow
   acl_shared_dict = file:/var/vmail/shared-mailboxes.db
   fts = solr
   fts_autoindex = yes
   fts_solr = url=http://127.0.0.1:8983/solr/
   quota = dict:Userquota::proxy::sqlquota
   quota_rule2 = Trash:storage=+100%%
   quota_status_nouser = DUNNO
   quota_status_overquota = 552 5.2.2 Mailbox is over quota
   quota_status_success = DUNNO
   sieve = /var/vmail/sieve/%u.sieve
   sieve_before = /etc/dovecot/sieve/before/spam-global.sieve
   sieve_extensions = +notify +imapflags +editheader 
+vnd.dovecot.duplicate
   sieve_max_script_size = 1M
   sieve_quota_max_scripts = 0
   sieve_quota_max_storage = 0
}
protocols = imap sieve lmtp pop3
service anvil {
   client_limit = 8192
}
service auth {
   client_limit = 8192
   unix_listener /var/spool/postfix/private/auth_dovecot {
     group = postfix
     mode = 0660
     user = postfix
   }
   unix_listener auth-master {
     mode = 0600
     user = vmail
   }
   unix_listener auth-userdb {
     mode = 0600
     user = vmail
   }
   user = root
}
service dict {
   unix_listener dict {
     group = vmail
     mode = 0660
     user = vmail
   }
}
service imap-login {
   process_limit = 1000
   process_min_avail = 32
}
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     mode = 0600
     user = postfix
   }
   user = vmail
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
   process_min_avail = 2
   service_count = 1
   vsz_limit = 128 M
}
service managesieve {
   process_limit = 256
}
service stats {
   fifo_listener stats-mail {
     mode = 0600
     user = vmail
   }
}
ssl_cert = </etc/ssl/mail/mail.crt
ssl_cipher_list = 
EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
ssl_dh =  # hidden, use -P to show it
ssl_key =  # hidden, use -P to show it
userdb {
   args = /etc/dovecot/dovecot-mysql.conf
   driver = sql
}
protocol imap {
   mail_plugins = quota acl fts fts_solr virtual notify imap_quota 
imap_acl
}
protocol lmtp {
   auth_socket_path = /var/run/dovecot/auth-master
   mail_plugins = quota acl fts fts_solr virtual notify sieve
   postmaster_address = max at mustermann.de
}
protocol sieve {
   info_log_path = /var/log/dovecot-sieve.log
   log_path = /var/log/dovecot-sieve-errors.log
   managesieve_implementation_string = dovecot
   managesieve_logout_format = bytes=%i/%o
   managesieve_max_line_length = 65536
}
protocol lda {
   mail_plugins = quota acl fts fts_solr virtual notify sieve quota acl 
notify
   postmaster_address = max at mustermann.de
}
remote 127.0.0.1 {
   disable_plaintext_auth = no
}

OS Information:
- Debian 9 stretch unter proxmox 4


Dovecot-virtual Datei
INBOX
   TO xyz at xyz.de
INBOX
   CC xyz at xyz.de
INBOX
   TO xyz2 at xyz.de
INBOX
   CC xyz2 at xyz.de


Error-Nachricht:
Apr 19 15:32:50 t800 dovecot: 
imap(max at mustermann)<7429><OsO1ljNqYuAKFAAD>: Panic: file 
virtual-mail.c: line 123 (backend_mail_get): assertion failed: (bbox != 
NULL)
Apr 19 15:32:50 t800 dovecot: 
imap(max at mustermann)<7429><OsO1ljNqYuAKFAAD>: Error: Raw backtrace: 
/usr/lib/dovecot/libdovecot.so.0(+0xc9aaa) [0x7fd264b17aaa] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xc9b8d) [0x7fd264b17b8d] -> 
/usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7fd264a874f1] -> 
/usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x803c) 
[0x7fd2631a603c] -> 
/usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x86b4) 
[0x7fd2631a66b4] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mail_get_virtual_size+0x38) 
[0x7fd264dff0b8] -> dovecot/imap(+0x20313) [0x5610cd3a8313] -> 
dovecot/imap(+0x1e6be) [0x5610cd3a66be] -> 
dovecot/imap(imap_fetch_more+0x39) [0x5610cd3a79e9] -> 
dovecot/imap(cmd_fetch+0x30e) [0x5610cd3989de] -> 
dovecot/imap(command_exec+0x64) [0x5610cd3a4d74] -> 
dovecot/imap(+0x1b1c2) [0x5610cd3a31c2] -> dovecot/imap(+0x1b24c) 
[0x5610cd3a324c] -> dovecot/imap(client_handle_input+0x1b5) 
[0x5610cd3a3685] -> dovecot/imap(client_input+0x7e) [0x5610cd3a3cce] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7fd264b2f929] 
-> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x109) 
[0x7fd264b31259] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x52) 
[0x7fd264b2fa32] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) 
[0x7fd264b2fc48] -> 
/usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) 
[0x7fd264aaac53] -> dovecot/imap(main+0x328) [0x5610cd3957d8] -> 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7fd2646a4830] 
-> dovecot/imap(_start+0x29) [0x5610cd3959c9]
Apr 19 15:32:50 t800 dovecot: 
imap(max at mustermann)<7429><OsO1ljNqYuAKFAAD>: Fatal: master: 
service(imap): child 7429 killed with signal 6 (core dumps disabled - 
https://dovecot.org/bugreport.html#

Nun ist die Frage, warum dieses Problem auftritt.

Vielen Dank

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://listen.jpberlin.de/pipermail/dovecot/attachments/20180419/edb2a5fd/attachment.html>


Mehr Informationen über die Mailingliste Dovecot