segfault when using zlib module with glibc 2.22

Florian Pritz bluewind at xinu.at
Wed Aug 19 22:37:39 UTC 2015


Hi,

I'm seeing the following segfault when I run `doveadm search
mailbox inbox` with the zlib module enabled with dovecot 2.18 and glibc
2.22 on Arch Linux. It does not happen with glibc 2.21.

I've noticed that when I remove "zlib" from the mail_plugins line at
the beginning of the config file the segfault goes away. I've also
tested hg tip and the problem does not appear to be fixed yet.

The segfault also happens with other commands like `doveadm purge`.

Do you need any more information to reproduce and fix this?

Florian

backtrace:

> 0x00007ffff5eaf1e0 in pthread_mutex_unlock () from /usr/lib/libpthread.so.0
> #0  0x00007ffff5eaf1e0 in pthread_mutex_unlock () from /usr/lib/libpthread.so.0
> #1  0x00007ffff7def753 in _dl_close_worker () from /lib64/ld-linux-x86-64.so.2
> #2  0x00007ffff7defede in _dl_close () from /lib64/ld-linux-x86-64.so.2
> #3  0x00007ffff7dea124 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
> #4  0x00007ffff6d235e1 in ?? () from /usr/lib/libdl.so.2
> #5  0x00007ffff6d230bf in dlclose () from /usr/lib/libdl.so.2
> #6  0x00007ffff739326a in module_free (module=0x69da20) at module-dir.c:67
> #7  0x00007ffff7394882 in module_dir_unload (modules=0x68b680 <mail_storage_service_modules>) at module-dir.c:593
> #8  0x00007ffff765376b in mail_storage_service_deinit (_ctx=0x6a05d0) at mail-storage-service.c:1475
> #9  0x0000000000425ac2 in doveadm_mail_cmd (cmd=0x69f780, argc=3, argv=0x6943a0) at doveadm-mail.c:631
> #10 0x0000000000425dcb in doveadm_mail_try_run (cmd_name=0x6943c9 "search", argc=3, argv=0x694398) at doveadm-mail.c:711
> #11 0x0000000000433e1f in main (argc=3, argv=0x694398) at doveadm.c:346

dovecot.conf:

> # 2.0.0: dovecot.conf.orig
> # OS: Linux 2.6.35-ARCH x86_64 Arch Linux 
> auth_mechanisms = plain login
> disable_plaintext_auth = yes
> mail_location = mdbox:~/.mdbox
> mdbox_rotate_size = 10m
> mail_plugins = $mail_plugins zlib notify mail_log
> 
> # enable imap notify
> mailbox_list_index=yes
> 
> # remove domain part from username and lowercase it
> # needed for lmtp delivery to system users
> auth_username_format = %Ln
> 
> namespace inbox {
> 	hidden = no
> 		inbox = yes
> 		list = yes
> 		location = 
> 		prefix = 
> 		separator = .
> 		type = private
> 		mailbox Trash {
> 			auto = subscribe
> 				special_use = \Trash
> 		}
> 	mailbox Drafts {
> 		auto = subscribe
> 			special_use = \Drafts
> 	}
> 	mailbox Sent {
> 		auto = subscribe # autocreate, autosubscribe
> 			special_use = \Sent
> 	}
> 	mailbox Junk {
> 		auto = subscribe
> 			special_use = \Junk
> 	}
> }
> 
> passdb {
> 	driver = pam
> }
> plugin {
> 	sieve = ~/.dovecot.sieve
> 		sieve_dir = ~/.sieve
> 		sieve_global_dir = /etc/dovecot/sieve/global/
> 		sieve_global_path = /etc/dovecot/sieve/default.sieve
> 
> 		mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
> 		mail_log_fields = uid box msgid size
> }
> protocols = imap pop3 sieve lmtp
> service auth {
> 	unix_listener auth-client {
> 		group = postfix
> 			mode = 0660
> 			user = postfix
> 	}
> 	user = root
> }
> service imap-login {
> 	process_limit = 400
> 	process_min_avail = 5
> 	#executable = imap-login -D
> 	#chroot =
> }
> 
> service managesieve-login {
> 	inet_listener sieve {
> #port = 4190
> 	}
> 	inet_listener sieve-obsolete {
> 		port = 2000
> 	}
> }
> service managesieve {
> }
> service lmtp {
> 	unix_listener /var/spool/postfix/private/dovecot-lmtp {
> 		group = postfix
> 			mode = 0660
> 			user = postfix
> 	}
> }
> 
> #service imap {
> #  executable = imap postlogin
> #}
> #
> #service postlogin {
> #  executable = script-login -d rawlog
> #  unix_listener postlogin {
> #  }
> #}
> 
> login_log_format_elements = "user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k"
> imap_id_log = *
> 
> ssl_cert = </etc/ssl/my-certs/mail.pem
> ssl_key = </etc/ssl/private/server.key
> ssl_prefer_server_ciphers = yes
> 
> ssl_protocols = !SSLv2 !SSLv3
> ssl_options = no_compression
> 
> #ssl_cipher_list = DHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-ECDSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-ECDSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES256-SHA256:DHE-ECDSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:EDH-RSA-DES-CBC3-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ALL:!LOW:!SSLv2:!EXP:!aNULL
> 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_parameters_length = 4096
> 
> userdb {
> 	driver = passwd
> }
> protocol imap {
> 	imap_client_workarounds = tb-extra-mailbox-sep
> 		mail_max_userip_connections = 30
> 		mail_plugins = $mail_plugins imap_zlib
> }
> protocol lda {
> 	mail_plugins = $mail_plugins sieve
> 		postmaster_address = postmaster at server-speed.net
> }
> protocol lmtp {
> 	postmaster_address = postmaster at server-speed.net
> 		mail_plugins = $mail_plugins sieve
> }
> protocol sieve {
> 	managesieve_logout_format = bytes ( in=%i : out=%o )
> }
> plugin {
> 	sieve = ~/.dovecot.sieve
> 		sieve_dir = ~/.sieve
> 		zlib_save_level = 6
> 		zlib_save = gz
> #acl = vfile
> }
> #plugin {
>   #fts = lucene
>   ## Lucene-specific settings, good ones are:
>   #fts_lucene = whitespace_chars=@.
>   #fts_autoindex=yes
> #}
> 
> auth_failure_delay = 2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://dovecot.org/pipermail/dovecot/attachments/20150820/7fcc66b4/attachment.sig>


More information about the dovecot mailing list