Inbound messages spooling after upgrade to 10.31 beta

Discussions on webmail and the Professional version.
Post Reply
dbly
Posts: 52
Joined: Wed Aug 20, 2008 9:18 pm

Inbound messages spooling after upgrade to 10.31 beta

Post by dbly » Fri May 22, 2020 8:04 pm

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.

dbly
Posts: 52
Joined: Wed Aug 20, 2008 9:18 pm

Re: Inbound messages spooling after upgrade to 10.31 beta

Post by dbly » Sat May 23, 2020 12:15 am

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

Post Reply