Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-26 Thread Timo Sirainen
On Tue, 2009-05-26 at 07:49 +0200, Chantal Rosmuller wrote:
 Program received signal SIGSEGV, Segmentation fault.
 0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
 (gdb) #0  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
 No symbol table info available.
 #1  0xb7ff80dd in env_remove () from /usr/lib/dovecot/deliver
 No symbol table info available.

Hmm. Interesting. Is this Ubuntu x86 or x86-64? I can't reproduce this
with x86.

Anyway you should be able to work around it by removing boolean settings
that are set to no. What do you get with:

grep '^ *[a-z].*= *no' /etc/dovecot/dovecot.conf 



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-26 Thread Timo Sirainen
On Tue, 2009-05-26 at 07:49 +0200, Chantal Rosmuller wrote:
 Program received signal SIGSEGV, Segmentation fault.
 0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
 (gdb) #0  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
 No symbol table info available.
 #1  0xb7ff80dd in env_remove () from /usr/lib/dovecot/deliver
 No symbol table info available.

This is a bug in glibc. It also crashes in CentOS 5. Lets see if Ubuntu
gets it reported to upstream:

https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/380487



signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-26 Thread Chantal Rosmuller

On Tuesday 26 May 2009 08:48:17 Timo Sirainen wrote:
 On Tue, 2009-05-26 at 07:49 +0200, Chantal Rosmuller wrote:
  Program received signal SIGSEGV, Segmentation fault.
  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
  (gdb) #0  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
  No symbol table info available.
  #1  0xb7ff80dd in env_remove () from /usr/lib/dovecot/deliver
  No symbol table info available.

 This is a bug in glibc. It also crashes in CentOS 5. Lets see if Ubuntu
 gets it reported to upstream:

 https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/380487

Really? And this is triggered by disable_plaintext_auth = no?

I moved the line but now I get status=deferred (temporary failure)

probably a permission problem, I have been fiddling with the settings to solve 
the command died issue so I probably broke something.


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-26 Thread Timo Sirainen
On Tue, 2009-05-26 at 08:59 +0200, Chantal Rosmuller wrote:
 On Tuesday 26 May 2009 08:48:17 Timo Sirainen wrote:
  On Tue, 2009-05-26 at 07:49 +0200, Chantal Rosmuller wrote:
   Program received signal SIGSEGV, Segmentation fault.
   0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
   (gdb) #0  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
   No symbol table info available.
   #1  0xb7ff80dd in env_remove () from /usr/lib/dovecot/deliver
   No symbol table info available.
 
  This is a bug in glibc. It also crashes in CentOS 5. Lets see if Ubuntu
  gets it reported to upstream:
 
  https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/380487
 
 Really? And this is triggered by disable_plaintext_auth = no?

Well, it's triggered by the code sequence where environment is first
cleared, and when Dovecot sees disable_plaintext_auth=no it makes sure
that it's not in environment by calling unsetenv(), which causes glibc
to crash. Having another setting in the middle adds a new environment
and works around the glibc bug.

 I moved the line but now I get status=deferred (temporary failure)
 
 probably a permission problem, I have been fiddling with the settings to 
 solve 
 the command died issue so I probably broke something.

Either it's not able to write to log file or it wrote the error to log
file.


signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-26 Thread Chantal Rosmuller

  I moved the line but now I get status=deferred (temporary failure)
 
  probably a permission problem, I have been fiddling with the settings to
  solve the command died issue so I probably broke something.

 Either it's not able to write to log file or it wrote the error to log
 file.

Ah okay sorry I could have figured that out for myself, it's a pretty straight 
forward permission problem. Thanks!


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-26 Thread Chantal Rosmuller

On Tuesday 26 May 2009 09:03:38 Timo Sirainen wrote:
 On Tue, 2009-05-26 at 08:59 +0200, Chantal Rosmuller wrote:
  On Tuesday 26 May 2009 08:48:17 Timo Sirainen wrote:
   On Tue, 2009-05-26 at 07:49 +0200, Chantal Rosmuller wrote:
Program received signal SIGSEGV, Segmentation fault.
0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
(gdb) #0  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#1  0xb7ff80dd in env_remove () from /usr/lib/dovecot/deliver
No symbol table info available.
  
   This is a bug in glibc. It also crashes in CentOS 5. Lets see if Ubuntu
   gets it reported to upstream:
  
   https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/380487
 
  Really? And this is triggered by disable_plaintext_auth = no?

 Well, it's triggered by the code sequence where environment is first
 cleared, and when Dovecot sees disable_plaintext_auth=no it makes sure
 that it's not in environment by calling unsetenv(), which causes glibc
 to crash. Having another setting in the middle adds a new environment
 and works around the glibc bug.

  I moved the line but now I get status=deferred (temporary failure)
 
  probably a permission problem, I have been fiddling with the settings to
  solve the command died issue so I probably broke something.

 Either it's not able to write to log file or it wrote the error to log
 file.

I had to change the gid in the dovecot query

old
user_query = SELECT '/var/vmail/%2d/%d/%n' as home, 
'maildir:/var/vmail/%2d/%d/%n' as mail, 150 AS uid, 118 AS gid, 
concat('dirsize:storage=',quota) AS quota FROM mailbox WHERE username ='%u' 
AND active ='1'
 
new
user_query = SELECT '/var/vmail/%2d/%d/%n' as home, 
'maildir:/var/vmail/%2d/%d/%n' as mail, 150 AS uid, 8 AS gid, 
concat('dirsize:storage=',quota) AS quota FROM mailbox WHERE username ='%u' 
AND active ='1'

It works now, great thanks a lot!




Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-25 Thread Timo Sirainen
On Fri, 2009-05-22 at 10:02 +0200, Chantal Rosmuller wrote:
 On Friday 22 May 2009 09:49:49 Timo Sirainen wrote:
  On May 22, 2009, at 3:44 AM, Chantal Rosmuller wrote:
   I use dovecot 1.1.11 on ubuntu 9.04, when I want to send a message
   to an email
   adres on this mailserver I get this error:status=bounced
   (Command died
   with signal 11: /usr/lib/dovecot/deliver.
 
  Signal 11 means it crashed. Is this reproducible every time? Having a
  gdb backtrace from this crash would be useful. I suppose there's no
  core file in the user's home directory? Hmm. Debugging it is probably
  going to be annoyingly difficult..
 
 It is reproducable, how can I make a gdb backtrace? What is a core file?

Try this:

dovecot   unix  -   n   n   -   -   pipe
  flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/gdbhelper /tmp/deliver.sh -d 
${recipient}

And /tmp/deliver.sh contains:

#!/bin/sh

sleep 1
exec /usr/lib/dovecot/deliver $*

chmod +x /tmp/deliver.sh and deliver a mail. Hopefully you'll now
have /tmp/gdbhelper* file(s)? If so, copypaste contents.


signature.asc
Description: This is a digitally signed message part


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-25 Thread Chantal Rosmuller

  It is reproducable, how can I make a gdb backtrace? What is a core file?

 Try this:

 dovecot   unix  -   n   n   -   -   pipe
   flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/gdbhelper
 /tmp/deliver.sh -d ${recipient}

 And /tmp/deliver.sh contains:

 #!/bin/sh

 sleep 1
 exec /usr/lib/dovecot/deliver $*

 chmod +x /tmp/deliver.sh and deliver a mail. Hopefully you'll now
 have /tmp/gdbhelper* file(s)? If so, copypaste contents.

Ah great I got some debugging info (although not sure what it means)

GNU gdb 6.8-debian
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 i486-linux-gnu...
/tmp/deliver.sh: not in executable format: File format not recognized
Attaching to process 22795
Reading symbols from /bin/dash...(no debugging symbols found)...done.
Reading symbols from /lib/tls/i686/cmov/libc.so.6...(no debugging symbols 
found)...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
(no debugging symbols found)
0xb80b3424 in __kernel_vsyscall ()
(gdb) SignalStopPrint   Pass to program Description
SIGPIPE   NoYes Yes Broken pipe
(gdb) SignalStopPrint   Pass to program Description
SIGALRM   NoNo  Yes Alarm clock
(gdb) SignalStopPrint   Pass to program Description
SIG32 NoYes Yes Real-time event 32
(gdb) Continuing.
Executing new program: /usr/lib/dovecot/deliver
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

Program received signal SIGSEGV, Segmentation fault.
0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
(gdb) #0  0xb7e0b5bf in unsetenv () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
#1  0xb7ff80dd in env_remove () from /usr/lib/dovecot/deliver
No symbol table info available.
#2  0xb7f80ad2 in main () from /usr/lib/dovecot/deliver
No symbol table info available.
(gdb) The program is running.  Exit anyway? (y or n) [answered Y; input not 
from terminal]



Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-22 Thread Timo Sirainen

On May 22, 2009, at 3:44 AM, Chantal Rosmuller wrote:

I use dovecot 1.1.11 on ubuntu 9.04, when I want to send a message  
to an email
adres on this mailserver I get this error:status=bounced  
(Command died

with signal 11: /usr/lib/dovecot/deliver.


Signal 11 means it crashed. Is this reproducible every time? Having a  
gdb backtrace from this crash would be useful. I suppose there's no  
core file in the user's home directory? Hmm. Debugging it is probably  
going to be annoyingly difficult..


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-22 Thread Max Ivanov
 I suppose there's no core file in the user's home directory?

Why? Doesnt them should be autocreated  if ulimit -c  is defined and
kernel.core_pattern != /dev/null ?


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-22 Thread Timo Sirainen


On May 22, 2009, at 3:54 AM, Max Ivanov wrote:


I suppose there's no core file in the user's home directory?


Why? Doesnt them should be autocreated  if ulimit -c  is defined


If it's done in the correct place. That means before Postfix is  
started, and that the Postfix init.d script doesn't change it.



and kernel.core_pattern != /dev/null ?


and that deliver has home directory specified and there's no weird  
things like SELinux messing things up and probably some other things I  
can't remember right now.


At least the very latest Dovecot versions tell if the core file was  
written at all. Maybe some day when v2.0 is released people are using  
LMTP and that notification gets written too. Or maybe I could try  
writing a patch to Postfix and see if they would care about Postfix  
logging if core was dumped or not.




Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-22 Thread Chantal Rosmuller

On Friday 22 May 2009 09:49:49 Timo Sirainen wrote:
 On May 22, 2009, at 3:44 AM, Chantal Rosmuller wrote:
  I use dovecot 1.1.11 on ubuntu 9.04, when I want to send a message
  to an email
  adres on this mailserver I get this error:status=bounced
  (Command died
  with signal 11: /usr/lib/dovecot/deliver.

 Signal 11 means it crashed. Is this reproducible every time? Having a
 gdb backtrace from this crash would be useful. I suppose there's no
 core file in the user's home directory? Hmm. Debugging it is probably
 going to be annoyingly difficult..

It is reproducable, how can I make a gdb backtrace? What is a core file?

ls /path/to/maildir/



drwx-- 2 vmail mail 4096 2009-05-22 09:18 cur
-rw--- 1 vmail mail  232 2009-05-22 09:18 dovecot.index.log
-rw--- 1 vmail mail   17 2009-05-22 09:18 dovecot-uidlist
-rw--- 1 vmail mail8 2009-05-22 09:18 dovecot-uidvalidity
-rw--- 1 vmail mail0 2009-05-22 09:18 dovecot-uidvalidity.4a1651b8
drwx-- 2 vmail mail 4096 2009-05-22 09:18 new
drwx-- 2 vmail mail 4096 2009-05-22 09:18 tmp



Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-22 Thread Chantal Rosmuller

On Friday 22 May 2009 09:58:29 Timo Sirainen wrote:
 On May 22, 2009, at 3:54 AM, Max Ivanov wrote:
  I suppose there's no core file in the user's home directory?
 
  Why? Doesnt them should be autocreated  if ulimit -c  is defined

 If it's done in the correct place. That means before Postfix is
 started, and that the Postfix init.d script doesn't change it.

  and kernel.core_pattern != /dev/null ?

 and that deliver has home directory specified and there's no weird
 things like SELinux messing things up and probably some other things I
 can't remember right now.

 At least the very latest Dovecot versions tell if the core file was
 written at all. Maybe some day when v2.0 is released people are using
 LMTP and that notification gets written too. Or maybe I could try
 writing a patch to Postfix and see if they would care about Postfix
 logging if core was dumped or not.

could this be the problem: /etc/postfix/master.cf

dovecot   unix  -   n   n   -   -   pipe
  flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}

maybe dovecot 1.1 needs different flags then 1.0? (Because this works with 1.0)


Re: [Dovecot] status=bounced (Command died with signal 11: /usr/lib/dovecot/deliver

2009-05-22 Thread Charles Marcus
On 5/22/2009 4:34 AM, Chantal Rosmuller wrote:
 could this be the problem: /etc/postfix/master.cf
 
 dovecot   unix  -   n   n   -   -   pipe
   flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -d ${recipient}
 
 maybe dovecot 1.1 needs different flags then 1.0? (Because this works with 
 1.0)

First place to check is the wiki... which shows something a little
different (but I don't know if it causes your problem):

http://wiki.dovecot.org/LDA/Postfix

-- 

Best regards,

Charles