[Dovecot] 2.0.12 Coredump under Solaris 10
hi,
I've installed a testversion from 2.0.12 and getting coredumps after login via IMAP/POP3. I don't know, if it is a simple config error or something else.
====== dovecot: [ID 583609 local7.error] master: Error: service(imap): child 29333 killed with signal 11 (core dumped)
[ID 583609 local7.error] master: Error: service(imap): child 29335 killed with signal 11 (core dumped)
my configure:
CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS" LDFLAGS="-L/opt/csw/lib -L/usr/lib -R/opt/csw/lib/" ./configure --prefix=/usr/local/dovecot/2.0.12-testinstanz --with-ssl=openssl --with-rundir=/var/run/dovecot-testinstanz --with-storages=maildir,mbox,sdbox,mdbox --with-ldap=yes --sysconfdir=/usr/local/dovecot/etc-testinstanz
2.0.9 works.
The gdb coredump shows:
gdb ../../dovecot2-testinstanz/libexec/dovecot/imap /var/run/dovecot-testinstanz/core
GNU gdb 6.6 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-pc-solaris2.8"... Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/libdovecot-storage.so.0...done. Loaded symbols for /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/libdovecot-storage.so.0 Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/libdovecot.so.0...done. Loaded symbols for /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/libdovecot.so.0 Reading symbols from /opt/csw/lib/libiconv.so.2...done. Loaded symbols for /opt/csw/lib//libiconv.so.2 Reading symbols from /lib/libnsl.so.1...done. Loaded symbols for /lib/libnsl.so.1 Reading symbols from /lib/libsocket.so.1...done. Loaded symbols for /lib/libsocket.so.1 Reading symbols from /lib/librt.so.1...done. Loaded symbols for /lib/librt.so.1 Reading symbols from /lib/libsendfile.so.1...done. Loaded symbols for /lib/libsendfile.so.1 Reading symbols from /lib/libc.so.1...done. Loaded symbols for /lib/libc.so.1 Reading symbols from /usr/sfw/lib/libgcc_s.so.1...done. Loaded symbols for /usr/sfw/lib/libgcc_s.so.1 Reading symbols from /lib/libaio.so.1...done. Loaded symbols for /lib/libaio.so.1 Reading symbols from /lib/libmd.so.1...done. Loaded symbols for /lib/libmd.so.1 Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib01_acl_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib01_acl_plugin.so Reading symbols from /lib/libscf.so.1...done. Loaded symbols for /lib/libscf.so.1 Reading symbols from /lib/libdoor.so.1...done. Loaded symbols for /lib/libdoor.so.1 Reading symbols from /lib/libuutil.so.1...done. Loaded symbols for /lib/libuutil.so.1 Reading symbols from /lib/libgen.so.1...done. Loaded symbols for /lib/libgen.so.1 Reading symbols from /lib/libmp.so.2...done. Loaded symbols for /lib/libmp.so.2 Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib02_imap_acl_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib02_imap_acl_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib10_quota_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib10_quota_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib11_imap_quota_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib11_imap_quota_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib11_trash_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib11_trash_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib15_notify_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib15_notify_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib20_autocreate_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib20_autocreate_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib20_fts_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib20_fts_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib20_listescape_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib20_listescape_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib20_mail_log_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib20_mail_log_plugin.so Reading symbols from /usr/local/dovecot/2.0.12-testinstanz/lib/dovecot/lib20_zlib_plugin.so...done. Loaded symbols for /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot//lib20_zlib_plugin.so Reading symbols from /opt/csw/lib/libz.so.1...done. Loaded symbols for /opt/csw/lib//libz.so.1 Reading symbols from /opt/csw/lib/libbz2.so.1.0...done. Loaded symbols for /opt/csw/lib//libbz2.so.1.0 Reading symbols from /lib/ld.so.1...done. Loaded symbols for /lib/ld.so.1 Core was generated by `dovecot/imap'. Program terminated with signal 11, Segmentation fault. #0 0xfeb559f8 in strcmp () from /lib/libc.so.1
The same from pop3 after entering username/password
======= config =========
/usr/local/dovecot/dovecot2-testinstanz/sbin/dovecot -n
# 2.0.12: /usr/local/dovecot/etc-testinstanz/dovecot/dovecot.conf # OS: SunOS 5.10 i86pc zfs auth_debug = yes auth_username_format = %Lu auth_verbose = yes debug_log_path = /var/log/dovecot-testinstanz-debug.log disable_plaintext_auth = no hostname = xfire05.rbg.informatik.tu-darmstadt.de info_log_path = /var/log/dovecot-testinstanz.log lda_mailbox_autocreate = yes login_greeting = I'm alive for testing mail_debug = yes mail_gid = vmail mail_home = /imap/spool/%d/%1n/%n mail_location = maildir:/imap/spool/%d/%1n/%n:INDEX=/imap/spool/% d/indexes/%1n/%n mail_plugin_dir = /usr/local/dovecot/dovecot2-testinstanz/lib/dovecot/ mail_plugins = acl quota fts mail_privileged_group = vmail mail_temp_dir = /imap/spool/tmp mail_uid = vmail 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 imapflags namespace { hidden = no inbox = yes location = prefix = separator = / subscriptions = yes type = private } namespace { inbox = no location = maildir:/imap/spool/public prefix = public/ separator = / subscriptions = no type = public } passdb { args = /usr/local/dovecot/etc-testinstanz/dovecot/conf.d/dovecot-ldap.conf.ext driver = ldap } passdb { args = scheme=plain-md5 username_format=% Lu /usr/local/dovecot/etc-testinstanz/dovecot/other-domain-users driver = passwd-file } plugin { acl = vfile:/imap/spool/%d/acl autocreate = Sent autocreate2 = Drafts autocreate3 = Trash autocreate4 = Spam autosubscribe = Sent autosubscribe2 = Drafts autosubscribe3 = Trash autosubscribe4 = Spam fts = squat fts_squat = partial=4 full=10 quota = maildir:User quota quota_rule2 = Trash:storage=+10%% quota_rule3 = Spam:storage=+20%% quota_warning = storage=80% % /usr/local/dovecot/dovecot2/bin/quota-warning.sh 80 quota_warning2 = storage=90% % /usr/local/dovecot/dovecot2/bin/quota-warning.sh 90 quota_warning3 = storage=95% % /usr/local/dovecot/dovecot2/bin/quota-warning.sh 95 sieve = /imap/spool/%d/%1n/%n/sieve/default.sieve sieve_dir = /imap/spool/%d/%1n/%n/sieve sieve_extensions = +imapflags trash = /usr/local/dovecot/etc-testinstanz/dovecot/conf.d/dovecot-trash.conf } postmaster_address = postmaster@domain.foo protocols = imap pop3 sieve service auth { unix_listener /var/spool/postfix/private/auth-testinstanz { group = postdrop mode = 0600 user = postfix } } service imap-login { inet_listener imap { port = 1433 } inet_listener imaps { port = 9933 ssl = yes } process_min_avail = 8 vsz_limit = 1 G } service lmtp { unix_listener /var/spool/postfix/private/dovecot-testinstanz-lmtp { group = postdrop mode = 0666 user = postfix } } service managesieve-login { inet_listener sieve { port = 41900 } inet_listener sieve_deprecated { port = 20011 } } service pop3-login { inet_listener pop3 { port = 1100 } inet_listener pop3s { port = 9955 ssl = yes } } ssl_cert = </usr/local/dovecot/etc-testinstanz/dovecot/ssl/imapd.pem ssl_key = </usr/local/dovecot/etc-testinstanz/dovecot/ssl/imapd.pem syslog_facility = local7 userdb { args = /usr/local/dovecot/etc-testinstanz/dovecot/conf.d/dovecot-ldap.conf.ext driver = ldap } userdb { args = username_format=% Lu /usr/local/dovecot/etc-testinstanz/dovecot/other-domain-users driver = passwd-file } verbose_proctitle = yes protocol lda { mail_plugins = acl quota fts sieve quota fts fts_squat } protocol imap { imap_idle_notify_interval = 2 mins mail_max_userip_connections = 10 mail_plugins = acl quota fts fts_squat imap_acl imap_quota mail_log notify autocreate trash listescape fts fts_squat zlib } protocol lmtp { mail_plugins = acl quota fts fts_squat sieve } protocol pop3 { mail_plugins = acl quota fts quota fts fts_squat pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_reuse_xuidl = yes }
I'm changed several paths to make my "update way" easier with testing the new release before change the production version. Maybe, there are some typos ...
cu denny
On Wed, 2011-04-27 at 10:24 +0200, Denny Schierz wrote:
The gdb coredump shows:
Almost great bug report! Just:
gdb ../../dovecot2-testinstanz/libexec/dovecot/imap /var/run/dovecot-testinstanz/core
Core was generated by `dovecot/imap'. Program terminated with signal 11, Segmentation fault. #0 0xfeb559f8 in strcmp () from /lib/libc.so.1
Give "bt full" command here and show the output.
hi,
Am Mittwoch, den 27.04.2011, 12:37 +0300 schrieb Timo Sirainen:
Give "bt full" command here and show the output.
lot of lines :-)
============================ (gdb) bt full #0 0xfeb559f8 in strcmp () from /lib/libc.so.1 No symbol table info available. #1 0xfee73e7a in settings_find_key_nth (ctx=0x809bec0, key=0x807ab38 "plugin//imap", n=0x80477f0, def_r=0x80477f4, link_r=0x80477f8) at settings-parser.c:699 parent_n = 1 parent_def = (const struct setting_define *) 0x0 parent_link = (struct setting_link *) 0x809bf40 def = (const struct setting_define *) 0x7ffffffb link = (struct setting_link *) 0x807ab48 parent_key = 0x807ab48 "plugin/" i = 134720328 __FUNCTION__ = "settings_find_key_nth" #2 0xfee73e57 in settings_find_key_nth (ctx=0x809bec0, key=0x807ab20 "plugin//imap/spool", n=0x8047830, def_r=0x8047834, link_r=0x8047838) at settings-parser.c:693 parent_n = 1 parent_def = (const struct setting_define *) 0x807ab20 parent_link = (struct setting_link *) 0x8047848 def = (const struct setting_define *) 0x7ffffffb link = (struct setting_link *) 0x807ab48 parent_key = 0x807ab38 "plugin//imap" i = 134720312 __FUNCTION__ = "settings_find_key_nth" #3 0xfee73e57 in settings_find_key_nth (ctx=0x809bec0, key=0x807ab08 "plugin//imap/spool/%d", n=0x8047870, def_r=0x8047874, link_r=0x8047878) at settings-parser.c:693 parent_n = 1 parent_def = (const struct setting_define *) 0x807ab08 parent_link = (struct setting_link *) 0x8047888 def = (const struct setting_define *) 0x7ffffffb link = (struct setting_link *) 0x807ab48 parent_key = 0x807ab20 "plugin//imap/spool" i = 134720288 __FUNCTION__ = "settings_find_key_nth" #4 0xfee73e57 in settings_find_key_nth (ctx=0x809bec0, key=0x807aae8 "plugin//imap/spool/%d/%1n", n=0x80478b0, def_r=0x80478b4, link_r=0x80478b8) at settings-parser.c:693 parent_n = 1 parent_def = (const struct setting_define *) 0x807aae8 parent_link = (struct setting_link *) 0x80478c8 def = (const struct setting_define *) 0x7ffffffb link = (struct setting_link *) 0x807ab48 parent_key = 0x807ab08 "plugin//imap/spool/%d" i = 134720264 __FUNCTION__ = "settings_find_key_nth" #5 0xfee73e57 in settings_find_key_nth (ctx=0x809bec0, key=0x807aac8 "plugin//imap/spool/%d/%1n/%n", n=0x8047930, def_r=0x8047934, link_r=0x8047938) at settings-parser.c:693 parent_n = 1 parent_def = (const struct setting_define *) 0x0 parent_link = (struct setting_link *) 0x1d def = (const struct setting_define *) 0x7ffffffb link = (struct setting_link *) 0x807ab48 parent_key = 0x807aae8 "plugin//imap/spool/%d/%1n" i = 134720232 __FUNCTION__ = "settings_find_key_nth" #6 0xfee73806 in settings_parse_keyvalue (ctx=0x809bec0, key=0x807aac8 "plugin//imap/spool/%d/%1n/%n", value=0x807aab5 "/home/testds") at settings-parser.c:767 ---Type <return> to continue, or q <return> to quit--- def = (const struct setting_define *) 0x807aa98 link = (struct setting_link *) 0x807aab4 n = 1 #7 0xfee74322 in settings_parse_line (ctx=0x809bec0, line=0x807aa98 "plugin//imap/spool/%d/%1n/%n=/home/testds") at settings-parser.c:869 _data_stack_cur_id = 4 key = 0x807aac8 "plugin//imap/spool/%d/%1n/%n" ret = 134720200 #8 0xfef0b740 in mail_storage_service_lookup (ctx=0x80852f0, input=0x8047b60, user_r=0x8047a98, error_r=0x8047b3c) at mail-storage-service.c:134 _data_stack_cur_id = 3 flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT user = (struct mail_storage_service_user *) 0x8088988 username = 0x807a89b "testds@domain.foo" user_info = (const struct setting_parser_info *) 0x8089d80 user_set = (const struct mail_user_settings *) 0xfef7fc99 userdb_fields = (const char * const *) 0x807a908 error = 0xfeff0540 "" reply = {uid = -1, gid = -1, home = 0x0, chroot = 0x0, extra_fields = {arr = {buffer = 0x809b6b8, element_size = 4}, v = 0x809b6b8, v_modifiable = 0x809b6b8}} set_parser = (struct setting_parser_context *) 0x8093d40 user_pool = (pool_t) 0x8088918 temp_pool = (pool_t) 0x809b6a8 ret = 1 #9 0xfef0be8f in mail_storage_service_lookup_next (ctx=0x80852f0, input=0x8047b60, user_r=0x807ab48, mail_user_r=0x8047adc, error_r=0x8047b3c) at mail-storage-service.c:1001 user = (struct mail_storage_service_user *) 0x0 ret = 134768152 #10 0x080658cd in client_create_from_input (input=0x807ab48, login_client=0x8086618, fd_in=10, fd_out=10, input_buf=0x8047b40, error_r=0x8047b3c) at main.c:202 user = (struct mail_storage_service_user *) 0x870 mail_user = (struct mail_user *) 0x1 client = (struct client *) 0x8047b40 set = (const struct imap_settings *) 0x807ab48 flags = 134720328 #11 0x08065b2d in login_client_connected (client=0x8086618, username=0x807ab48 "plugin/", extra_fields=0x807ab48) at main.c:267 input = {module = 0x8069b86 "imap", service = 0x8069b86 "imap", username = 0x807a89b "testds@domain.foo", local_ip = { family = 2, u = {ip6 = {_S6_un = {_S6_u8 = "\202S�O", '\0' <repeats 11 times>, _S6_u32 = {1335907202, 0, 0, 0}, __S6_align = 1335907202}}, ip4 = { S_un = {S_un_b = {s_b1 = 130 '\202', s_b2 = 83 'S', s_b3 = 160 '�', s_b4 = 79 'O'}, S_un_w = {s_w1 = 21378, s_w2 = 20384}, S_addr = 1335907202}}}}, remote_ip = {family = 2, u = {ip6 = {_S6_un = {_S6_u8 = "\202S�\230", '\0' <repeats 11 times>, _S6_u32 = {2560643970, 0, 0, 0}, __S6_align = 2560643970}}, ip4 = {S_un = {S_un_b = {s_b1 = 130 '\202', s_b2 = 83 'S', s_b3 = 160 '�', s_b4 = 152 '\230'}, S_un_w = {s_w1 = 21378, s_w2 = 39072}, S_addr = 2560643970}}}}, userdb_fields = 0x807a908, flags_override_add = 0, flags_override_remove = 0, no_userdb_lookup = 0} error = 0xfeb62e6f "\203�\f_^[\213�]�" input_buf = {data = 0x8086678, used = 3, priv = {0x0, 0x0, 0x3, 0x0, 0x0}} #12 0xfee8c339 in master_login_auth_finish (client=0x8086618, auth_args=0x7ffffffb) at master-login.c:206 login = (struct master_login *) 0x8083668 service = (struct master_service *) 0x8082fa8 __FUNCTION__ = "master_login_auth_finish" #13 0xfee8c603 in master_login_auth_callback (auth_args=0x807a904, errormsg=0x0, context=0x7ffffffb) at master-login.c:374 client = (struct master_login_client *) 0x8086618 conn = (struct master_login_connection *) 0x8083690 reply = {tag = 1, status = MASTER_AUTH_STATUS_OK, mail_pid = 50} #14 0xfee8d2d1 in master_login_auth_input (auth=0x8085af8) at master-login-auth.c:239 line = 0x80868df "USER\t2045378561\ttestds@domain.foo \t/imap/spool/%d/%1n/%n=/home/testds\tquota_rule=*:storage=50M" ret = 72 #15 0xfeea02c1 in io_loop_call_io (io=0x8086858) at ioloop.c:384 ---Type <return> to continue, or q <return> to quit--- ioloop = (struct ioloop *) 0x8083448 t_id = 2 #16 0xfeea0ca0 in io_loop_handler_run (ioloop=0x8083448) at ioloop-poll.c:211 ctx = (struct ioloop_handler_context *) 0x8083f48 pollfd = (struct pollfd *) 0x8084768 tv = {tv_sec = 154, tv_usec = 999296} io = (struct io_file *) 0x8086858 msecs = 134720328 ret = 0 call = true #17 0xfeea0371 in io_loop_run (ioloop=0x8083448) at ioloop.c:405 No locals. #18 0xfee8df08 in master_service_run (service=0x8082fa8, callback=0x807ab48) at master-service.c:478 No locals. #19 0x08065f4d in main (argc=1, argv=0x8047e30) at main.c:375 _data_stack_cur_id = 0 set_roots = {0x8066b00, 0x0} service_flags = 2147483643 storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT postlogin_socket_path = 0x8083448 "" username = 0x0 c = 134720328
==============================
On Wed, 2011-04-27 at 12:19 +0200, Denny Schierz wrote:
#7 0xfee74322 in settings_parse_line (ctx=0x809bec0, line=0x807aa98 "plugin//imap/spool/%d/%1n/%n=/home/testds") at settings-parser.c:869
That's an interesting setting you have there.. I tried to reproduce but I can't seem to make it crash with it.
What's in your dovecot-ldap.conf.ext? (This user was looked up from LDAP, right?)
hi,
Am Donnerstag, den 28.04.2011, 21:40 +0300 schrieb Timo Sirainen:
That's an interesting setting you have there.. I tried to reproduce but I can't seem to make it crash with it.
same setup as for 2.0.9
What's in your dovecot-ldap.conf.ext? (This user was looked up from LDAP, right?)
jupp,
hosts = ldap.domain.foo ldap2.domain.foo auth_bind = yes #auth_bind_userdn = uid=%u,cn=accounts,dc=domain,dc=foo ldap_version = 3 base = cn=accounts,dc=domain,dc=foo user_attrs = postalAddress=domain, homeDirectory=/imap/spool/%d/%1n/%n, myMailQuota=quota_rule=*:storage=%$M user_filter = (&(objectClass=posixAccount)(uid=%n)) pass_attrs = postalAddress=domain, uid=user, userPassword=password pass_filter = (&(objectClass=posixAccount)(uid=%n)) default_pass_scheme = MD5
On 29.4.2011, at 12.09, Denny Schierz wrote:
user_attrs = postalAddress=domain, homeDirectory=/imap/spool/%d/%1n/%n, myMailQuota=quota_rule=*:storage=%$M
The problem is that homeDirectory in there. It's not used at all currently. You probably want to replace it with:
=home=/imap/spool/%d/%1n/%n
It of course shouldn't crash anyway. I'll try to figure it out.
participants (2)
-
Denny Schierz
-
Timo Sirainen