Re: [exim] stuck exim processes

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Kurt Jaeger
Date:  
À: exim-users
Sujet: Re: [exim] stuck exim processes
Hi!

I have a reproducible case on FreeBSD 13.0p7 with exim-4.95_1 from ports
to some recipient.

What should I test ? Adding commit d2f99aad04 and re-building ?

- Problem: exim outbound, mails hang
- those two processes
47118   -  IXs      0:00.02 /usr/local/sbin/exim -Mc 1nWfgZ-000CFx-95
47122   -  IX       0:00.01 /usr/local/sbin/exim -Mc 1nWfgZ-000CFx-95
- starting truss on both processes
- one (47118) regularly has this wait4, see below
- the other (47122) is silent
- After I kill 47122, the other one dies as well.
# truss -p 47122
read(6,0x801ad30c3,5)                            ERESTART
SIGNAL 15 (SIGTERM) code=SI_USER pid=51498 uid=0
process killed, signal = 15
- truss auf 47118
# truss -p 47118
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 0 (0x0)
wait4(-1,{ EXITED,val=0 },WNOHANG,0x0)           = 0 (0x0)
poll({ 6/POLLIN -1/POLLIN },2,60000)             = 1 (0x1)
read(6,0x7fffffffd538,7)                         = 0 (0x0)
close(6)                                         = 0 (0x0)
getpid()                                         = 47118 (0xb80e)
close(8)                                         = 0 (0x0)
geteuid()                                        = 0 (0x0)
socketpair(0x1,0x1,0x0,0x7fffffffd108)           = 0 (0x0)
fork()                                           = 51670 (0xc9d6)
close(7)                                         = 0 (0x0)
recvmsg(6,{NULL,0,[{"A",1}],1,{{level=SOL_SOCKET,type=SCM_RIGHTS,data={0x07,0x00,0x00,0x00}}},24,0},0) = 1 (0x1)
wait4(51670,0x0,0x0,0x0)                         = 51670 (0xc9d6)
close(6)                                         = 0 (0x0)
fcntl(7,F_GETFD,)                                = 0 (0x0)
fcntl(7,F_SETFD,FD_CLOEXEC)                      = 0 (0x0)
fcntl(7,F_GETFL,)                                = 13 (0xd)
fcntl(7,F_SETFL,O_WRONLY|O_APPEND)               = 0 (0x0)
fstat(7,{ mode=-rw-r----- ,inode=16791,size=7787685,blksize=131072 }) = 0 (0x0)
write(7,"2022-03-22 19:14:56 [47118] 1nWf"...,172) = 172 (0xac)
write(2,"2022-03-22 19:14:56 [47118] 1nWf"...,172) = 172 (0xac)
geteuid()                                        = 0 (0x0)
socketpair(0x1,0x1,0x0,0x7fffffffd108)           = 0 (0x0)
fork()                                           = 51671 (0xc9d7)
close(8)                                         = 0 (0x0)
recvmsg(6,{NULL,0,[{"A",1}],1,{{level=SOL_SOCKET,type=SCM_RIGHTS,data={0x08,0x00,0x00,0x00}}},24,0},0) = 1 (0x1)
wait4(51671,0x0,0x0,0x0)                         = 51671 (0xc9d7)
close(6)                                         = 0 (0x0)
fcntl(8,F_GETFD,)                                = 0 (0x0)
write(6,"2022-03-22 19:14:56 [47118] 1nWf"...,52) = 52 (0x34)
[...]
openat(AT_FDCWD,"/var/spool/exim//input//hdr.1nWfgZ-000CFx-95",O_RDWR|O_CREAT|O_EXCL,0640) = 7 (0x7)
fchown(7,26,6)                                   = 0 (0x0)
fchmod(7,0640)                                   = 0 (0x0)
fcntl(7,F_GETFL,)                                = 2 (0x2)
fstat(7,{ mode=-rw-r----- ,inode=1049801,size=0,blksize=131072 }) = 0 (0x0)
write(7,"1nWfgZ-000CFx-95-H\npi 104 100\n"...,526) = 526 (0x20e)
fstat(7,{ mode=-rw-r----- ,inode=1049801,size=526,blksize=4096 }) = 0 (0x0)
write(7,"164P Received: from pi by complx"...,1451) = 1451 (0x5ab)
fsync(7)                                         = 0 (0x0)
fstat(7,{ mode=-rw-r----- ,inode=1049801,size=1977,blksize=4096 }) = 0 (0x0)
close(7)                                         = 0 (0x0)
rename("/var/spool/exim//input//hdr.1nWfgZ-000CFx-95","/var/spool/exim//input//1nWfgZ-000CFx-95-H") = 0 (0x0)
close(4)                                         = 0 (0x0)
close(5)                                         = 0 (0x0)
close(3)                                         = 0 (0x0)
openat(AT_FDCWD,"/dev/dtrace/helper",O_RDWR,00)  ERR#2 'No such file or directory'
exit(0x0)
process exit, rval = 0
- It looks like I can reproduce the problem.
- mail to one recipient is sufficent


-- 
pi@???            +49 171 3101372                    Now what ?