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 ?