You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On startup, make the viewer run a child process, passing it a stdin pipe. The child process initiates a read of its stdin, and simply waits.
Before intentional termination, the viewer writes a reassuring packet to the child's stdin. The viewer terminates; the pipe closes; the child sees EOF on the pipe. Having received assurance, the child terminates without further action.
If the viewer terminates unintentionally, the child sees EOF on the stdin pipe without the reassuring packet. The child reads state files written by the viewer and sends a crash report to the new crash-report endpoint. The crash report includes the session ID. On confirmation of receipt, it deletes the state files so the next viewer session won't send them redundantly.
Test Plan
Run the viewer. Terminate it normally. No crash report is sent. Verify that watchdog process terminates normally.
Run the viewer. Force a crash. Observe that a crash report is sent. Verify that watchdog process terminates normally.
Verify that the crash report contains the session ID.
The text was updated successfully, but these errors were encountered:
LLLeap might be a good mechanism for this. It gives us a ready way to post to the child process. And child process stderr is already logged in the viewer log, which is useful if the child process itself crashes.
On startup, make the viewer run a child process, passing it a stdin pipe. The child process initiates a read of its stdin, and simply waits.
Before intentional termination, the viewer writes a reassuring packet to the child's stdin. The viewer terminates; the pipe closes; the child sees EOF on the pipe. Having received assurance, the child terminates without further action.
If the viewer terminates unintentionally, the child sees EOF on the stdin pipe without the reassuring packet. The child reads state files written by the viewer and sends a crash report to the new crash-report endpoint. The crash report includes the session ID. On confirmation of receipt, it deletes the state files so the next viewer session won't send them redundantly.
Test Plan
The text was updated successfully, but these errors were encountered: