[Dovecot] Segmentation fault running doveadm import

Maria Arrea maria_arrea at gmx.com
Mon Feb 21 20:48:12 EET 2011


Hello.

 I have tried to restore a test user mailbox and I get a segmentation fault 


 doveadm -D import -u ox101 at 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 at us.es): Debug: import: box=Sent uid=9
 doveadm(ox101 at us.es): Debug: import: box=Sent uid=10
 doveadm(ox101 at us.es): Debug: import: box=INBOX uid=1
 doveadm(ox101 at us.es): Debug: import: box=INBOX uid=5
 doveadm(ox101 at us.es): Debug: import: box=INBOX uid=11
 doveadm(ox101 at us.es): Debug: import: box=INBOX uid=12
 doveadm(ox101 at 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 at 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


More information about the dovecot mailing list