I observe the very same behaviour on 12.04: The processes cleanup, rewrite and smtpd crash with signal 6 if they are within a chroot. (In the default configuration, chroots are used for these processes and it works here e.g. on Ubuntu 10.04).
Sample log message:
Apr 8 15:57:29 two postfix/master[7938]: warning: process /usr/lib/postfix/smtpd pid 7946 killed by signal 6
Apr 8 15:57:29 two postfix/master[7938]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
I did an "strace -s 4096 -f" of the postfix master process with smtpd et al. in chroot, and I believe that these are the relevant parts:
I observe the very same behaviour on 12.04: The processes cleanup, rewrite and smtpd crash with signal 6 if they are within a chroot. (In the default configuration, chroots are used for these processes and it works here e.g. on Ubuntu 10.04).
Sample log message:
Apr 8 15:57:29 two postfix/ master[ 7938]: warning: process /usr/lib/ postfix/ smtpd pid 7946 killed by signal 6 master[ 7938]: warning: /usr/lib/ postfix/ smtpd: bad command startup -- throttling
Apr 8 15:57:29 two postfix/
I did an "strace -s 4096 -f" of the postfix master process with smtpd et al. in chroot, and I believe that these are the relevant parts:
(process 7938 is the postfix master process)
7938 clone(child_ stack=0, flags=CLONE_ CHILD_CLEARTID| CLONE_CHILD_ SETTID| SIGCHLD, child_tidptr= 0x7f71f2a439d0) = 7946 "/usr/lib/ postfix/ smtpd", ["smtpd", "-n", "127.0.0.1:25", "-t", "inet", "-u", "-c", "-o", "smtpd_ tls_auth_ only=no" ], [/* 4 vars */]) = 0 "/var/spool/ postfix" ) = 0 stack=0x7f95d51 cbff0, flags=CLONE_ VM|CLONE_ FS|CLONE_ FILES|CLONE_ SIGHAND| CLONE_THREAD| CLONE_SYSVSEM| CLONE_SETTLS| CLONE_PARENT_ SETTID| CLONE_CHILD_ CLEARTID, parent_ tidptr= 0x7f95d51cc9d0, tls=0x7f95d51cc700, child_tidptr= 0x7f95d51cc9d0) = 7954 list(0x7f95d51c c9e0, 0x18) = 0 etc/ld. so.cache" , O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) O_NOCTTY| O_NONBLOCK) = -1 ENOENT (No such file or directory) PROT_WRITE, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0) = 0x7f95d88ca000 SIG_UNBLOCK, [ABRT], NULL, 8) = 0 master[ 7938]: warning: process /usr/lib/ postfix/ smtpd pid 7946 killed by signal 6", 109, MSG_NOSIGNAL, NULL, 0) = 109 master[ 7938]: warning: /usr/lib/ postfix/ smtpd: bad command startup -- throttling", 108, MSG_NOSIGNAL, NULL, 0) = 108
...
7946 execve(
...
7946 chroot(
...
7946 clone(child_
7954 set_robust_
7954 open("/
...
7954 open("/dev/tty", O_RDWR|
7954 writev(2, [{"libgcc_s.so.1 must be installed for pthread_cancel to work\n", 59}], 1) = 59
7954 mmap(NULL, 4096, PROT_READ|
7954 rt_sigprocmask(
7954 tgkill(7946, 7954, SIGABRT) = 0
7954 --- SIGABRT (Aborted) @ 0 (0) ---
...
7946 +++ killed by SIGABRT +++
...
7938 wait4(-1, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGABRT}], WNOHANG, NULL) = 7946
7938 sendto(3, "<20>Apr 8 15:57:29 postfix/
7938 sendto(3, "<20>Apr 8 15:57:29 postfix/
However, I haven't investigated what to do about that.