https://bugs.winehq.org/show_bug.cgi?id=47850
Bug ID: 47850 Summary: Automatically restart the TestBot Engine if it crashes Product: Wine-Testbot Version: unspecified Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: unknown Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
The CheckWineTestBot.pl script is supposed to automatically restart the TestBot Engine if it crashes (such as because of a Perl error that only happens in specific code paths).
However it does not work in the current usage scenario.
I think what happens is that the script is run in a non-root account for security reasons so the call to 'service winetestbot restart' fails with a permission denied error.
So a different approach is needed, probably one where there are two scripts: * One which communicates with the Engine and returns whether it runs. This script would be run through su. * And a second script that uses the first script's exit code to decide when to restart the Engine. It may even be possible to have systemd handle the task of this second script (to be investigated).
Another totally different approach would be to parse the Engine log and check the presence of messages logged by SafetyNet() which runs every 10 minutes. But that would not really guarantee that the Engine is reachable through its socket.
Yet a third option would be to have systemd start the Engine automatically when its socket is accessed. That may allow for systemd to automatically restart the Engine when it crashes (to be investigated).