Hello.
I have tried to restore a test user mailbox and I get a segmentation fault
doveadm -D import -u ox101(a)us.es mdbox:/backup/bacula-restores/buzones/mysite/15/b1/ox101/ "" all
/doveadm(entrega): Debug: Loading modules from directory: /usr/lib64/dovecot
doveadm(entrega): Debug: Module loaded: /usr/lib64/dovecot/lib01_acl_plugin.so
doveadm(entrega): Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
doveadm(entrega): Debug: Module loaded: /usr/lib64/dovecot/lib20_zlib_plugin.so
doveadm(entrega): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
doveadm(entrega): Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_lookup (this is usually intentional, so just ignore this message)
doveadm(entrega): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so
doveadm(entrega): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_zlib_plugin.so
doveadm(ox101(a)us.es): Debug: import: box=Sent uid=9
doveadm(ox101(a)us.es): Debug: import: box=Sent uid=10
doveadm(ox101(a)us.es): Debug: import: box=INBOX uid=1
doveadm(ox101(a)us.es): Debug: import: box=INBOX uid=5
doveadm(ox101(a)us.es): Debug: import: box=INBOX uid=11
doveadm(ox101(a)us.es): Debug: import: box=INBOX uid=12
doveadm(ox101(a)us.es): Debug: import: box=INBOX uid=14
Segmentation fault/
I can fully reproduce this segmentation fault. Doveconf -n attached at the bottom of this mail. The strange this is that all mail for this user is restored, but the process segfaults.
If I strace the process the last lines are:
[...]
fstat(25, {st_mode=S_IFREG0644, st_size=47, ...}) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/INBOX/dbox-Mails/dovecot.index.log", {st_mode=S_IFREG0600, st_size=6868, ...}) = 0
fstat(17, {st_mode=S_IFREG0600, st_size=6868, ...}) = 0
fstat(17, {st_mode=S_IFREG0600, st_size=6868, ...}) = 0
getdents(9, /* 3 entries */, 32768) = 80
getdents(9, /* 0 entries */, 32768) = 0
close(9) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash", {st_mode=S_IFDIR0700, st_size=4096, ...}) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails", {st_mode=S_IFDIR0700, st_size=4096, ...}) = 0
open("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash", O_RDONLYO_NONBLOCKO_DIRECTORY) = 9
fcntl(9, F_SETFD, FD_CLOEXEC) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails", {st_mode=S_IFDIR0700, st_size=4096, ...}) = 0
close(11) = 0
munmap(0x2b2bea461000, 28672) = 0
close(16) = 0
close(10) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash", {st_mode=S_IFDIR0700, st_size=4096, ...}) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash", {st_mode=S_IFDIR0700, st_size=4096, ...}) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails", {st_mode=S_IFDIR0700, st_size=4096, ...}) = 0
open("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails/dovecot.index.log", O_RDWR) = 10
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
pread(10, "\1\2(\0\350\10HM\2\0\0\0\1\0\0\0\0\0\0\0\350\10HM\0\0\0\0\0\0\0\0"..., 40, 0) = 40
open("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails/dovecot.index", O_RDWR) = -1 ENOENT (No such file or directory)
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
mmap(NULL, 5084, PROT_READ, MAP_SHARED, 10, 0) = 0x2b2bea461000
madvise(0x2b2bea461000, 5084, MADV_SEQUENTIAL) = 0
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails/dovecot.index.log", {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
stat("/backup/bacula-restores/buzones/mysite/15/b1/ox101/mailboxes/Trash/dbox-Mails/dovecot.index.log", {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
fstat(10, {st_mode=S_IFREG0600, st_size=5084, ...}) = 0
getdents(9, /* 3 entries */, 32768) = 80
getdents(9, /* 0 entries */, 32768) = 0
close(9) = 0
getdents(8, /* 0 entries */, 32768) = 0
close(8) = 0
close(25) = 0
close(18) = 0
munmap(0x2b2bea45d000, 6520) = 0
close(13) = 0
munmap(0x2b2bea461000, 5084) = 0
close(10) = 0
close(22) = 0
close(21) = 0
munmap(0x2b2bea681000, 30720) = 0
close(24) = 0
brk(0x1b48000) = 0x1b48000
munmap(0x2b2bea46e000, 6868) = 0
close(17) = 0
munmap(0x2b2bea470000, 22528) = 0
close(23) = 0
close(12) = 0
munmap(0x2b2bea468000, 24576) = 0
close(19) = 0
brk(0x1b44000) = 0x1b44000
close(7) = 0
munmap(0x2b2be9806000, 2161656) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
dovecot -n outpout:
# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.18-238.1.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.6 (Tikanga) ext3
auth_anonymous_username = anonymous
auth_cache_negative_ttl = 1 hours
auth_cache_size = 0
auth_cache_ttl = 1 hours
auth_debug = no
auth_debug_passwords = no
auth_default_realm =
auth_failure_delay = 2 secs
auth_first_valid_uid = 500
auth_gssapi_hostname =
auth_krb5_keytab =
auth_last_valid_uid = 0
auth_master_user_separator = *
auth_mechanisms = plain login
auth_realms =
auth_socket_path = auth-userdb
auth_ssl_require_client_cert = no
auth_ssl_username_from_cert = no
auth_use_winbind = no
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
auth_username_format =
auth_username_translation =
auth_verbose = no
auth_verbose_passwords = no
auth_winbind_helper_path = /usr/bin/ntlm_auth
auth_worker_max_count = 90
base_dir = /var/run/dovecot/
config_cache_size = 1 M
debug_log_path =
default_client_limit = 4096
default_idle_kill = 60
default_internal_user = dovecot
default_login_user = dovenull
default_process_limit = 700
default_vsz_limit = 256 M
deliver_log_format = msgid=%m: %$
dict_db_config =
director_doveadm_port = 0
director_mail_servers =
director_servers =
director_user_expire = 15 mins
disable_plaintext_auth = no
dotlock_use_excl = yes
doveadm_socket_path = doveadm-server
doveadm_worker_count = 0
first_valid_gid = 1
first_valid_uid = 500
hostname =
imap_capability =
imap_client_workarounds =
imap_id_log =
imap_id_send =
imap_idle_notify_interval = 2 mins
imap_logout_format = bytes=%i/%o
imap_max_line_length = 64 k
info_log_path =
last_valid_gid = 0
last_valid_uid = 0
lda_mailbox_autocreate = no
lda_mailbox_autosubscribe = no
lda_original_recipient_header =
libexec_dir = /usr/libexec/dovecot
listen = *, ::
lmtp_proxy = no
lmtp_save_to_detail_mailbox = no
lock_method = fcntl
log_path = syslog
log_timestamp = "%b %d %H:%M:%S "
login_access_sockets =
login_greeting = Dovecot ready.
login_log_format = %$: %s
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
login_trusted_networks =
mail_access_groups =
mail_attachment_dir =
mail_attachment_fs = sis posix
mail_attachment_hash = %{sha1}
mail_attachment_min_size = 128 k
mail_cache_fields = flags
mail_cache_min_mail_count = 0
mail_chroot =
mail_debug = no
mail_fsync = never
mail_full_filesystem_access = no
mail_gid = entrega
mail_home = /buzones/%2.26Hn/mysite/%2.200Hn/%n/mail_home
mail_location = mdbox:/buzones/mysite/%2.26Hn/%2.200Hn/%n
mail_log_prefix = "%s(%u): "
mail_max_keyword_length = 50
mail_max_lock_timeout = 0
mail_max_userip_connections = 10
mail_never_cache_fields = imap.envelope
mail_nfs_index = no
mail_nfs_storage = no
mail_plugin_dir = /usr/lib64/dovecot
mail_plugins = " zlib quota acl"
mail_privileged_group =
mail_save_crlf = no
mail_temp_dir = /tmp
mail_uid = entrega
mailbox_idle_check_interval = 30 secs
mailbox_list_index_disable = no
maildir_copy_with_hardlinks = yes
maildir_stat_dirs = no
maildir_very_dirty_syncs = no
managesieve_client_workarounds =
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_logout_format = bytes=%i/%o
managesieve_max_compile_errors = 5
managesieve_max_line_length = 65536
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
master_user_separator =
mbox_dirty_syncs = yes
mbox_dotlock_change_timeout = 2 mins
mbox_lazy_writes = yes
mbox_lock_timeout = 5 mins
mbox_min_index_size = 0
mbox_read_locks = fcntl
mbox_very_dirty_syncs = no
mbox_write_locks = dotlock fcntl
mdbox_preallocate_space = no
mdbox_rotate_interval = 1 days
mdbox_rotate_size = 40 M
mmap_disable = no
passdb {
args =
deny = no
driver = shadow
master = no
pass = no
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
deny = no
driver = ldap
master = no
pass = no
}
passdb {
args = /etc/usuario_maestro.txt
deny = no
driver = passwd-file
master = yes
pass = no
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
deny = no
driver = ldap
master = no
pass = no
}
plugin {
acl = vfile
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
quota = dict:Cuota de usuario::file:/buzones/cuotas/%n
quota_rule2 = Trash:storage=+10%%
quota_warning = storage=12K aviso_cuota 12K %u
sieve = /buzones/%2.26Hn/%2.200Hn/%n/dovecot.sieve
sieve_dir = /buzones/%2.26Hn/%2.200Hn/%n/sieve/
zlib_save = gz
zlib_save_level = 9
}
pop3_client_workarounds =
pop3_enable_last = no
pop3_fast_size_lookups = no
pop3_lock_session = no
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
pop3_no_flag_updates = no
pop3_reuse_xuidl = no
pop3_save_uidl = no
pop3_uidl_format = %08Xu%08Xv
postmaster_address =
protocols = pop3 imap sieve
quota_full_tempfail = no
recipient_delimiter = +
rejection_reason = Your message to <%t> was automatically rejected:%n%r
rejection_subject = Rejected: %s
sendmail_path = /usr/sbin/sendmail
service anvil {
chroot = empty
client_limit = 0
drop_priv_before_exec = no
executable = anvil
extra_groups =
group =
idle_kill = 4294967295 secs
privileged_group =
process_limit = 1
process_min_avail = 1
protocol =
service_count = 0
type = anvil
unix_listener anvil-auth-penalty {
group =
mode = 0600
user =
}
unix_listener anvil {
group =
mode = 0600
user =
}
user = $default_internal_user
vsz_limit = 18446744073709551615 B
}
service auth-worker {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = auth -w
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 1
type =
unix_listener auth-worker {
group =
mode = 0600
user = $default_internal_user
}
user =
vsz_limit = 18446744073709551615 B
}
service auth {
chroot =
client_limit = 4096
drop_priv_before_exec = no
executable = auth
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 1
process_min_avail = 0
protocol =
service_count = 0
type =
unix_listener auth-client {
group =
mode = 0600
user =
}
unix_listener auth-login {
group =
mode = 0600
user = $default_internal_user
}
unix_listener auth-master {
group =
mode = 0600
user = entrega
}
unix_listener auth-userdb {
group =
mode = 0600
user = entrega
}
unix_listener login/login {
group =
mode = 0666
user =
}
user = root
vsz_limit = 18446744073709551615 B
}
service aviso_cuota {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = script /usr/local/bin/quota-warning.sh
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 0
type =
unix_listener aviso_cuota {
group =
mode = 0666
user =
}
user = entrega
vsz_limit = 18446744073709551615 B
}
service config {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = config
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 0
type = config
unix_listener config {
group =
mode = 0600
user =
}
user =
vsz_limit = 18446744073709551615 B
}
service dict {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = dict
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 0
type =
unix_listener dict {
group =
mode = 0600
user =
}
user = $default_internal_user
vsz_limit = 18446744073709551615 B
}
service director {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = director
extra_groups =
fifo_listener login/proxy-notify {
group =
mode = 00
user =
}
group =
idle_kill = 4294967295 secs
privileged_group =
process_limit = 1
process_min_avail = 0
protocol =
service_count = 0
type =
unix_listener director-admin {
group =
mode = 0600
user =
}
unix_listener login/director {
group =
mode = 00
user =
}
user = $default_internal_user
vsz_limit = 18446744073709551615 B
}
service dns_client {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = dns-client
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 0
type =
unix_listener dns-client {
group =
mode = 0666
user =
}
unix_listener login/dns-client {
group =
mode = 0666
user =
}
user = $default_internal_user
vsz_limit = 18446744073709551615 B
}
service doveadm {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = doveadm-server
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 1
type =
unix_listener doveadm-server {
group =
mode = 0600
user =
}
user =
vsz_limit = 18446744073709551615 B
}
service imap-login {
chroot = login
client_limit = 0
drop_priv_before_exec = no
executable = /usr/libexec/dovecot/imap-login
extra_groups =
group =
idle_kill = 0
inet_listener imap {
address =
port = 143
ssl = no
}
inet_listener imaps {
address =
port = 993
ssl = yes
}
privileged_group =
process_limit = 2500
process_min_avail = 0
protocol = imap
service_count = 1
type = login
user = $default_login_user
vsz_limit = 64 M
}
service imap {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = /usr/libexec/dovecot/rawlog /usr/libexec/dovecot/imap
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 2500
process_min_avail = 0
protocol = imap
service_count = 1
type =
unix_listener login/imap {
group =
mode = 0666
user =
}
user =
vsz_limit = 18446744073709551615 B
}
service lmtp {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = lmtp
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol = lmtp
service_count = 0
type =
unix_listener lmtp {
group =
mode = 0666
user =
}
user =
vsz_limit = 0
}
service log {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = log
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 1
process_min_avail = 0
protocol =
service_count = 0
type = log
user =
vsz_limit = 18446744073709551615 B
}
service managesieve-login {
chroot = login
client_limit = 0
drop_priv_before_exec = no
executable = /usr/libexec/dovecot/managesieve-login
extra_groups =
group =
idle_kill = 0
inet_listener sieve {
address =
port = 2000
ssl = no
}
privileged_group =
process_limit = 2500
process_min_avail = 0
protocol = sieve
service_count = 1
type = login
user = $default_login_user
vsz_limit = 64 M
}
service managesieve {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = /usr/libexec/dovecot/managesieve
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 2500
process_min_avail = 0
protocol = sieve
service_count = 1
type =
unix_listener login/sieve {
group =
mode = 0666
user =
}
user =
vsz_limit = 18446744073709551615 B
}
service pop3-login {
chroot = login
client_limit = 0
drop_priv_before_exec = no
executable = /usr/libexec/dovecot/pop3-login
extra_groups =
group =
idle_kill = 0
inet_listener pop3 {
address =
port = 110
ssl = no
}
inet_listener pop3s {
address =
port = 995
ssl = yes
}
privileged_group =
process_limit = 2500
process_min_avail = 0
protocol = pop3
service_count = 1
type = login
user = $default_login_user
vsz_limit = 64 M
}
service pop3 {
chroot =
client_limit = 1
drop_priv_before_exec = no
executable = /usr/libexec/dovecot/pop3
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 2500
process_min_avail = 0
protocol = pop3
service_count = 1
type =
unix_listener login/pop3 {
group =
mode = 0666
user =
}
user =
vsz_limit = 18446744073709551615 B
}
service ssl-params {
chroot =
client_limit = 0
drop_priv_before_exec = no
executable = ssl-params
extra_groups =
group =
idle_kill = 0
privileged_group =
process_limit = 0
process_min_avail = 0
protocol =
service_count = 0
type = startup
unix_listener login/ssl-params {
group =
mode = 0666
user =
}
user =
vsz_limit = 18446744073709551615 B
}
shutdown_clients = yes
ssl = yes
ssl_ca = </etc/pki/generico/cacert.crt.pem
ssl_cert = </etc/pki/generico/wildcard-us_es.crt
ssl_cert_username_field = commonName
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL
ssl_key = </etc/pki/generico/wildcard-key.pem
ssl_key_password =
ssl_parameters_file = ssl-parameters.dat
ssl_parameters_regenerate = 168
ssl_verify_client_cert = no
syslog_facility = mail
userdb {
args =
driver = passwd
}
userdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
userdb {
args = /etc/dovecot/dovecot-ldap-userdb.conf
driver = ldap
}
valid_chroot_dirs =
verbose_auth = no
verbose_proctitle = yes
verbose_ssl = no
version_ignore = no
protocol sieve {
managesieve_implementation_string = dovecot
managesieve_logout_format = bytes=%i/%o
managesieve_max_line_length = 65536
}
protocol lda {
hostname = mysite
info_log_path =
log_path =
mail_fsync = optimized
mail_plugins = quota sieve zlib
postmaster_address = evcorreo@mysite
syslog_facility = mail
}
protocol imap {
mail_plugins = quota imap_quota zlib
}
protocol pop3 {
mail_plugins = zlib
pop3_enable_last = yes
pop3_uidl_format = %08Xv%08Xu
}
Regards
Maria