Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Minor
-
Resolution: Fixed
-
Component/s: hp-application-automation-tools-plugin
-
Labels:
-
Environment:jenkins 2.121.1
-
Similar Issues:
Description
At some point in time, with the increase in the number of builds on Jenkins, we faced a "Too many open files" exception in Jenkins log.
Analysis of lsof command output (lsof-jenkins.zip) showed that there are a lot of open files in some projects (Freestyle or Maven type) created at build completion on Jenkins master with name:
{$JENKINS_HOME}/jobs/test_project/builds/140/GetJUnitTestResults4300391778772244764.tmp
I found file with non zero size with the folowing content:
$ cat GetJUnitTestResults1715785790472604747.tmp ▒▒ ♣sr Gcom.hpe.application.automation.tools.octane.tests.junit.JUnitTestResult▒▒▒▒▒▒▒ JdurationJ startedL classNamet Ljava/lang/String;L ◄externalReportUrlq ~ L moduleNameq ~ L packageNameq ~ L ♠resultt JLcom/hpe/application/automation/tools/octane/tests/junit/TestResultStatus;L testErrort CLcom/hpe/application/automation/tools/octane/tests/junit/TestErrorTestTryOrFailptp◄storage-test-coret ~r Hcom.hpe.application.automation.tools.octane.tests.junit.TestResultStatus xr java.lang.Enum xpt ♠PASSEDsr Acom.hpe.application.automation.toTestTryOrFailpq~~x♠qi~.qe~tqr~ot▒♣test1sqL~rrorMsgq ♠ Le▒":{t errorTypeq ~ L TestTryOrFailpq~~t♠qt~sq2~q ~ $ e▒":{t
So I decided that hp-application-automation-tools-plugin leaves files opened after build finish.
The graph shows number of opened files by jenkins process. The red line is when plugin turned off
It seems fd leak caused by this code:
https://github.com/jenkinsci/hpe-application-automation-tools-plugin/blob/52c0da26c9e93f404eb537e4f5f2d0aa057b4254/src/main/java/com/microfocus/application/automation/tools/octane/tests/junit/JUnitExtension.java#L252
Im not sure, but after catch {throw ..}
should never happen.
May be
finally { os.flush() oos.close() }
could help.
But im still not sure.