Kotlin / kotlinx-kover

Apache License 2.0
1.28k stars 48 forks source link

Kover generates error stacktrace in HTML report file #510

Closed nvkleban closed 4 months ago

nvkleban commented 7 months ago

Describe the bug Sometimes Kover generates error stacktrace in the start of html report file for some modules in android project. Can't reproduce it reliably.

Errors

FreeMarker template error (DEBUG mode; use RETHROW in production!): Template inclusion failed (for parameter value "macros.ftl"): Stream closed ---- FTL stack trace ("~" means nesting-related): - Failed at: #include "macros.ftl" [in template "namespaces.ftl" at line 4, column 1] ---- Java stack trace (for programmers): ---- freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...] at freemarker.core.Include.accept(Include.java:164) at freemarker.core.Environment.visit(Environment.java:335) at freemarker.core.Environment.visit(Environment.java:341) at freemarker.core.Environment.process(Environment.java:314) at freemarker.template.Template.process(Template.java:383) at jetbrains.coverage.report.impl.html.TemplateProcessorBase.processModelLoop(TemplateProcessorBase.java:96) at jetbrains.coverage.report.impl.html.TemplateProcessorBase.createFileFromTemplate(TemplateProcessorBase.java:81) at jetbrains.coverage.report.impl.html.TemplateProcessorBase.renderTemplate(TemplateProcessorBase.java:69) at jetbrains.coverage.report.impl.html.NamespacesIndexGenerator.generateNamespacesIndex(NamespacesIndexGenerator.java:43) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.generateReportForModule(HTMLReportBuilderImpl.java:173) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.doGenerateReport(HTMLReportBuilderImpl.java:120) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.generateReport(HTMLReportBuilderImpl.java:93) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.generateReport(HTMLReportBuilderImpl.java:88) at com.intellij.rt.coverage.report.Reporter.createHTMLReport(Reporter.java:67) at com.intellij.rt.coverage.report.api.ReportApi.htmlReport(ReportApi.java:49) at kotlinx.kover.gradle.plugin.tools.kover.HtmlReportAction.generate(KoverHtmlOrXmlReport.kt:72) at kotlinx.kover.gradle.plugin.tools.kover.AbstractReportAction.execute(Actions.kt:38) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54) at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48) at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49) at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.lambda$execute$0(IsolatedClassloaderWorkerFactory.java:57) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.execute(IsolatedClassloaderWorkerFactory.java:49) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:169) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162) at org.gradle.internal.Factories$1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:249) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:109) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:114) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.io.IOException: Stream closed at java.base/java.util.zip.InflaterInputStream.ensureOpen(InflaterInputStream.java:67) at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:142) at java.base/java.io.FilterInputStream.read(FilterInputStream.java:132) at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270) at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313) at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188) at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177) at java.base/java.io.BufferedReader.fill(BufferedReader.java:162) at java.base/java.io.BufferedReader.read1(BufferedReader.java:213) at java.base/java.io.BufferedReader.read(BufferedReader.java:287) at freemarker.template.Template$LineTableBuilder.read(Template.java:863) at freemarker.core.SimpleCharStream.FillBuff(SimpleCharStream.java:116) at freemarker.core.SimpleCharStream.readChar(SimpleCharStream.java:198) at freemarker.core.SimpleCharStream.BeginToken(SimpleCharStream.java:138) at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8124) at freemarker.core.FMParser.jj_ntk_f(FMParser.java:6028) at freemarker.core.FMParser.PCData(FMParser.java:3811) at freemarker.core.FMParser.MixedContentElements(FMParser.java:3963) at freemarker.core.FMParser.Root(FMParser.java:4665) at freemarker.template.Template.(Template.java:252) at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549) at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:440) at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:293) at freemarker.template.Configuration.getTemplate(Configuration.java:2910) at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3062) at freemarker.core.Include.accept(Include.java:162) ... 54 more

Expected behavior Normal html report file generated.

Reproducer N\A

Reports N\A

Environment

mobile-pablo commented 6 months ago

reproduced

FreeMarker template error (DEBUG mode; use RETHROW in production!): Template inclusion failed (for parameter value "macros.ftl"): Stream closed ---- FTL stack trace ("~" means nesting-related): - Failed at: #include "macros.ftl" [in template "empty.ftl" at line 1, column 1] ---- Java stack trace (for programmers): ---- freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...] at freemarker.core.Include.accept(Include.java:164) at freemarker.core.Environment.visit(Environment.java:335) at freemarker.core.Environment.visit(Environment.java:341) at freemarker.core.Environment.process(Environment.java:314) at freemarker.template.Template.process(Template.java:383) at jetbrains.coverage.report.impl.html.TemplateProcessorBase.processModelLoop(TemplateProcessorBase.java:96) at jetbrains.coverage.report.impl.html.TemplateProcessorBase.createFileFromTemplate(TemplateProcessorBase.java:81) at jetbrains.coverage.report.impl.html.TemplateProcessorBase.renderTemplate(TemplateProcessorBase.java:69) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.doGenerateReport(HTMLReportBuilderImpl.java:117) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.generateReport(HTMLReportBuilderImpl.java:93) at jetbrains.coverage.report.impl.html.HTMLReportBuilderImpl.generateReport(HTMLReportBuilderImpl.java:88) at com.intellij.rt.coverage.report.Reporter.createHTMLReport(Reporter.java:67) at com.intellij.rt.coverage.report.api.ReportApi.htmlReport(ReportApi.java:49) at kotlinx.kover.gradle.plugin.tools.kover.HtmlReportAction.generate(KoverHtmlOrXmlReport.kt:72) at kotlinx.kover.gradle.plugin.tools.kover.AbstractReportAction.execute(Actions.kt:38) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:54) at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:100) at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:48) at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49) at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.lambda$execute$0(IsolatedClassloaderWorkerFactory.java:57) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.execute(IsolatedClassloaderWorkerFactory.java:49) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$0(DefaultWorkerExecutor.java:170) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:187) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.access$700(DefaultConditionalExecutionQueue.java:120) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner$1.run(DefaultConditionalExecutionQueue.java:162) at org.gradle.internal.Factories$1.create(Factories.java:31) at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:264) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:128) at org.gradle.internal.work.DefaultWorkerLeaseService.runAsWorkerThread(DefaultWorkerLeaseService.java:133) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:157) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:126) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.io.IOException: Stream closed at java.base/java.util.zip.InflaterInputStream.ensureOpen(InflaterInputStream.java:67) at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:142) at java.base/java.io.FilterInputStream.read(FilterInputStream.java:132) at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270) at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313) at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188) at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177) at java.base/java.io.BufferedReader.fill(BufferedReader.java:162) at java.base/java.io.BufferedReader.read1(BufferedReader.java:213) at java.base/java.io.BufferedReader.read(BufferedReader.java:287) at freemarker.template.Template$LineTableBuilder.read(Template.java:863) at freemarker.core.SimpleCharStream.FillBuff(SimpleCharStream.java:116) at freemarker.core.SimpleCharStream.readChar(SimpleCharStream.java:198) at freemarker.core.SimpleCharStream.BeginToken(SimpleCharStream.java:138) at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8124) at freemarker.core.FMParser.jj_ntk_f(FMParser.java:6028) at freemarker.core.FMParser.PCData(FMParser.java:3811) at freemarker.core.FMParser.MixedContentElements(FMParser.java:3963) at freemarker.core.FMParser.Root(FMParser.java:4665) at freemarker.template.Template.(Template.java:252) at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549) at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:440) at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:293) at freemarker.template.Configuration.getTemplate(Configuration.java:2910) at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3062) at freemarker.core.Include.accept(Include.java:162) ... 52 more
uicomponents: Overall Coverage Summary
No coverage information was found
generated on 2023-12-01 23:07
shanshin commented 4 months ago

Fixed in 0.7.6

If the problem repeats frequently again, reopen the issue.

nvkleban commented 2 months ago

@shanshin Not sure if it's the same error but on CI this one happened:

> A failure occurred while executing kotlinx.kover.gradle.plugin.tools.kover.HtmlReportAction
> Failed to generate file: /builds/[removed]/build/reports/kover/html/ns-2/index_SORT_BY_BLOCK.html. zip file closed

Similar to experienced in 436

kover = "0.7.6"

shanshin commented 2 months ago

Yes, it's the same error, but in the coming 0.8.0 it shouldn't appear anymore.