As soon as we have code submission for our project, our Jenkins task which contains GUI tests will be triggered to run automatically. It was recently discovered that there was a stuck issue with low probability while running the tests, resulting in a test timeout (timeout of 120 minutes I set) causing Jenkins to end the task.
Some error messages related to "X error-Bad Window" were found in the test log as follows:
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 25 (X_SendEvent)
Resource id in failed request: 0x5c00011
Serial number of failed request: 9
Current serial number in output stream: 10
57417: INFO: received signal SIGTERM by PID 50158
57930: INFO: received signal SIGTERM by PID 50158
57459: INFO: received signal SIGTERM by PID 50158
57510: INFO: received signal SIGTERM by PID 50158
I tried to find out the reason by the process ids, However, these processes had been killed, and it was difficult to tell from the only log information.
I also tried to grab some system logs and our test logs in Jenkins timout (see documentation:Jenkins timeout/abort exception), Unfortunately, the captured log shows that our product was killed when the log was captured.
Who knows how to get Jenkins to grab useful information before ending tasks/killing processes in a timeout? Or can you offer some other ideas?
A few points to note:
- This problem has a low probability, about 1%
- Jenkins timeout cannot be canceled due to project particularities
- Due to the particularity of the project, it is not allowed to add excessive debugging information to the test
- The stuck test is not fixed
Thank you guys!