Fwd: Bug#876364: dovecot-sieve: Just discovered imap_sieve/sieve_imapsieve is not set up to work with virtual mailboxes.

Thurgood Angelou thurgoodangelou at gmail.com
Fri Sep 22 03:09:32 EEST 2017


Hi... The output of my doveconf -n is as folllows.

# 2.2.32 (dfbe293d4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.20 (7cd71ba)
doveconf: Warning: /etc/dovecot/dovecot.conf line 105: Global setting
mail_plugins won't change the setting inside an earlier filter at
/etc/dovecot/conf.d/15-lda.conf line 47 (if this is intentional, avoid this
warning by moving the global setting before /etc/dovecot/conf.d/15-lda.conf
line 47)
doveconf: Warning: /etc/dovecot/dovecot.conf line 105: Global setting
mail_plugins won't change the setting inside an earlier filter at
/etc/dovecot/conf.d/15-lda.conf line 47 (if this is intentional, avoid this
warning by moving the global setting before /etc/dovecot/conf.d/15-lda.conf
line 47)
# OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.2 ext4
auth_default_realm = othersider92.com
auth_mechanisms = plain login
first_valid_uid = 100
log_path = /var/log/dovecot.log
mail_location = maildir:/var/mail/%d/%n
mail_plugins = " virtual"
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 imapsieve vnd.dovecot.imapsieve
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = create
    special_use = \Drafts
  }
  mailbox Junk {
    auto = create
    autoexpunge = 1 weeks
    special_use = \Junk
  }
  mailbox Promotions {
    auto = subscribe
  }
  mailbox Sent {
    auto = create
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    autoexpunge = 30 days
    special_use = \Trash
  }
  prefix =
  separator = /
  type = private
}
namespace virtual {
  disabled = yes
  hidden = yes
  list = no
  location = virtual:/var/mail/virtual
  prefix = virtual/
  separator = /
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  imapsieve_mailbox1_before = file:/etc/sieve/report-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/etc/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_name = *
  imapsieve_mailbox3_before = file:/etc/sieve/report-spam-promo.sieve
  imapsieve_mailbox3_causes = COPY
  imapsieve_mailbox3_name = Promotions
  imapsieve_mailbox4_before = file:/etc/sieve/report-ham-promo.sieve
  imapsieve_mailbox4_causes = COPY
  imapsieve_mailbox4_from = Promotions
  imapsieve_mailbox4_name = *
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_after = /etc/sieve/conf.d/after
  sieve_before = /etc/sieve/conf.d/before
  sieve_global_extensions = +editheader +vnd.dovecot.pipe
  sieve_pipe_bin_dir = /usr/local/bin
  sieve_plugins = sieve_extprograms sieve_imapsieve
}
protocols = imap lmtp
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }
  user = dovecot
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
ssl = required
ssl_cert = </etc/ssl/mail/ssl.cert
ssl_client_ca_dir = /etc/ssl/certs
ssl_key =  # hidden, use -P to show it
userdb {
  args = uid=vmail gid=vmail home=/var/mail/%d/%n
  driver = static
}
protocol lmtp {
  info_log_path = /var/log/dovecot-lmtp.log
  mail_plugins = " virtual"
}
protocol lda {
  mail_plugins = " sieve virtual"
}
protocol imap {
  mail_plugins = " virtual imap_sieve"
}

I hope this helps.

On Thu, Sep 21, 2017 at 4:47 AM, Apollon Oikonomopoulos <apoikos at debian.org>
wrote:

> Control: tags -1 + moreinfo upstream
>
> [Forwarding this to the Dovecot mailing list, just in case someone can
> help]
>
> Hi,
>
> Thanks for the report! See my comments inline.
>
> On 11:56 Thu 21 Sep     , Thurgood Angelou wrote:
> > Package: dovecot-core
> > Version: 1:2.2.32-2
> >
> > I've just discovered a bug where the sieve plugin (especially IMAP)
> > will not work with a virtual mailbox. I recently found this out when
> > testing a virtual mailbox setup and I use imap_sieve for SPAM
> > filtering so to lose that would be painful.
> >
> > This is what is reported in dovecot's debug log...
> >
> > Sep 21 10:53:01 imap(personal at othersider92.com): Panic: file
> mail-index-map.c: line 549 (mail_index_map_lookup_seq_range): assertion
> failed: (first_uid > 0)
> > Sep 21 10:53:01 imap(personal at othersider92.com): Error: Raw backtrace:
> /usr/lib/dovecot/libdovecot.so.0(+0x9f0a2) [0x7f4226fd50a2] ->
> /usr/lib/dovecot/libdovecot.so.0(+0x9f19a) [0x7f4226fd519a] ->
> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f4226f65cf8] ->
> /usr/lib/dovecot/libdovecot-storage.so.0(mail_index_map_lookup_seq_range+0x120)
> [0x7f422733dae0] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0xe8d1d)
> [0x7f422734cd1d] -> /usr/lib/dovecot/libdovecot-st
> orage.so.0(mail_index_lookup_seq+0xf) [0x7f4227350e9f] ->
> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x82aa)
> [0x7f422678a2aa] -> /usr/lib/dovecot/modules/lib95_imap_sieve_plugin.so(+0x708c)
> [0x7f422657d08c] -> /usr/lib/dovecot/libdovecot-st
> orage.so.0(mailbox_transaction_commit_get_changes+0x52) [0x7f42272adca2]
> -> dovecot/imap(+0x10084) [0x556502adb084] -> dovecot/imap(command_exec+0x5c)
> [0x556502ae7d9c] -> dovecot/imap(+0x1b322) [0x556502ae6322] ->
> dovecot/imap(+0x1b3bc) [0x556502ae63bc] -> dovecot/imap(client_handle_inp
> ut
> >  +0x18d) [0x556502ae677d] -> dovecot/imap(client_input+0xac)
> [0x556502ae6ccc] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52)
> [0x7f4226fea742] -> /usr/lib/dovecot/libdovecot.so
> .0(io_loop_handler_run_internal+0x12e) [0x7f4226febd8e] ->
> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x36)
> [0x7f4226fea7d6] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38)
> [0x7f4226fea988] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
> [0x7f4226f70353] -> dovecot/imap(main+0x329) [0x556502ad9139] ->
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f4226bb92e1]
> -> dovecot/imap(_start+0x2a) [0x556502ad92ca]
>
> After mixing in the debug symbols, this backtrace becomes:
>
> /usr/lib/dovecot/libdovecot.so.0(+0x9f0a2) [0x7f4226fd50a2]
>     default_fatal_finish at ./src/lib/failures.c:195
> /usr/lib/dovecot/libdovecot.so.0(+0x9f19a) [0x7f4226fd519a]
>     ?? at ./src/lib/failures.c:670
> /usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f4226f65cf8]
>     i_fatal at ./src/lib/failures.c:280
> /usr/lib/dovecot/libdovecot-storage.so.0(mail_index_map_lookup_seq_range+0x120)
> [0x7f422733dae0]
>     mail_index_map_lookup_seq_range at ./src/lib-index/mail-index-map
> .c:550
> /usr/lib/dovecot/libdovecot-storage.so.0(+0xe8d1d) [0x7f422734cd1d]
>     tview_lookup_seq_range at ./src/lib-index/mail-index-tra
> nsaction-view.c:178
> /usr/lib/dovecot/libdovecot-storage.so.0(mail_index_lookup_seq+0xf)
> [0x7f4227350e9f]
>     mail_index_lookup_seq at ./src/lib-index/mail-index-view.c:522
> /usr/lib/dovecot/modules/lib20_virtual_plugin.so(+0x82aa) [0x7f422678a2aa]
>     virtual_mail_set_uid at ./src/plugins/virtual/virtual-mail.c:213
> /usr/lib/dovecot/modules/lib95_imap_sieve_plugin.so(+0x708c)
> [0x7f422657d08c]
>     imap_sieve_mailbox_transaction_run at ./pigeonhole/src/plugins/imapsieve/imap-sieve-storage.c:752
> (inlined by: imap_sieve_mailbox_transaction_commit at
> ./pigeonhole/src/plugins/imapsieve/imap-sieve-storage.c:807)
> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_changes+0x52)
> [0x7f42272adca2]
>     mailbox_transaction_commit_get_changes at
> ./src/lib-storage/mail-storage.c:2083
> dovecot/imap(+0x10084) [0x556502adb084]
>     cmd_copy_full at ./src/imap/cmd-copy.c:146
> dovecot/imap(command_exec+0x5c) [0x556502ae7d9c]
>     command_exec at ./src/imap/imap-commands.c:200
> dovecot/imap(+0x1b322) [0x556502ae6322]
>     client_command_input at ./src/imap/imap-client.c:1088
> dovecot/imap(+0x1b3bc) [0x556502ae63bc]
>     client_command_input at ./src/imap/imap-client.c:1150
> dovecot/imap(client_handle_input+0x18d) [0x556502ae677d]
>     client_handle_input at ./src/imap/imap-client.c:1203
> dovecot/imap(client_input+0xac) [0x556502ae6ccc]
>     client_input at ./src/imap/imap-client.c:1249
> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52) [0x7f4226fea742]
>     io_loop_call_io at ./src/lib/ioloop.c:600
> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x12e)
> [0x7f4226febd8e]
>     io_loop_handler_run_internal at ./src/lib/ioloop-epoll.c:223
> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x36)
> [0x7f4226fea7d6]
>     io_loop_handler_run at ./src/lib/ioloop.c:648
> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f4226fea988]
>     io_loop_run at ./src/lib/ioloop.c:622
> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f4226f70353]
>     master_service_run at ./src/lib-master/master-service.c:667
> dovecot/imap(main+0x329) [0x556502ad9139]
>     main at ./src/imap/main.c:491
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f4226bb92e1]
>     __libc_start_main at ../csu/libc-start.c:325
> dovecot/imap(_start+0x2a) [0x556502ad92ca]
>     start at ??:0
>
> > -- System Information:
> > Debian Release: 8.2
> >   APT prefers oldstable-updates
> >   APT policy: (500, 'oldstable-updates'), (500, 'unstable'), (500,
> 'testing'), (500, 'oldstable')
> > Architecture: amd64 (x86_64)
> >
> > Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
> > Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
> LANGUAGE=en_GB:en (charmap=UTF-8)
> > Shell: /bin/sh linked to /bin/dash
> > Init: systemd (via /run/systemd/system)
> >
> > Versions of packages dovecot-sieve depends on:
> > ii  dovecot-core  1:2.2.32-2
> > ii  libc6         2.24-17
> > ii  ucf           3.0030
> >
> > dovecot-sieve recommends no packages.
> >
> > dovecot-sieve suggests no packages.
> >
> > Versions of packages dovecot-sieve is related to:
> > ii  dovecot-core [dovecot-common]  1:2.2.32-2
> > pn  dovecot-dbg                    <none>
> > pn  dovecot-dev                    <none>
> > ii  dovecot-gssapi                 1:2.2.32-2
> > ii  dovecot-imapd                  1:2.2.32-2
> > ii  dovecot-ldap                   1:2.2.32-2
> > ii  dovecot-lmtpd                  1:2.2.32-2
> > ii  dovecot-managesieved           1:2.2.32-2
> > ii  dovecot-mysql                  1:2.2.32-2
> > pn  dovecot-pgsql                  <none>
> > pn  dovecot-pop3d                  <none>
> > ii  dovecot-sieve                  1:2.2.32-2
> > pn  dovecot-sqlite                 <none>
>
> Could you also include the output of doveconf -n?
>
> Regards,
> Apollon
>


More information about the dovecot mailing list