flacoco icon indicating copy to clipboard operation
flacoco copied to clipboard

timeout for Math-2 , Math-5, Math-8, Math-28

Open martinezmatias opened this issue 4 years ago • 7 comments

Flacoco reaches the timeout for bug Math-2

See log here: https://github.com/martinezmatias/astor/runs/3676644171?check_suite_focus=true#step:8:1199

java.lang.RuntimeException: Forked process did not finish correctly. Timeout set was 5400000 ms, process took 5400000 ms before ending.
Finishing execution for Math2: # patches: 0
	at eu.stamp_project.testrunner.EntryPoint.runGivenCommandLine(EntryPoint.java:764)
	at eu.stamp_project.testrunner.EntryPoint.runOnlineCoveredTestResultPerTestMethods(EntryPoint.java:656)
	at fr.spoonlabs.flacoco.core.coverage.framework.JUnit4Strategy.execute(JUnit4Strategy.java:27)
	at fr.spoonlabs.flacoco.core.coverage.CoverageRunner.getCoverageMatrix(CoverageRunner.java:49)
	at fr.spoonlabs.flacoco.localization.spectrum.SpectrumRunner.computeCoverageMatrix(SpectrumRunner.java:56)
	at fr.spoonlabs.flacoco.localization.spectrum.SpectrumRunner.run(SpectrumRunner.java:32)
	at fr.spoonlabs.flacoco.api.Flacoco.run(Flacoco.java:31)
	at fr.inria.astor.core.faultlocalization.flacoco.FlacocoFaultLocalization.searchSuspicious(FlacocoFaultLocalization.java:44)
	at fr.inria.astor.core.solutionsearch.AstorCoreEngine.calculateSuspicious(AstorCoreEngine.java:906)

....

Similar for Math-5

https://github.com/martinezmatias/astor/runs/3676644222?check_suite_focus=true#step:8:1589

for Math-8:

https://github.com/martinezmatias/astor/runs/3676644282?check_suite_focus=true#step:8:375

martinezmatias avatar Sep 24 '21 14:09 martinezmatias

When running standalone flacoco on math-2, math-8 and math-5, and using the verbose mode of test-runner we get:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:3236)
	at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
	at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
	at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
	at java.io.ObjectOutputStream$BlockDataOutputStream.write(ObjectOutputStream.java:1842)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1534)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
	at java.util.HashMap.internalWriteEntries(HashMap.java:1792)
	at java.util.HashMap.writeObject(HashMap.java:1363)
	at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1155)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
	at java.util.HashMap.internalWriteEntries(HashMap.java:1793)
	at java.util.HashMap.writeObject(HashMap.java:1363)
	at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1155)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)

Maybe if we increase memory through the option testRunnerJVMArgs with something like -Xms4G -Xmx8G we can prevent this problem?

Either way, there is definitely a need to use less memory.

andre15silva avatar Oct 03 '21 15:10 andre15silva

For Math-2: I tried with 1Gb and it fails, I will increase to 4G: https://github.com/martinezmatias/astor/runs/3851808139?check_suite_focus=true#step:8:1201

martinezmatias avatar Oct 11 '21 06:10 martinezmatias

Similar for Math-5: https://github.com/martinezmatias/astor/runs/3851808153?check_suite_focus=true#step:8:1591

martinezmatias avatar Oct 11 '21 06:10 martinezmatias

Similar for Math-8: https://github.com/martinezmatias/astor/runs/3851808167?check_suite_focus=true#step:8:927

martinezmatias avatar Oct 11 '21 06:10 martinezmatias

I would jump straight to 8GB honestly, I don't think 4GB will be enough

andre15silva avatar Oct 11 '21 09:10 andre15silva

Hi @andre15silva

I tried with 8 Gb in this commit, but it continues failing . Now I am checking if Astor correctly sets that value into Flacoco

martinezmatias avatar Oct 11 '21 09:10 martinezmatias

We have an issue with running this on Actions then:

Hardware specification for Windows and Linux virtual machines:

    2-core CPU
    7 GB of RAM memory
    14 GB of SSD disk space

from: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners

andre15silva avatar Oct 11 '21 12:10 andre15silva