--On Thursday, June 19, 2008 12:25 PM +0200 Mark Martinec 
<[EMAIL PROTECTED]> wrote:

>> Since debug mode works, it's hard to gather data on why children won't
>> fork.  Any thoughts?
>
> Was the above strace/truss collected with an -f option?
> If not, it should be, as apparently the problem is in a
> cloned process, not in a parent.
> Adding timestamps (strace -tt) might be useful too.

Okay, now with following children, I see:

12:00:38.484919 stat("/opt/zimbra/log/amavisd.pid", 0x1b6a7140) = -1 ENOENT 
(No such file or directory)
12:00:38.484976 open("/dev/null", O_RDONLY) = 6
12:00:38.485019 ioctl(6, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff5c61b590) = 
-1 ENOTTY (Inappropriate ioctl for device)
12:00:38.485053 lseek(6, 0, SEEK_CUR)   = 0
12:00:38.485083 fstat(6, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), 
...}) = 0
12:00:38.485136 dup2(6, 0)              = 0
12:00:38.485167 close(6)                = 0
12:00:38.485197 fcntl(0, F_SETFD, 0)    = 0
12:00:38.485231 open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 6
12:00:38.485275 ioctl(6, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff5c61b590) = 
-1 ENOTTY (Inappropriate ioctl for device)
12:00:38.485309 lseek(6, 0, SEEK_CUR)   = 0
12:00:38.485338 fstat(6, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), 
...}) = 0
12:00:38.485382 dup2(6, 1)              = 1
12:00:38.485410 close(6)                = 0
12:00:38.485439 fcntl(1, F_SETFD, 0)    = 0
12:00:38.485470 ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff5c61b590) = 
-1 ENOTTY (Inappropriate ioctl for device)
12:00:38.485500 lseek(1, 0, SEEK_CUR)   = 0
12:00:38.485617 rt_sigprocmask(SIG_BLOCK, [INT], NULL, 8) = 0
12:00:38.485661 lseek(5, 4360, SEEK_SET) = 4360
12:00:38.485692 lseek(5, 0, SEEK_CUR)   = 4360
12:00:38.485721 lseek(7, 11431, SEEK_SET) = 11431
12:00:38.485757 lseek(7, 0, SEEK_CUR)   = 11431
12:00:38.485801 clone(Process 31204 attached (waiting for parent)
Process 31204 resumed (parent 31203 ready)
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x2b5b4fc4f470) = 31204
[pid 31204] 12:00:38.489472 getsockname(3,  <unfinished ...>
[pid 31203] 12:00:38.489559 rt_sigprocmask(SIG_BLOCK, [INT],  <unfinished 
...>
[pid 31204] 12:00:38.489586 <... getsockname resumed> {sa_family=AF_INET, 
sin_port=htons(53448), sin_addr=inet_addr("xxx.xxx.xx.xx")}, [16]) = 0
[pid 31203] 12:00:38.489621 <... rt_sigprocmask resumed> [INT], 8) = 0
[pid 31204] 12:00:38.489645 getpeername(3,  <unfinished ...>
[pid 31203] 12:00:38.489701 rt_sigaction(SIGINT, {SIG_DFL},  <unfinished 
...>
[pid 31204] 12:00:38.489744 <... getpeername resumed> {sa_family=AF_INET, 
sin_port=htons(389), sin_addr=inet_addr("xxx.xxx.xx.xx")}, [68719476752]) = 
0
[pid 31203] 12:00:38.489776 <... rt_sigaction resumed> {SIG_DFL}, 8) = 0
[pid 31204] 12:00:38.489800 fcntl(3, F_GETFD <unfinished ...>
[pid 31203] 12:00:38.489822 rt_sigprocmask(SIG_SETMASK, [INT],  <unfinished 
...>
[pid 31204] 12:00:38.489843 <... fcntl resumed> ) = 0x1 (flags FD_CLOEXEC)
[pid 31203] 12:00:38.489873 <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 31204] 12:00:38.489939 dup(3 <unfinished ...>
[pid 31203] 12:00:38.490153 rt_sigprocmask(SIG_UNBLOCK, [INT],  <unfinished 
...>
[pid 31204] 12:00:38.490174 <... dup resumed> ) = 6
[pid 31203] 12:00:38.490192 <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 31204] 12:00:38.490210 fcntl(6, F_SETFD, FD_CLOEXEC) = 0
[pid 31204] 12:00:38.491000 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 8
[pid 31204] 12:00:38.491060 close(3)    = 0
[pid 31204] 12:00:38.491094 fcntl(8, F_GETFD) = 0
[pid 31204] 12:00:38.491137 dup2(8, 3)  = 3
[pid 31204] 12:00:38.491171 fcntl(3, F_SETFD, 0) = 0
[pid 31204] 12:00:38.491202 close(8)    = 0
[pid 31204] 12:00:38.491431 write(3, "\25\3\1\0 
\0c\337\2P\225G\215\6\21\362\363P\277T\25\231Ms\27W\332\321\31\200\26\5"..., 
37) = -1 EPIPE (Broken pipe)
[pid 31204] 12:00:38.491514 --- SIGPIPE (Broken pipe) @ 0 (0) ---
Process 31204 detached
12:00:38.494626 
stat("/opt/zimbra/zimbramon/lib/x86_64-linux-thread-multi/auto/DBI/DESTROY.al", 
0x1b6a7140) = -1 ENOENT (No such file or directory)
12:00:38.494808 
stat("/opt/zimbra/zimbramon/lib/x86_64-linux-thread-multi/auto/DBI/DESTROY.al", 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.494856 
stat("/opt/zimbra/zimbramon/lib/x86_64-linux-thread-multi/auto/DBI/DESTROY.al", 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.494901 stat("/opt/zimbra/zimbramon/lib/auto/DBI/DESTROY.al", 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.494945 
stat("/opt/zimbra/zimbramon/lib/i386-linux-thread-multi/auto/DBI/DESTROY.al", 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.494993 
stat("/opt/zimbra/zimbramon/lib/i486-linux-gnu-thread-multi/auto/DBI/DESTROY.al",
 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.495038 
stat("/opt/zimbra/zimbramon/lib/i586-linux-thread-multi/auto/DBI/DESTROY.al", 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.495096 
stat("/opt/zimbra/zimbramon/lib/x86_64-linux-gnu-thread-multi/auto/DBI/DESTROY.al",
 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.495150 
stat("/opt/zimbra/zimbramon/lib/darwin-thread-multi-2level/auto/DBI/DESTROY.al",
 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.495195 
stat("/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/DESTROY.al",
 
0x7fff5c61b490) = -1 ENOENT (No such file or directory)
12:00:38.495246 --- SIGCHLD (Child exited) @ 0 (0) ---



> Btw, don't know if it would help, but the daemonization step
> can be skipped by fiddling with 'background' and 'setsid' options
> in a call to Net::Server::new (see Net::Server man page):
>
># set up Net::Server configuration
> my($server) = Amavis->new({
> ...
>     background => $daemonize ? 1 : undef,
>     setsid     => $daemonize ? 1 : undef,
>
> but I haven't tried it.

Setting   $daemonize = 0;  :::: default was one

allows it to run, but I'd really like to understand why it's failing to 
fork children happily. :/

--Quanah

--

Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra ::  the leader in open source messaging and collaboration

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amavis-user
AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3
AMaViS-HowTos:http://www.amavis.org/howto/

Reply via email to