Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corrupt remote cache entry shouldn't fail the whole build #14693

Open
fkorotkov opened this issue Sep 29, 2020 · 19 comments
Open

Corrupt remote cache entry shouldn't fail the whole build #14693

fkorotkov opened this issue Sep 29, 2020 · 19 comments
Labels
a:feature A new functionality in:build-cache

Comments

@fkorotkov
Copy link

Right now when a local Gradle build fails to download a cache entry or there is some other issue the whole build fails with the following message:

Failed to load cache entry for task ':services:example:api:compileJava'

Expected Behavior

This should be treated like a cache miss and build should just recompile it.

Current Behavior

The whole build fails.

@fkorotkov fkorotkov added a:feature A new functionality from:contributor labels Sep 29, 2020
@lptr
Copy link
Member

lptr commented Oct 1, 2020

Builds should be resilient against remote cache connectivity issues. This is a problem with unpacking the (successfully) downloaded cache entry.

Can you please post a build scan or a full stacktrace?

@lptr lptr added the @execution label Oct 1, 2020
@fkorotkov
Copy link
Author

There is no build scan or full stacktrace available. I've enabled full stacktrace and will update the issue once it happens again.

Regardless I think even a corrupted artifact shouldn't fail a build. 😅

@fkorotkov
Copy link
Author

Here is the stacktrace:

Execution failed for task ':services:notifications:api:compileJava'.
> Failed to load cache entry for task ':services:notifications:api:compileJava'
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':services:notifications:api:compileJava'.
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: java.lang.RuntimeException: Failed to load cache entry for task ':services:notifications:api:compileJava'
	at org.gradle.internal.execution.steps.CacheStep.lambda$executeWithCache$4(CacheStep.java:116)
	at org.gradle.internal.Try$Failure.getOrMapFailure(Try.java:229)
	at org.gradle.internal.execution.steps.CacheStep.executeWithCache(CacheStep.java:114)
	at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:71)
	at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
	at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
	at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:195)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:187)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.api.GradleException: Build cache entry 72548751717cc3d72d4101ddf794a3ef from remote build cache is invalid
	at org.gradle.caching.internal.controller.DefaultBuildCacheController.lambda$load$0(DefaultBuildCacheController.java:120)
	at org.gradle.caching.local.internal.DefaultBuildCacheTempFileStore.withTempFile(DefaultBuildCacheTempFileStore.java:46)
	at org.gradle.caching.internal.controller.DefaultBuildCacheController.load(DefaultBuildCacheController.java:112)
	at org.gradle.internal.execution.steps.CacheStep.lambda$executeWithCache$0(CacheStep.java:78)
	at org.gradle.internal.Try.ofFailable(Try.java:39)
	at org.gradle.internal.execution.steps.CacheStep.executeWithCache(CacheStep.java:77)
	... 57 more
Caused by: java.io.UncheckedIOException: java.io.EOFException: Unexpected end of ZLIB input stream
	at org.gradle.caching.internal.controller.DefaultBuildCacheController$Unpack$1.run(DefaultBuildCacheController.java:152)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.caching.internal.controller.DefaultBuildCacheController$Unpack.execute(DefaultBuildCacheController.java:146)
	at org.gradle.caching.internal.controller.DefaultBuildCacheController.lambda$load$0(DefaultBuildCacheController.java:118)
	... 62 more
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.read(TarArchiveInputStream.java:639)
	at org.gradle.internal.hash.DefaultStreamHasher.doHash(DefaultStreamHasher.java:52)
	at org.gradle.internal.hash.DefaultStreamHasher.hashCopy(DefaultStreamHasher.java:43)
	at org.gradle.caching.internal.packaging.impl.TarBuildCacheEntryPacker.unpackFile(TarBuildCacheEntryPacker.java:260)
	at org.gradle.caching.internal.packaging.impl.TarBuildCacheEntryPacker.unpackDirectoryTree(TarBuildCacheEntryPacker.java:299)
	at org.gradle.caching.internal.packaging.impl.TarBuildCacheEntryPacker.unpackTree(TarBuildCacheEntryPacker.java:255)
	at org.gradle.caching.internal.packaging.impl.TarBuildCacheEntryPacker.unpack(TarBuildCacheEntryPacker.java:199)
	at org.gradle.caching.internal.packaging.impl.TarBuildCacheEntryPacker.unpack(TarBuildCacheEntryPacker.java:161)
	at org.gradle.caching.internal.packaging.impl.GZipBuildCacheEntryPacker.unpack(GZipBuildCacheEntryPacker.java:49)
	at org.gradle.caching.internal.controller.impl.DefaultBuildCacheCommandFactory$LoadCommand.load(DefaultBuildCacheCommandFactory.java:93)
	at org.gradle.caching.internal.controller.DefaultBuildCacheController$Unpack$1.run(DefaultBuildCacheController.java:150)
	... 71 more

@lptr lptr changed the title Remote cache entry shouldn't fail the whole build Corrupt remote cache entry shouldn't fail the whole build Oct 12, 2020
@socar-jian
Copy link

Multiple Gradle builds with Kotlin compiler in CI server fail with this error frequently. Is there any possible workaround?

@fkorotkov
Copy link
Author

@socar-jian what are you using for remote caching? Gradle Enterprise?

@socar-jian
Copy link

I think my case is more like #15050, not remote-cache-related. I'm sorry for confusing.

@jfresen
Copy link

jfresen commented Jul 14, 2021

I have the same problem. In my case it's caused when my login session of my corporate network where the cache is hosted has expired. The expired single sign on cookie is rejected, followed by almost the same stacktrace as @fkorotkov posted (differs only in the compression method: java.util.zip.ZipException: Not in GZIP format)

@kennknowles
Copy link

Beam is hitting this issue as well.

@tvalentyn
Copy link

Also seeing these errors in my build, not much details:

10:34:34 FAILURE: Build failed with an exception.
10:34:34 
10:34:34 * What went wrong:
10:34:34 Execution failed for task '...task name...'.
10:34:34 > Failed to load cache entry for task '...task name...'

@lptr
Copy link
Member

lptr commented Feb 23, 2022

@tvalentyn can you give some more context please? What Gradle version, what is the exact message?

One of the reasons we are typically unable to load stuff from cache is that we cannot delete the output directory. The error message is arguably obscure, and we are going to improve that in 7.5, see #17208.

@tvalentyn
Copy link

Currently we use Gradle 7.3.2, looking forward to 7.5.
Sample logs: https://ci-beam.apache.org/job/beam_PostCommit_XVR_Flink/5075/console (error at the very bottom).

@lptr
Copy link
Member

lptr commented Feb 24, 2022

Looks like multiple builds colliding: https://scans.gradle.com/s/tetxtcns3nmge/failure#1

Failed to load cache entry for task ':sdks:java:io:expansion-service:analyzeClassesDependencies'
> Build cache entry b47e398bb25cb7513e083aea4e7d2bc2 from local build cache is invalid
  > Timeout waiting to lock Build cache (/home/jenkins/.gradle/caches/build-cache-1). It is currently in use by another Gradle instance.
    Owner PID: 478822
    Our PID: 495261
    Owner Operation: 
    Our operation: 
    Lock file: /home/jenkins/.gradle/caches/build-cache-1/build-cache-1.lock

@lptr
Copy link
Member

lptr commented Feb 24, 2022

We are going to improve the rendering of build cache problems like this in Gradle 7.5: #19672

@kennknowles
Copy link

What is the expected behavior here? I guess I would hope that (1) multiple builds share the cache, since that's sort of the whole point (2) true concurrent conflicts would resolve either by blocking or by treating it as a cache miss.

@lptr
Copy link
Member

lptr commented Feb 24, 2022

That's a good question. We haven't been able to reproduce this problem yet. Can you please follow up on #8375? It would be good to see what the other PID is doing. I know that at least on Windows we've seen virus scanners keeping ahold of the lock, but I don't think this is the case on the Linux build here.

@tvalentyn
Copy link

tvalentyn commented Feb 25, 2022

We run these tests on Jenkins workers. Each worker has 4 slots, so 2 suites can run concurrently, triggerring 2 gradlew processes. The path /home/jenkins/.gradle/caches/build-cache-1 looks like it's global to the worker and thus will be reused by both test suites that run at the same time in two different slots.

@tvalentyn
Copy link

would that be consistent with the failure mode?

@bpoland
Copy link

bpoland commented Apr 25, 2022

Just want to chime in here -- we have started seeing this occasionally in our CI builds. Twice in the last week, users have reported a similar issue with task output from this plugin https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin

Both times it was the synthesizeDependenciesMain task, here were the errors:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':project:synthesizeDependenciesMain'.	
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)	
•••
Caused by: java.lang.RuntimeException: Failed to load cache entry for task ':project:synthesizeDependenciesMain'	
at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$6(BuildCacheStep.java:129)	
•••
Caused by: org.gradle.api.GradleException: Build cache entry 9fdc53a6ad5b3bcfdf8d368c34c65871 from remote build cache is invalid	
at org.gradle.caching.internal.controller.DefaultBuildCacheController.lambda$load$0(DefaultBuildCacheController.java:120)	
•••
Caused by: org.gradle.internal.operations.BuildOperationInvocationException: Corrupted TAR archive.	
at org.gradle.internal.operations.DefaultBuildOperationRunner.throwAsBuildOperationInvocationException(DefaultBuildOperationRunner.java:192)	
•••
Caused by: java.io.IOException: Corrupted TAR archive.	
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1597)	
•••
Caused by: java.lang.IllegalArgumentException: Invalid byte 111 at offset 0 in 'otserapt' len=8	
at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:153)	
•••

and

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':project:subproject:synthesizeDependenciesMain'.	
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)	
•••
Caused by: java.lang.RuntimeException: Failed to load cache entry for task ':project:subproject:synthesizeDependenciesMain'	
at org.gradle.internal.execution.steps.BuildCacheStep.lambda$executeWithCache$6(BuildCacheStep.java:129)	
•••
Caused by: org.gradle.api.GradleException: Build cache entry 6115a4691ccbc55af2f52b104503adf4 from remote build cache is invalid	
at org.gradle.caching.internal.controller.DefaultBuildCacheController.lambda$load$0(DefaultBuildCacheController.java:120)	
•••
Caused by: org.gradle.internal.operations.BuildOperationInvocationException: Corrupted TAR archive.	
at org.gradle.internal.operations.DefaultBuildOperationRunner.throwAsBuildOperationInvocationException(DefaultBuildOperationRunner.java:192)	
•••
Caused by: java.io.IOException: Corrupted TAR archive.	
at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1597)	
•••
Caused by: java.lang.IllegalArgumentException: Invalid byte 89 at offset 0 in 'YndCrct"' len=8	
at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:153)	
•••

@martofeld
Copy link

Seeing similar issues when running parallel stages in Jenkins. It would be great if Gradle could handle this errors in a way that doesn't break the CI builds since it produces clutter and hides true errors.

Similarly to what has been stated above, we have a jenkins node with multiple executors to allow for parallel execution, we attempted to remediate the issues by giving each task a dedicated cache directory based on the executor and the stage its running (i.e. cacheHome="executor-${executorNumber}-${stageName}-cache") but this is still happening.

Example failures as follows:

Failed to store cache entry for task ':my-module:kaptGenerateStubsDebugKotlin'
> Could not pack tree 'stubsDir': java.io.IOException: Entry 'tree-stubsDir/com/my/package/MyClass.java' closed at '0' before the '20471' bytes specified in the header were written
  > java.io.IOException: Entry 'tree-stubsDir/com/my/package/MyClass.java' closed at '0' before the '20471' bytes specified in the header were written
    > Entry 'tree-stubsDir/com/my/package/MyClass.java' closed at '0' before the '20471' bytes specified in the header were written

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:feature A new functionality in:build-cache
Projects
None yet
Development

No branches or pull requests

9 participants