Timo, The gdb analysis is attached. It looks like memory got seriously stomped in this core dump. There was no assert or other useful information in the syslog. My setup: Solaris 9, imap and imaps, mbox format, INBOXes NFS mounted, index files on local ufs filesystem, beta8 configured like so: VERSION=1.0.beta8 CC=gcc CFLAGS="-g -O" CPPFLAGS=-I/opt/openssl/include LDFLAGS=-L/opt/openssl/lib \ ./configure --prefix=/opt/dovecot.$VERSION \ --with-ssl=openssl \ --with-ssldir=/opt/openssl/ssl \ --with-sql-drivers=no \ --disable-ipv6 \ > configure.out Jeff Earickson Colby College -------------- next part -------------- %gdb imap core.safaasse GNU gdb 6.3 Copyright 2004 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 "sparc-sun-solaris2.9"... Core was generated by `imap'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/lib/libdl.so.1...done. Loaded symbols for /usr/lib/libdl.so.1 Reading symbols from /usr/lib/libsocket.so.1...done. Loaded symbols for /usr/lib/libsocket.so.1 Reading symbols from /usr/lib/libnsl.so.1...done. Loaded symbols for /usr/lib/libnsl.so.1 Reading symbols from /usr/lib/librt.so.1...done. Loaded symbols for /usr/lib/librt.so.1 Reading symbols from /usr/lib/libsendfile.so.1...done. Loaded symbols for /usr/lib/libsendfile.so.1 Reading symbols from /usr/lib/libc.so.1...done. Loaded symbols for /usr/lib/libc.so.1 Reading symbols from /usr/lib/libmp.so.2...done. Loaded symbols for /usr/lib/libmp.so.2 Reading symbols from /usr/lib/libaio.so.1...done. Loaded symbols for /usr/lib/libaio.so.1 Reading symbols from /usr/lib/libmd5.so.1...done. Loaded symbols for /usr/lib/libmd5.so.1 Reading symbols from /usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1...done. Loaded symbols for /usr/platform/SUNW,Ultra-60/lib/libc_psr.so.1 #0 0xff1b455c in strlen () from /usr/lib/libc.so.1 (gdb) backtrace #0 0xff1b455c in strlen () from /usr/lib/libc.so.1 #1 0xff207058 in _doprnt () from /usr/lib/libc.so.1 #2 0xff2090c8 in vsnprintf () from /usr/lib/libc.so.1 #3 0x00080f3c in str_vprintfa (str=0xa6be2, fmt=Cannot access memory at address 0x48 ) at str.c:118 #4 0x00073f0c in internal_handler (log_type=-64 '?', format=0x2 <Address 0x2 out of bounds>, args=0x18) at failures.c:362 #5 0x00073f60 in i_internal_info_handler ( fmt=0x49 <Address 0x49 out of bounds>, args=0x84288) at failures.c:400 #6 0x00074424 in i_info (format=0x84288 "Disconnected: %s") at failures.c:218 #7 0x000218c8 in client_disconnect (client=0x84288, reason=0x0) at client.c:119 #8 0x00021924 in client_disconnect_with_error (client=0xb1b40, msg=0x0) at client.c:130 #9 0x0001e818 in cmd_fetch_finish (ctx=Variable "ctx" is not available. ) at cmd-fetch.c:98 #10 0x0001eb0c in cmd_fetch (cmd=0x0) at cmd-fetch.c:176 #11 0x00022150 in _client_input (context=Variable "context" is not available. ) at client.c:375 #12 0x00079718 in io_loop_handler_run (ioloop=0xb1b40) at ioloop-poll.c:203 #13 0x00078f94 in io_loop_run (ioloop=0xaf440) at ioloop.c:274 #14 0x0002a560 in main (argc=717888, argv=0x1, envp=Variable "envp" is not available. ) at main.c:271 (gdb) up 4 #4 0x00073f0c in internal_handler (log_type=-64 '?', format=0x2 <Address 0x2 out of bounds>, args=0x18) at failures.c:362 362 str_vprintfa(str, format, args); (gdb) print args $1 = 0x18 (gdb) print *args Attempt to dereference a generic pointer. (gdb) print &args Can't take address of "args" which isn't an lvalue. (gdb) up #5 0x00073f60 in i_internal_info_handler ( fmt=0x49 <Address 0x49 out of bounds>, args=0x84288) at failures.c:400 400 (void)internal_handler('I', fmt, args); (gdb) print *args Attempt to dereference a generic pointer. (gdb) print args $2 = 0x84288 (gdb) print &args Can't take address of "args" which isn't an lvalue. (gdb) print **args Attempt to dereference a generic pointer. (gdb) up #6 0x00074424 in i_info (format=0x84288 "Disconnected: %s") at failures.c:218 218 info_handler(format, args); (gdb) print *format $3 = 68 'D' (gdb) up #7 0x000218c8 in client_disconnect (client=0x84288, reason=0x0) at client.c:119 119 i_info("Disconnected: %s", reason); (gdb) print *client $4 = {fd_in = 1147761507, fd_out = 1869508197, io = 0x63746564, input = 0x3a202573, output = 0x0, namespaces = 0x0, mailbox = 0x2a204259, keywords = {pool = 0x45200000, keywords = {buffer = 0x42414420, element_size = 1165128303}}, select_counter = 1914726766, messages_count = 541674817, recent_count = 1344304225, last_input = 1731862528, last_output = 1111573536, bad_counter = 1165128303, parser = 0x7220696e, cmd = {client = 0x20494d41, pool = 0x5020636f, tag = 0x6d6d616e <Address 0x6d6d616e out of bounds>, name = 0x643a2000 <Address 0x643a2000 out of bounds>, func = 0, context = 0x42414420, uid = 0, param_error = 1}, disconnected = 0, destroyed = 1, command_pending = 1, input_pending = 1, output_pending = 0, rawlog = 0, input_skip_line = 1} (gdb) up #8 0x00021924 in client_disconnect_with_error (client=0xb1b40, msg=0x0) at client.c:130 130 client_disconnect(client, msg); (gdb) print *client $5 = {fd_in = 0, fd_out = 1, io = 0xaf4d8, input = 0xb1bd8, output = 0xb1d08, namespaces = 0xb1570, mailbox = 0xb8008, keywords = {pool = 0xb5dc0, keywords = {buffer = 0x0, element_size = 0}}, select_counter = 5, messages_count = 2, recent_count = 0, last_input = 1148017947, last_output = 0, bad_counter = 0, parser = 0xb1d58, cmd = {client = 0xb1b40, pool = 0xb3db8, tag = 0xb3de8 "0000000b", name = 0xb3df8 "FETCH", func = 0x1e864 <cmd_fetch>, context = 0x0, uid = 0, param_error = 0}, disconnected = 0, destroyed = 0, command_pending = 0, input_pending = 0, output_pending = 0, rawlog = 0, input_skip_line = 1} (gdb) up #9 0x0001e818 in cmd_fetch_finish (ctx=Variable "ctx" is not available. ) at cmd-fetch.c:98 98 client_disconnect_with_error(cmd->client, error); (gdb) print ctx Variable "ctx" is not available. (gdb) print error Variable "error" is not available. (gdb) print cmd $6 = (struct client_command_context *) 0x0 (gdb) quit
On Fri, 2006-05-19 at 09:12 -0400, Jeff A. Earickson wrote:> The gdb analysis is attached. It looks like memory got seriously > stomped in this core dump.Wonder why.. Because the error seems to be simply that the error message was NULL which caused %s to dereference NULL pointer. The error shouldn't ever be NULL though, but I'll fix this anyway so that it won't crash there. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20060530/171c8c10/attachment.bin>
Tere. dovecot -a base_dir: /var/run/dovecot/ log_path: info_log_path: log_timestamp: %Y-%m-%d %H:%M:%S syslog_facility: mail protocols: imap imaps pop3 pop3s listen: * ssl_listen: ssl_disable: no ssl_ca_file: ssl_cert_file: /etc/ssl/certs/dovecot.pem ssl_key_file: /etc/ssl/private/dovecot.pem ssl_key_password: ssl_parameters_regenerate: 168 ssl_cipher_list: ssl_verify_client_cert: no disable_plaintext_auth: no verbose_ssl: yes shutdown_clients: yes nfs_check: yes login_dir: /var/run/dovecot//login login_executable(default): /usr/local/dovecot/libexec/dovecot/imap-login login_executable(imap): /usr/local/dovecot/libexec/dovecot/imap-login login_executable(pop3): /usr/local/dovecot/libexec/dovecot/pop3-login login_user: dovecot login_greeting: Dovecot ready. login_log_format_elements: %u %r %m %c login_log_format: %$: %s login_process_per_connection: yes login_chroot: yes login_greeting_capability: no login_process_size: 128 login_processes_count: 30 login_max_processes_count: 1024 login_max_logging_users: 2048 valid_chroot_dirs: mail_chroot: max_mail_processes: 5120 verbose_proctitle: yes first_valid_uid: 500 last_valid_uid: 0 first_valid_gid: 1 last_valid_gid: 0 mail_extra_groups: mail default_mail_env: maildir:%h/Maildir:INDEX=/var/spool/dovecot/index/%u:CONTROL=/var/spool/dovecot/control/%u mail_cache_fields: flags mail_never_cache_fields: imap.envelope Segmentation fault Is this normal? -- Sysadmin
Mart Pirita
2007-Feb-05 11:19 UTC
[Dovecot] Again: dovecot -a ends with Segmentation fault
Tere. 64bit systems give mail_log_prefix: %Us(%u): Segmentation fault Is this normal? -- Mart