Em 12/02/2010 22:57, Timo Sirainen escreveu:> Can you cause it to crash by running deliver directly from command line?
> If so, gdb backtrace would be nice:
>
> gdb /usr/libexec/dovecot/deliver
> run
> <it probably crashes here>
> bt full
>
yes i can make it crash from command line. Hope the informations help
you ....
i'm running a CentOS 5.4 i686 box, dovecot 1.2.10. i've just recompiled
1.2.10 to install it without stripping. i've always heard that
(stripping) makes debug with gdb too weak ... i dont know about that,
dont have sure. Anyway, i just recompiled and installed with 'make
install' instead of my usual 'make install-strip'
dovecot -n is at the end of the email
as i've already found this seems to be mail_debug dovecot.conf variable
related .... i'll try some variations here.
1) running with 'mail_debug=no' on dovecot.conf, deliver segfaults
[root at correio dovecot]# gdb /usr/libexec/dovecot/deliver
GNU gdb Fedora (6.8-37.el5)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb) run -c /etc/dovecot/dovecot.conf -p mensagem.eml -f
solutti at domain.com.br -d solutti at domain.com.br
Starting program: /usr/libexec/dovecot/deliver -c
/etc/dovecot/dovecot.conf -p mensagem.eml -f solutti at domain.com.br -d
solutti at domain.com.br
[Thread debugging using libthread_db enabled]
[New Thread 0xb8060a40 (LWP 20455)]
Program received signal SIGSEGV, Segmentation fault.
0x4c1be763 in unsetenv () from /lib/libc.so.6
(gdb) bt full
#0 0x4c1be763 in unsetenv () from /lib/libc.so.6
No symbol table info available.
#1 0x0805cc44 in main (argc=9, argv=0xbfe6da54) at deliver.c:497
_data_stack_cur_id = 2
config_path = 0xbfe6dbc0 "/etc/dovecot/dovecot.conf"
mailbox = 0x80f167d "INBOX"
auth_socket = <value optimized out>
home = <value optimized out>
destaddr = 0x0
user = 0xbfe6dc03 "solutti at domain.com.br"
errstr = <value optimized out>
path = 0x8107f70 "/etc/dovecot/mensagem.eml"
orig_user = <value optimized out>
extra_fields = {arr = {buffer = 0x0, element_size = 0}, v = 0x0,
v_modifiable = 0x0}
mail_user = <value optimized out>
raw_mail_user = <value optimized out>
raw_ns = <value optimized out>
storage = <value optimized out>
box = <value optimized out>
raw_box = <value optimized out>
input = <value optimized out>
t = <value optimized out>
headers_ctx = <value optimized out>
mail = <value optimized out>
cwd = "/etc/dovecot", '\0' <repeats 1232 times>,
"?\021\000\000(?????\030L????`?\027L\000\0002L?\021\000\000\003\000\000\0002\000\000\000????",
'\0' <repeats 45 times>, "
0L\000?1L\\?1L\\?1L\000\000\000\000\005\000\000\000\000?1L\000\0002L0?1L?\0212L\0000\001\000\003\000\000\000\005\227\030L\b\000\000\000??\030L/\000\000\000X\006\031Lh???\005\227\030L\b\000\000\000\025\000\000\000??\030L????t?\027LP\032\006??\027\006?\025\000\000\000\001\000\000\000<O2L?\027\006??\027\006?\020\000\000\000?"...
process_euid = 0
stderr_rejection = false
keep_environment = false
user_auth = true
mtime = <value optimized out>
i = <value optimized out>
ret = <value optimized out>
userdb_pool = (pool_t) 0x0
str = <value optimized out>
error = MAIL_ERROR_NONE
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) quit
[root at correio dovecot]#
2) running with mail_debug line COMMENTED OUT or with mail_debug=yes on
dovecot.conf, deliver works just fine as its supposed to work :)
[root at correio dovecot]# gdb /usr/libexec/dovecot/deliver
GNU gdb Fedora (6.8-37.el5)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb) run -c /etc/dovecot/dovecot.conf -p mensagem.eml -f
solutti at domain.com.br -d solutti at domain.com.br
Starting program: /usr/libexec/dovecot/deliver -c
/etc/dovecot/dovecot.conf -p mensagem.eml -f solutti at domain.com.br -d
solutti at domain.com.br
[Thread debugging using libthread_db enabled]
[New Thread 0xb8004a40 (LWP 20698)]
Program exited normally.
(gdb)
dovecot -n output:
[root at correio dovecot]# dovecot -c /etc/dovecot/dovecot.conf -n
# 1.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.29.1-grsec-Solutti i686 CentOS release 5.4 (Final) ext3
base_dir: /var/run/dovecot/
protocols: imap imaps pop3 pop3s
listen(default): *:143
listen(imap): *:143
listen(pop3): *:110
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(pop3): *:995
ssl_cert_file: /etc/dovecot/ssl/certs/dovecot.pem
ssl_key_file: /etc/dovecot/ssl/private/dovecot.pem
ssl_cipher_list: ALL:!LOW:!SSLv2
disable_plaintext_auth: no
login_dir: /var/run/dovecot//login
login_executable(default): /usr/libexec/dovecot/imap-login
login_executable(imap): /usr/libexec/dovecot/imap-login
login_executable(pop3): /usr/libexec/dovecot/pop3-login
login_log_format_elements: user=<%u> method=%m rip=%r lip=%l %c %k
mail_max_userip_connections: 100
verbose_proctitle: yes
first_valid_uid: 8
last_valid_uid: 8
first_valid_gid: 12
last_valid_gid: 12
mail_access_groups: mail
mail_privileged_group: mail
mail_uid: mail
mail_gid: mail
mail_location: maildir:/var/spool/mail/%u
maildir_copy_with_hardlinks: no
mail_executable(default): /usr/libexec/dovecot/imap
mail_executable(imap): /usr/libexec/dovecot/imap
mail_executable(pop3): /usr/libexec/dovecot/pop3
mail_plugins(default): quota imap_quota trash lazy_expunge expire
autocreate zlib
mail_plugins(imap): quota imap_quota trash lazy_expunge expire
autocreate zlib
mail_plugins(pop3): quota lazy_expunge expire autocreate zlib
mail_plugin_dir(default): /usr/lib/dovecot/imap
mail_plugin_dir(imap): /usr/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/lib/dovecot/pop3
mail_log_prefix: %Us(%u), rip=%r, lip=%l:
imap_client_workarounds(default): delay-newmail
imap_client_workarounds(imap): delay-newmail
imap_client_workarounds(pop3):
pop3_client_workarounds(default):
pop3_client_workarounds(imap):
pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
namespace:
type: private
prefix: INBOX.
inbox: yes
list: yes
subscriptions: yes
lda:
postmaster_address: postmaster at domain.com.br
mail_plugins: quota trash expire autocreate
mail_plugin_dir: /usr/lib/dovecot/lda
quota_full_tempfail: no
deliver_log_format: msgid=%m: %$
sendmail_path: /usr/lib/sendmail
rejection_subject: Rejected: %s
rejection_reason: Your message to <%t> was automatically rejected:%n%r
auth_socket_path: /var/run/dovecot/auth-master
auth default:
mechanisms: plain login
user: nobody
username_format: %Lu
passdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
userdb:
driver: prefetch
userdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
socket:
type: listen
client:
path: /var/spool/postfix/private/auth
mode: 432
user: postfix
group: postfix
master:
path: /var/run/dovecot/auth-master
mode: 384
user: mail
group: mail
plugin:
quota: maildir
[root at correio dovecot]#
--
Atenciosamente / Sincerily,
Leonardo Rodrigues
Solutti Tecnologia
http://www.solutti.com.br
Minha armadilha de SPAM, N?O mandem email
gertrudes at solutti.com.br
My SPAMTRAP, do not email it