Issue: Application that should not have been running had been started using monit and then stopped using monit.
The application in this example was SDL
The issue was that the logs were being filled with TIMER errors such as;
EVNT IPM TX msgsnd TIMER to SDL FAILED - Probably too big : queue 229383 EVENT
This was making it difficult to read genuine and other more interesting logs.
In the code for SDL was the following;
case -999:
logger.write("SDL", "MAIN", LOGTYPE_EVENT, "Shutdown message...");
ipm.SendIPM("TIMER", 0, 0, 101, 0); // Cancel timer
shutdown = true;
break;
So an attempt to fix was to try and restart the application using monit and then send an ipm -999 as following;
sendipm SDL 00 -999 000
This initially appeared to work but obviously monit would then restart the application and perhaps hide the fact that this method wasn't working as intended.
When I eventually stopped SDL using monit, the errors reappeared.
The proper fix was to start the application from the command line and send the -999 message, which actually kills the application anyway.
This can be verified by running ipmview which should not show any messages waiting for SDL
No comments:
Post a Comment
Note: only a member of this blog may post a comment.