Unable to read /tmp/myprojectcoverage.exec Can anybody help to resolve it?

168 views
Skip to first unread message

rverm

unread,
May 12, 2019, 4:09:56 PM5/12/19
to JaCoCo and EclEmma Users
21:39:54.545 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.                 
21:39:54.545 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':myproject:jacocoMergeTest'                     
21:39:54.545 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] :myproject:jacocoMergeTest FAILED                                                
21:39:54.546 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :myproject:jacocoMergeTest (Thread[Daemon worker Thread 3,5,main]) completed. Took 6 mins 4.752 secs.                                                                                                                                                        
21:39:54.546 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationWorkerRegistry] Worker root.1 completed (0 in use)                                         
21:39:54.546 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[Daemon worker Thread 3,5,main]] finished, busy: 6 mins 4.752 secs, idle: 0.0 secs                                                                                                                                                      
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]                                                                                        
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.                                               
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]                                                                                        
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:                                                                     
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':myproject:jacocoMergeTest'.                                 
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Unable to read /tmp/myprojectcoverage.exec 
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]                                                                                        
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:                                                                                 
21:39:54.547 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.                                   
21:39:54.547 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger]                                                                                         
21:39:54.547 [LIFECYCLE] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED   

Using Jacoco 0.8.3 version


within build.gradle

def allTestCoverageFile = "/tmp/abcuser/allMerge.exec"
apply plugin: "org.sonarqube"
apply plugin: "jacoco"

jacoco {
toolVersion = "0.8.3"
}
sonarqube {
properties {
property "sonar.projectKey", "myproject"
property "sonar.projectName", "myproject"
property 'sonar.host.url', 'http://url'
property "sonar.jacoco.reportPaths", 'allTestCoverageFile'
}}

task jacocoMergeTest(type: JacocoMerge) {
destinationFile = file(allTestCoverageFile)
executionData = project.fileTree(dir: '/tmp/abcuser/', include:'*.exec')
}
task jacocoMerge(dependsOn: ['jacocoMergeTest']) {
}
subprojects {
sonarqube {
properties {
property "sonar.jacoco.reportPath", "allTestCoverageFile"
}}}
       

Marc Hoffmann

unread,
May 13, 2019, 3:26:42 AM5/13/19
to JaCoCo and EclEmma Users
* Try:                                                                                 
Run with --stacktrace option to get the stack trace.
--
You received this message because you are subscribed to the Google Groups "JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/97afe793-294a-490e-98ec-9e1d0fc0958f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

rverm

unread,
May 13, 2019, 3:44:46 AM5/13/19
to JaCoCo and EclEmma Users
This is the output with --stacktrace

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':myproject:jacocoMergeTest'.
> Unable to read /tmp/abcuser/myprojectcoverage_.exec

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':myproject:jacocoMergeTest'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:98)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:68)       
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)           
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)               
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)              
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)                            
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)              
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)                    
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)        
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)        
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)                                                               
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)                            
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)                             
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)          
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)          
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)          
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)                  
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)                                   
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)                                
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)                                     
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)                                                   
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)                                                
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)                                                 
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)                                       
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)                                                   
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)                                                   
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:230)                            
        at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:227)                            
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)                                                               
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)                            
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)                             
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:161)                                     
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112)                                           
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:95)                                                
        at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:66)                                                 
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)                               
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)                                         
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)                               
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)                               
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)                 
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)                 
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)           
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)           
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)                                                 
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)                                         
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)                               
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)                             
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)               
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)                                      
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)                                      
        at org.gradle.util.Swapper.swap(Swapper.java:38)                                                                                     
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)                                     
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)                                       
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)                                                   
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)                                         
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)                       
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)                                         
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)                             
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)                     
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)                                   
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)                            
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)                                         
Caused by: : Unable to read /tmp/abcuser/myprojectcoverage_.exec                                           
        at org.jacoco.ant.MergeTask.load(MergeTask.java:87)                                                                                  
        at org.jacoco.ant.MergeTask.execute(MergeTask.java:67)                                                                               
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)                                                              
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)                                                       
        at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:78)                                        
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:464)                        
        at org.gradle.internal.metaobject.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:176)                                         
        at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)                                 
        at org.gradle.api.internal.project.antbuilder.AntBuilderDelegate.nodeCompleted(AntBuilderDelegate.java:118)
        at org.gradle.internal.jacoco.AntJacocoMerge$1.doCall(AntJacocoMerge.java:46)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:53)
        at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder$2.execute(DefaultIsolatedAntBuilder.java:151)
        at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder$2.execute(DefaultIsolatedAntBuilder.java:133)
        at org.gradle.api.internal.project.antbuilder.ClassPathToClassLoaderCache.withCachedClassLoader(ClassPathToClassLoaderCache.java:134)
        at org.gradle.api.internal.project.antbuilder.DefaultIsolatedAntBuilder.execute(DefaultIsolatedAntBuilder.java:127)
        at org.gradle.internal.jacoco.AntJacocoMerge.execute(AntJacocoMerge.java:37)
        at org.gradle.testing.jacoco.tasks.JacocoMerge.merge(JacocoMerge.java:79)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:692)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:675)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:115)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.execute(ExecuteActionsTaskExecuter.java:109)
        at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:109)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:90)
        ... 70 more
Caused by: java.io.IOException: Unknown block type 0.
        at org.jacoco.core.data.ExecutionDataReader.readBlock(ExecutionDataReader.java:118)
        at org.jacoco.core.data.ExecutionDataReader.read(ExecutionDataReader.java:92)
        at org.jacoco.core.tools.ExecFileLoader.load(ExecFileLoader.java:59)
        at org.jacoco.ant.MergeTask.load(MergeTask.java:85)
        ... 100 more


BUILD FAILED

Total time: 1 mins 25.713 secs
To unsubscribe from this group and stop receiving emails from it, send an email to jac...@googlegroups.com.

Marc Hoffmann

unread,
May 13, 2019, 4:03:58 AM5/13/19
to jac...@googlegroups.com

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':myproject:jacocoMergeTest'.

Caused by: : Unable to read /tmp/abcuser/myprojectcoverage_.exec

Caused by: java.io.IOException: Unknown block type 0.


==> myprojectcoverage_.exec is not a valid exec file. 

To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/002bfae5-f546-4ab3-a448-37b89eef20fb%40googlegroups.com.

rverm

unread,
May 13, 2019, 7:07:41 AM5/13/19
to JaCoCo and EclEmma Users
Thank you for looking into this issue.

I am running jvm with jacocoagent which is creating this file but 
I ail to understand why file is getting corrupted.

-javaagent:/tmp/jacoco/jacocoagent.jar=destfile=/tmp/myproject_coverage/myprojectcoverage_${HOST}.exec,append=true,output=file,inclbootstrapclasses=true,inclnolocationclasses=true"

Evgeny Mandrikov

unread,
May 13, 2019, 11:16:51 AM5/13/19
to JaCoCo and EclEmma Users
We can't tell you what causes corruption of file, because just snippet of your build.gradle is not enough to reproduce this. There are many potential reasons, listing some:
  • something else performs access to this file, ignoring lock held by JaCoCo agent
  • including case when multiple JaCoCo agents write to the same file, while filesystem doesn't properly support locking
  • including case when JVM running one of such agents is not terminated gracefully but forcibly killed
  • not forgetting the case of network filesystems
  • including case of Docker volumes, which can cause troubles to certain types of file access - for example https://stackoverflow.com/questions/56066775/docker-container-cant-run-jacoco-agent-with-java-12#comment98799428_56066775
  • maybe something else touches/write to this file
  • disk is broken
  • etc, etc

rverm

unread,
May 14, 2019, 7:43:52 AM5/14/19
to JaCoCo and EclEmma Users
Thanks for the help! will check what is causing the issue.

rverm

unread,
May 17, 2019, 4:20:28 AM5/17/19
to JaCoCo and EclEmma Users

The /tmp/abcuser/myprojectcoverage_.exec file which is getting created is too big in size with a lot of session entries which might be causing the corruption.
Is there a way I can limit .exec file size and when given size is reached create new  .exec file ?
(like loggers /tmp/abcuser/myprojectcoverage_1.exec /tmp/abcuser/myprojectcoverage_2.exec /tmp/abcuser/myprojectcoverage_3.exec and so on)

emai...@gmail.com

unread,
May 17, 2019, 4:50:42 AM5/17/19
to JaCoCo and EclEmma Users
you can try below appender:
https://www.baeldung.com/java-logging-rolling-file-appenders

<RollingFile name="roll-by-time-and-size"
fileName="target/log4j2/roll-by-time-and-size/app.log"
filePattern="target/log4j2/roll-by-time-and-size/app.%d{MM-dd-yyyy-HH-mm}.%i.log.gz"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="5 KB" />
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="target/log4j2/roll-by-time-and-size/app.*.log.gz" />
<IfLastModified age="20d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>

Marc Hoffmann

unread,
May 17, 2019, 4:57:48 AM5/17/19
to jac...@googlegroups.com
Hi,

JaCoCo writes exec files directly and does not use a logging framework for this. Therefore log configuration will not affect the way how JaCoCo exec files are written.

Regards,
-marc
> --
> You received this message because you are subscribed to the Google Groups "JaCoCo and EclEmma Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/35635628-1df3-4282-a9ec-49a749f58688%40googlegroups.com.

Marc Hoffmann

unread,
May 17, 2019, 5:06:22 AM5/17/19
to jac...@googlegroups.com
Hi,

some hints:

- The JaCoCo agent can be configured with append=false which will overwrite a existing exec files.
- For append=true new session dumps will simply be appended. There is no built-in option to rotate exec files
- You might adjust your launcher script to use a different filename for every launch (e.g. using a timestamp)

Regards,
-marc
To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/8b187622-13bc-4680-b7f4-04630c556b66%40googlegroups.com.

Evgeny Mandrikov

unread,
May 17, 2019, 7:13:27 AM5/17/19
to JaCoCo and EclEmma Users


On Friday, May 17, 2019 at 10:20:28 AM UTC+2, rverm wrote:

The /tmp/abcuser/myprojectcoverage_.exec file which is getting created is too big in size with a lot of session entries which might be causing the corruption.


IMO this is very strange statement - how size can cause corruption?
unless if you are running out of space, but then how multiple files would help?
what is "too big" exactly?

 
Is there a way I can limit .exec file size and when given size is reached create new  .exec file ?
(like loggers /tmp/abcuser/myprojectcoverage_1.exec /tmp/abcuser/myprojectcoverage_2.exec /tmp/abcuser/myprojectcoverage_3.exec and so on)


In addition to what Marc said, let me point that all available options are documented - https://www.jacoco.org/jacoco/trunk/doc/

rverm

unread,
May 20, 2019, 4:57:57 AM5/20/19
to JaCoCo and EclEmma Users
File size is almost ~8G. Will try to upload it here.

Marc R. Hoffmann

unread,
May 24, 2019, 3:25:23 AM5/24/19
to JaCoCo and EclEmma Users
Oh no, please don't. We will not process this amount of data for you.

Instead explore the execfile locally with our command line utility execinfo. You will probably get an idea why it grows that big if you see the sessions and classes appended to the file.

Regards,
-marc 

Renu Verma

unread,
May 24, 2019, 3:56:47 AM5/24/19
to jac...@googlegroups.com
:) I couldn't upload a 9GB file... 
Yes, I tried cli and find out multiple sessions entries with same classes appended to the .exec file.   Now I am  using append=false with jacocoagent this might resolve this issue. 

To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jacoco/da63127e-4829-4583-8652-5bddc60710a5%40googlegroups.com.

Marc Hoffmann

unread,
May 24, 2019, 4:01:40 AM5/24/19
to jac...@googlegroups.com

You probably need a clear strategy when to dump execution data. A typical setup is:

  1. Launch all services with JaCoCo agent attached
  2. Execute all tests
  3. Trigger exec dump for each service

Note that append=false can only be used when each service dumps to separate exec file. Otherwise data from other services will be overwritten.

Renu Verma

unread,
May 24, 2019, 4:37:10 AM5/24/19
to jac...@googlegroups.com
hmm.. yes have 2 services started with jacoc agent attached and each dumping to separate exec files. 
And Myprojects has huge number of tests and each test when runs in regression start and stop services and dump data according to <host>.exec but now my worry is if 2 tests runs on same host only latest classes will be dump on exec file with append=false.
Is there a way to modify .exec file manually ?


Marc Hoffmann

unread,
May 24, 2019, 4:50:33 AM5/24/19
to jac...@googlegroups.com

If you dump data after every test case and if there is a huge number of them this explains why your exec files are growing.

Sure, if you use append=false the you will only see the coverage data from the last execution

A solution would be to merge exec data after every run with JaCoCo's merge functionality.

 
> Is there a way to modify .exec file manually ?
 
So what do you want to modify?

Renu Verma

unread,
May 24, 2019, 5:11:51 AM5/24/19
to jac...@googlegroups.com
A solution would be to merge exec data after every run with JaCoCo's merge functionality  
  Currently I am merging data after all tests finishes, I'll check how can I use this functionality to merge after each test.


So what do you want to modify? 
The 8GB file which I  have has  thousands of sessions entries with same classes. Would like to remove those duplicate sessions entries if i can.





 

Marc Hoffmann

unread,
May 24, 2019, 5:12:58 AM5/24/19
to jac...@googlegroups.com
> The 8GB file which I  have has  thousands of sessions entries with same classes. Would like to remove those duplicate sessions entries if i can.
 
This is exactly what JaCoCo merge does.

Renu Verma

unread,
May 24, 2019, 5:18:05 AM5/24/19
to jac...@googlegroups.com
Thanks! I'll check it and update.

Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages