Early this morning I upgraded to 10.31 beta in order to fix the webmail bug introduced with 10.30 dealing with deleting messages, It ran fine for about 8 hours, but now I am having inbound mail delivery issues.
Message tracing says that the messages are stuck spooling, and in the SMTP Inbound Queue I see the messages there was the status of spooling.
If I stop and restart the MTA service the status goes to delivering and they disappear, but any new messages say "spooling"
I found a corresponding error in the event log for CLAMD and mtafilter faulting at the exact time that messages start spooling instead of being delivered. Setting CLAMD to automatically restart instead of waiting a minute to restart didn't help, so I ended up disabling the MailEnable Antivirus Filter. Now the CLAMD isn't faulting and I still have antivirus through SpamAssassin so I'm not too worried about CLAMD, but the messages not getting delivered are a problem.
As I have been working on it this afternoon, I have just been doing a "net stop memtas && net start memtas" every few minutes to keep the mail flowing, but I need a real fix.
Inbound messages spooling after upgrade to 10.31 beta
Re: Inbound messages spooling after upgrade to 10.31 beta
If someone else runs into this, until we have a resolution I have come up with a workaround of monitoring the age of the items in the queue and restarting the service automatically when they age. I'm running the script in an administrator command prompt window. Feel free to use or modify as your needs require.
Code: Select all
set oFSO = createobject("scripting.filesystemobject")
Do Until False
Set oFolder = oFSO.GetFolder("C:\Program Files (x86)\Mail Enable\Queues\SMTP\Inbound")
set oFiles = oFolder.Files
for each oFile in oFiles
if lcase(right(oFile.Name,4)) = ".mai" then
if DateDiff("s",oFile.DateLastModified,now()) > 90 then
wscript.stdout.writeline oFile.Name & " " & FormatDateTime( oFile.DateLastModified ) & " Age=" & DateDiff("s",oFile.DateLastModified,now())
BounceService( "MEMTAS" )
Exit For
else
wscript.stdout.writeline oFile.Name & " " & FormatDateTime( oFile.DateLastModified ) & " Age=" & DateDiff("s",oFile.DateLastModified,now())
end if
end if
next
wscript.stdout.writeline FormatDateTime( now ) & " Sleeping"
wscript.sleep 10000
set oFiles = Nothing
set oFolder = Nothing
Loop
Sub BounceService( strServiceName )
StopService strServiceName
StartService strServiceName
End Sub
Sub StartService ( strServiceName )
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery ("Select * from Win32_Service Where Name ='" & strServiceName & "'")
For Each objService in colListOfServices
wscript.stdout.writeline FormatDateTime( now ) & " Starting Service " & strServiceName
i = objService.StartService()
wscript.stdout.writeline "rc = " & i
Next
End Sub
Sub StopService ( strServiceName )
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery("Select * from Win32_Service Where Name ='" & strServiceName & "'")
For Each objService in colListOfServices
wscript.stdout.writeline FormatDateTime( now ) & " Stopping Service " & strServiceName
i = objService.StopService()
wscript.stdout.writeline "rc = " & i
Next
End Sub