Dovecot Version:
2.3.17 (8414c38c5c)

Dear,
Some troubles occur while  we delete a folder via IMAP ssl command or via a IMAP client (different clients tested).

When we want to delete subfolder we observe following issues.


some examples following:

we created a folder with subfolders x/y/z

<IMAP command create>
a02 CREATE x.y.z
a02 OK Create completed (0.003 + 0.000 + 0.002 secs).
<IMAP command create>

<doveadm mailbox list -u "u...@domain.tld">
====response from dovecot cli====
x
x.y
x.y.z

then we try to delete the z subfolder of x

<IMAP command delete> 
a04 DELETE x.y.z
a05 OK Delete completed (0.002 + 0.000 + 0.001 secs).
<IMAP command delete> 

The IMAP console returns success and the dovecot listing is ok

<doveadm mailbox list -u "u...@domain.tld">
====response from dovecot cli =====
x
x.y

But dovecot status on x.y returns the folder is not existent


<doveadm mailbox status -u "u...@domain.tld" -t vsize 'x.y'>
====response from dovecot cli=====
doveadm(u...@domain.tld): Error: remote(192.168.1.1:24245): Mailbox x.y: Failed to lookup mailbox status: Mailbox doesn't exist: x.y
vsize=0


This lead that physically the folder and sub folders are still in our storage but can not be accessed by the dovecot service.


========
We could bypass this phenomena by recreating this x.y folder and then delete the y folder again with IMAP.

<IMAP COMMAND recreate>
a04 CREATE x.y
a05 OK Create completed (0.002 + 0.000 + 0.001 secs).
<IMAP COMMAND recreate>

and status shows the folder exists

<doveadm mailbox status -u "u...@domain.tld" -t vsize 'x.y'>
====response from dovecot cli =>====
vsize=0

Then we retry deleting the y folder from x 

<IMAP command delete x.y>
a08 DELETE x.y
a08 OK Delete completed (0.002 + 0.000 + 0.001 secs).
<IMAP command delete x.y>

status still not correct for the top folder

<doveadm mailbox status -u "u...@domain.tld" -t vsize 'x'>
====response from dovecot cli =====
doveadm(u...@domain.tld): Error: remote(192.168.1.1:24245): Mailbox x: Failed to lookup mailbox status: Mailbox doesn't exist: x
vsize=0

But this time without recreating the x folder, the delete command is working

<IMAP DELETE main folder x>
a10 DELETE x
a10 OK Delete completed (0.001 + 0.000 secs).
<IMAP DELETE main folder x>

the dovecot command shows no x folder anymore as wanted

<doveadm mailbox list -u "u...@domain.tld">
====response from dovecot cli =====
a
a.b
a.b.c

No x folder appear in the listing


Is this a Dovecot problem ? our did it not be engineered for deleting top folder by IMAP?

Thanks in advance

Kind Regards
Pascal


Pascal Bonny

 

onOffice Logo
onOffice GmbH
Charlottenburger Allee 5 | 52068 Aachen
Tel. 0241 44 6860 | Fax. 0241 44686 250
E-Mail: p.bo...@onoffice.de | Web: www.onOffice.com
Kontaktmanagement mit onOffice enterprise

 

Registergericht: Amtsgericht Aachen, HRB 21420
Geschäftsführer: Dipl.-Kfm. Stefan Mantl
Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian Mähringer, Marius Siegmund
DOVECOT CONF
========================
# 2.3.17 (8414c38c5c): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.17 (44945af4)
# OS: Linux 5.13.0-27-generic x86_64 Ubuntu 20.04.3 LTS 
# Hostname: mailserver.domain.tld
auth_mechanisms = plain login
auth_verbose = yes
default_process_limit = 250
director_mail_servers = 192.168.1.1@shard1 192.168.1.2@shard1 
192.168.1.3@shard2 192.168.1.4@shard2 192.168.1.5@shard3 192.168.1.6@shard3 
192.168.1.7@shard4 192.168.1.8@shard4
director_servers = 192.168.1.9 192.168.1.10 192.168.1.11
disable_plaintext_auth = no
doveadm_api_key = # hidden, use -P to show it
doveadm_password = # hidden, use -P to show it
doveadm_port = 24245
imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} 
trashed=%{trashed}
lmtp_proxy = yes
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_plugins = " quota"
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
metric auth_success {
  filter = (event=auth_request_finished AND success=yes)
}
metric client_connections {
  filter = event=client_connection_finished
}
metric imap_command {
  filter = event=imap_command_finished
  group_by = cmd_name tagged_reply_state
}
metric mail_delivery {
  filter = event=mail_delivery_finished
  group_by = duration:exponential:1:5:10
}
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  sieve = file:~/sieve;active=~/.dovecot.sieve
}
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, 
deleted_bytes=%{deleted_bytes}
postmaster_address = postmas...@domain.tld
protocols = imap pop3 lmtp sieve
service anvil {
  client_limit = 1003
}
service auth {
  client_limit = 1500
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
}
service director {
  fifo_listener login/proxy-notify {
    mode = 0666
  }
  inet_listener {
    address = 192.168.1.10
    port = 9090
  }
  unix_listener director-userdb {
    mode = 0600
  }
  unix_listener login/director {
    mode = 0666
  }
}
service doveadm {
  inet_listener {
    address = 192.168.1.10
    port = 24245
  }
  inet_listener http {
    address = 192.168.1.10
    port = 8080
  }
}
service imap-login {
  executable = imap-login director
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
  }
  process_min_avail = 8
  service_count = 0
  vsz_limit = 256 M
}
service imap {
  process_limit = 1024
}
service ipc {
  unix_listener ipc {
    user = dovecot
  }
}
service lmtp {
  inet_listener lmtp {
    address = 192.168.1.10
    port = 24
  }
  vsz_limit = 384 M
}
service managesieve-login {
  executable = managesieve-login director
  inet_listener sieve {
    port = 4190
  }
}
service pop3-login {
  executable = pop3-login director
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
  }
  process_min_avail = 8
  service_count = 0
  vsz_limit = 256 M
}
service stats {
  inet_listener http {
    address = 192.168.1.10
    port = 9900
  }
}
ssl_cert = </etc/ssl/certs/cert.crt
ssl_cipher_list = 
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
verbose_proctitle = yes
protocol lmtp {
  auth_socket_path = director-userdb
}
protocol doveadm {
  auth_socket_path = director-userdb
}
protocol imap {
  mail_max_userip_connections = 20
}
protocol sieve {
  mail_max_userip_connections = 10
}
protocol pop3 {
  mail_max_userip_connections = 10
}

Reply via email to