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

Resolution fails with: Could not update timestamp for ... descriptor.bin.fslck caused by NoSuchFileException #11752

Closed
vlsi opened this issue Dec 23, 2019 · 7 comments
Milestone

Comments

@vlsi
Copy link
Contributor

vlsi commented Dec 23, 2019

Expected Behavior

Resolution for detached configurations should not fail provided all the artifacts exist.

Current Behavior

Sometimes Gradle fails. The failure is observable on both GitHub Actions Linux and Travis Linux.

Sample failure: https://github.com/autostyle/autostyle/commit/54edfa37955c3c8b13ac5572809f80cf60f46c7a/checks?check_suite_id=371157890#step:4:795

Travis failure: https://travis-ci.org/autostyle/autostyle/jobs/628610212#L431

Bot jobs have --stacktrace, but GitHub Actions has more stacktraces while Travs has just caused by..caused by.

Relevant stack:

Caused by:
org.gradle.api.UncheckedIOException: Could not update timestamp for /home/runner/.gradle/caches/modules-2/metadata-2.82/descriptors/org.apache/apache/17/edb68b65d2dd9b547bbf59d703899938/descriptor.bin.fslck
    at org.gradle.util.GFileUtils.touchExisting(GFileUtils.java:80)
    at org.gradle.util.GFileUtils.touch(GFileUtils.java:59)
    at org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd(DefaultPathKeyFileStore.java:139)
    at org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd(DefaultPathKeyFileStore.java:132)
    at org.gradle.internal.resource.local.DefaultPathKeyFileStore.add(DefaultPathKeyFileStore.java:91)
    ... 180 more
    Caused by:
    java.nio.file.NoSuchFileException: /home/runner/.gradle/caches/modules-2/metadata-2.82/descriptors/org.apache/apache/17/edb68b65d2dd9b547bbf59d703899938/descriptor.bin.fslck
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixPath.openForAttributeAccess(UnixPath.java:787)
        at sun.nio.fs.UnixFileAttributeViews$Basic.setTimes(UnixFileAttributeViews.java:74)

AFAIK, the code in question is https://github.com/gradle/gradle/blame/4b850efa1544ad0e14ac45d56059ec3a3d7f4a90/subprojects/core/src/main/java/org/gradle/internal/resource/local/DefaultPathKeyFileStore.java#L142

My understanding is that concurrent deleteFileQuietly operation (see https://github.com/gradle/gradle/blame/4b850efa1544ad0e14ac45d56059ec3a3d7f4a90/subprojects/core/src/main/java/org/gradle/internal/resource/local/DefaultPathKeyFileStore.java#L151 ) deletes the file exactly in-between of lines 58-59 (see https://github.com/gradle/gradle/blame/80d23c35a059d3eb63f71b4504d0755e1ee09c65/subprojects/base-services/src/main/java/org/gradle/util/GFileUtils.java#L58-L59 )

In other words:

doAdd below means org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd

Thread 1: doAdd
Thread 1: doAdd -> GFileUtils.touch // creates descriptor.bin.fslck file

Thread 2: doAdd // just enters into doAdd
Thread 2: doAdd -> GFileUtils.touch -> file.createNewFile // returns "not created" -- because descriptor.bin.fslck exists, it is expected

Thread 1: doAdd -> finally -> deleteFileQuietly // deletes descriptor.bin.fslck
Thread 2: doAdd -> GFileUtils.touch -> touchExisting // FAILS with NoSuchFileException since the file no longer exists

It is surprising that the relevant code was like that for ages, however, the above sequence looks quite plausible to me.

@lptr , @adammurdoch what do you think?

Context

It fails my Travis / GitHubActions builds 42% of the time (I don't know the percentage, but it is really often)

The resolution code is as follows:

https://github.com/autostyle/autostyle/blob/d6be709181341592bf90376ec6c0b87d1ab84d08/testlib/src/main/kotlin/com/github/autostyle/TestProvisioner.kt#L50-L63

Steps to Reproduce

Restart Travis or GHA job until it fails.

Your Environment

Gradle 6.0.1
Does build scan help?
I can try to make Travis job to produce a build scan, but I would like to refrain spending time on something that won't really help.

vlsi added a commit to autostyle/autostyle that referenced this issue Dec 27, 2019
vlsi added a commit to autostyle/autostyle that referenced this issue Dec 27, 2019
vlsi added a commit to autostyle/autostyle that referenced this issue Dec 27, 2019
nedtwigg added a commit to diffplug/spotless that referenced this issue Dec 30, 2019
@nedtwigg
Copy link
Contributor

An interesting note is that it seems to be caused only when the detached configuration is using jcenter() as its repository. It doesn't happen with mavenCentral(). Today I have been experiencing near 100% failure rates in this code when resolving from jcenter, but 0% failure when resolving from mavenCentral.

@nedtwigg
Copy link
Contributor

Just had my first failure on a resolve from mavenCentral(). Still significantly more flaky on jcenter() than mavenCentral(), but no longer perfect.

@stale
Copy link

stale bot commented Dec 30, 2020

This issue has been automatically marked as stale because it has not had recent activity. Given the limited bandwidth of the team, it will be automatically closed if no further activity occurs. If you're interested in how we try to keep the backlog in a healthy state, please read our blog post on how we refine our backlog. If you feel this is something you could contribute, please have a look at our Contributor Guide. Thank you for your contribution.

@stale stale bot added the stale label Dec 30, 2020
@stale
Copy link

stale bot commented Jan 20, 2021

This issue has been automatically closed due to inactivity. If you can reproduce this on a recent version of Gradle or if you have a good use case for this feature, please feel free to reopen the issue with steps to reproduce, a quick explanation of your use case or a high-quality pull request.

@davidburstromspotify
Copy link

davidburstromspotify commented Jun 26, 2021

I just came across what seems to be the same issue, in Gradle 7.1. This happened in a test scenario where multiple parallel GradleRunners were executing. The GradleRunners ran Gradle 6.2.2 so I suppose legacy code is executing here.

Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve com.google.guava:guava:30.1.1-jre.  
  Caused by: org.gradle.api.resources.ResourceException: Could not get resource 'https://repo.maven.apache.org/maven2/com/google/guava/guava/30.1.1-jre/guava-30.1.1-jre.pom'.  
  at org.gradle.internal.resource.ResourceExceptions.failure(ResourceExceptions.java:74)  
  at org.gradle.internal.resource.ResourceExceptions.getFailed(ResourceExceptions.java:57)  
  at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadByCoords(DefaultExternalResourceArtifactResolver.java:144)  
  at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadStaticResource(DefaultExternalResourceArtifactResolver.java:94)  
  at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.resolveArtifact(DefaultExternalResourceArtifactResolver.java:60)  
  at org.gradle.api.internal.artifacts.repositories.metadata.AbstractRepositoryMetadataSource.parseMetaDataFromArtifact(AbstractRepositoryMetadataSource.java:78)  
  at org.gradle.api.internal.artifacts.repositories.metadata.AbstractRepositoryMetadataSource.create(AbstractRepositoryMetadataSource.java:68)  
  at org.gradle.api.internal.artifacts.repositories.metadata.DefaultMavenPomMetadataSource.create(DefaultMavenPomMetadataSource.java:40)  
  at org.gradle.api.internal.artifacts.repositories.metadata.RedirectingGradleMetadataModuleMetadataSource.create(RedirectingGradleMetadataModuleMetadataSource.java:51)  
  at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.resolveStaticDependency(ExternalResourceResolver.java:245)  
  at org.gradle.api.internal.artifacts.repositories.resolver.MavenResolver.doResolveComponentMetaData(MavenResolver.java:130)  
  at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver$RemoteRepositoryAccess.resolveComponentMetaData(ExternalResourceResolver.java:462)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$ResolveAndCacheRepositoryAccess.resolveComponentMetaData(CachingModuleComponentRepository.java:379)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$resolveComponentMetaData$5(ErrorHandlingModuleComponentRepository.java:154)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$tryResolveAndMaybeBlacklist$18(ErrorHandlingModuleComponentRepository.java:223)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:237)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:222)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.performOperationWithRetries(ErrorHandlingModuleComponentRepository.java:215)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.resolveComponentMetaData(ErrorHandlingModuleComponentRepository.java:153)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.process(ComponentMetaDataResolveState.java:69)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.resolve(ComponentMetaDataResolveState.java:61)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:139)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:120)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule(RepositoryChainComponentMetaDataResolver.java:93)  
  at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolve(RepositoryChainComponentMetaDataResolver.java:64)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.ComponentResolversChain$ComponentMetaDataResolverChain.resolve(ComponentResolversChain.java:95)  
  at org.gradle.api.internal.artifacts.ivyservice.clientmodule.ClientModuleResolver.resolve(ClientModuleResolver.java:65)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ComponentState.resolve(ComponentState.java:195)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ComponentState.getMetadata(ComponentState.java:142)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:209)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.attachToTargetConfigurations(EdgeState.java:153)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.restart(EdgeState.java:192)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ModuleResolveState.restartUnattachedDependencies(ModuleResolveState.java:262)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ModuleResolveState.doRestart(ModuleResolveState.java:255)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ModuleResolveState.changeSelection(ModuleResolveState.java:197)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ModuleResolveState.maybeUpdateSelection(ModuleResolveState.java:402)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.performSelection(DependencyGraphBuilder.java:289)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.performSelectionSerially(DependencyGraphBuilder.java:270)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolveEdges(DependencyGraphBuilder.java:246)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:185)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:144)  
  at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:127)  
  at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:174)  
  at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:86)  
  at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:74)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.run(DefaultConfiguration.java:618)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)  
  at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:609)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusively$4(DefaultConfiguration.java:590)  
  at org.gradle.api.internal.project.DefaultProjectStateRegistry$SafeExclusiveLockImpl.withLock(DefaultProjectStateRegistry.java:289)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively(DefaultConfiguration.java:588)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:575)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1900(DefaultConfiguration.java:141)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1246)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.visitContents(DefaultConfiguration.java:1237)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1226)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:484)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)  
  at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolve(DefaultConfiguration.java:474)  
  at org.project.gradle.BasePlugin.lambda$apply$1(BasePlugin.java:129)  
  at org.project.gradle.BasePlugin.lambda$apply$2(BasePlugin.java:130)  
  at org.gradle.api.internal.provider.ValidatingValueCollector.addAll(ValidatingValueCollector.java:45)  
  at org.gradle.api.internal.provider.Collectors$ElementsFromCollection.collectEntries(Collectors.java:180)  
  at org.gradle.api.internal.provider.AbstractCollectionProperty$CollectingSupplier.calculateValue(AbstractCollectionProperty.java:434)  
  at org.gradle.api.internal.provider.AbstractCollectionProperty.doCalculateOwnValue(AbstractCollectionProperty.java:168)  
  at org.gradle.api.internal.provider.AbstractCollectionProperty.calculateOwnValue(AbstractCollectionProperty.java:164)  
  at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:80)  
  at org.gradle.api.internal.tasks.properties.annotations.NestedBeanAnnotationHandler.unpackProvider(NestedBeanAnnotationHandler.java:79)  
  at org.gradle.api.internal.tasks.properties.annotations.NestedBeanAnnotationHandler.visitPropertyValue(NestedBeanAnnotationHandler.java:63)  
  at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode.visitProperties(AbstractNestedRuntimeBeanNode.java:58)  
  at org.gradle.api.internal.tasks.properties.bean.RootRuntimeBeanNode.visitNode(RootRuntimeBeanNode.java:32)  
  at org.gradle.api.internal.tasks.properties.DefaultPropertyWalker.visitProperties(DefaultPropertyWalker.java:41)  
  at org.gradle.api.internal.tasks.TaskPropertyUtils.visitProperties(TaskPropertyUtils.java:42)  
  at org.gradle.api.internal.tasks.TaskPropertyUtils.visitProperties(TaskPropertyUtils.java:32)  
  at org.gradle.api.internal.tasks.DefaultTaskInputs.visitDependencies(DefaultTaskInputs.java:192)  
  at org.gradle.api.internal.tasks.DefaultTaskDependency.visitDependencies(DefaultTaskDependency.java:97)  
  at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:112)  
  at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmptyEdges.getNodeValues(CachingDirectedGraphWalker.java:213)  
  at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:121)  
  at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:73)  
  at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:67)  
  at org.gradle.execution.plan.TaskDependencyResolver.resolveDependenciesFor(TaskDependencyResolver.java:46)  
  at org.gradle.execution.plan.LocalTaskNode.getDependencies(LocalTaskNode.java:161)  
  at org.gradle.execution.plan.LocalTaskNode.resolveDependencies(LocalTaskNode.java:129)  
  at org.gradle.execution.plan.DefaultExecutionPlan.doAddNodes(DefaultExecutionPlan.java:164)  
  at org.gradle.execution.plan.DefaultExecutionPlan.addEntryTasks(DefaultExecutionPlan.java:134)  
  at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.addEntryTasks(DefaultTaskExecutionGraph.java:145)  
  at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:49)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:58)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter$2.proceed(DefaultBuildConfigurationActionExecuter.java:66)  
  at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:45)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:58)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter$2.proceed(DefaultBuildConfigurationActionExecuter.java:66)  
  at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:48)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:58)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.run(DefaultBuildConfigurationActionExecuter.java:44)  
  at org.gradle.internal.Factories$1.create(Factories.java:26)  
  at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:134)  
  at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:126)  
  at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:40)  
  at org.gradle.initialization.DefaultTaskExecutionPreparer.prepareForTaskExecution(DefaultTaskExecutionPreparer.java:38)  
  at org.gradle.initialization.BuildOperatingFiringTaskExecutionPreparer$CalculateTaskGraph.populateTaskGraph(BuildOperatingFiringTaskExecutionPreparer.java:123)  
  at org.gradle.initialization.BuildOperatingFiringTaskExecutionPreparer$CalculateTaskGraph.run(BuildOperatingFiringTaskExecutionPreparer.java:64)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)  
  at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)  
  at org.gradle.initialization.BuildOperatingFiringTaskExecutionPreparer.prepareForTaskExecution(BuildOperatingFiringTaskExecutionPreparer.java:52)  
  at org.gradle.initialization.DefaultGradleLauncher.prepareTaskExecution(DefaultGradleLauncher.java:225)  
  at org.gradle.initialization.DefaultGradleLauncher.doClassicBuildStages(DefaultGradleLauncher.java:159)  
  at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)  
  at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:120)  
  at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:74)  
  at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)  
  at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)  
  at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)  
  at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67)  
  at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56)  
  at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:54)  
  at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)  
  at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)  
  at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)  
  at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)  
  at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)  
  at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)  
  at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)  
  at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)  
  at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)  
  at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)  
  at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)  
  at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)  
  at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:80)  
  at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)  
  at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)  
  at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)  
  at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)  
  at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)  
  at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)  
  at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:60)  
  at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:38)  
  at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)  
  at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)  
  at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)  
  at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)  
  at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)  
  at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)  
  at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)  
  at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)  
  at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)  
  at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)  
  at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)  
  at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)  
  at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)  
  at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)  
  at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)  
  at org.gradle.util.Swapper.swap(Swapper.java:38)  
  at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)  
  at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)  
  at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)  
  at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)  
  at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)  
  at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)  
  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.internal.resource.local.FileStoreException: Failed to move file 'Y:\temp\buildTmp\gradle_download5291936118065032796bin' into filestore at 'com.google.guava/guava/30.1.1-jre/f55555f43cb33c8c2f911e962ae5e4bc2f522b0/guava-30.1.1-jre.pom'  
  at org.gradle.internal.resource.local.DefaultPathKeyFileStore.move(DefaultPathKeyFileStore.java:130)  
  at org.gradle.internal.resource.local.UniquePathKeyFileStore.move(UniquePathKeyFileStore.java:40)  
  at org.gradle.internal.resource.local.UniquePathKeyFileStore.move(UniquePathKeyFileStore.java:31)  
  at org.gradle.internal.resource.local.GroupedAndNamedUniqueFileStore.move(GroupedAndNamedUniqueFileStore.java:54)  
  at org.gradle.internal.resource.transfer.CacheAwareExternalResourceAccessor$DefaultResourceFileStore.moveIntoCache(CacheAwareExternalResourceAccessor.java:59)  
  at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.moveIntoCache(DefaultCacheAwareExternalResourceAccessor.java:216)  
  at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.copyToCache(DefaultCacheAwareExternalResourceAccessor.java:209)  
  at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.lambda$getResource$1(DefaultCacheAwareExternalResourceAccessor.java:92)  
  at org.gradle.cache.internal.ProducerGuard$AdaptiveProducerGuard.guardByKey(ProducerGuard.java:97)  
  at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.getResource(DefaultCacheAwareExternalResourceAccessor.java:86)  
  at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadByCoords(DefaultExternalResourceArtifactResolver.java:139)  
  ... 193 more  
  Caused by: org.gradle.api.UncheckedIOException: Could not update timestamp for Y:\work\6af3a2124e6eb674\gradle-plugins\base\build\tmp\compatibilityTest6Dot2Dot2\work\.gradle-test-kit\caches\modules-2\files-2.1\com.google.guava\guava\30.1.1-jre\f55555f43cb33c8c2f911e962ae5e4bc2f522b0\guava-30.1.1-jre.pom.fslck  
  at org.gradle.util.GFileUtils.touchExisting(GFileUtils.java:82)  
  at org.gradle.util.GFileUtils.touch(GFileUtils.java:61)  
  at org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd(DefaultPathKeyFileStore.java:143)  
  at org.gradle.internal.resource.local.UniquePathKeyFileStore.doAdd(UniquePathKeyFileStore.java:50)  
  at org.gradle.internal.resource.local.DefaultPathKeyFileStore.doAdd(DefaultPathKeyFileStore.java:136)  
  at org.gradle.internal.resource.local.DefaultPathKeyFileStore.move(DefaultPathKeyFileStore.java:119)  
  ... 203 more  
  Caused by: java.nio.file.NoSuchFileException: Y:\work\6af3a2124e6eb674\gradle-plugins\base\build\tmp\compatibilityTest6Dot2Dot2\work\.gradle-test-kit\caches\modules-2\files-2.1\com.google.guava\guava\30.1.1-jre\f55555f43cb33c8c2f911e962ae5e4bc2f522b0\guava-30.1.1-jre.pom.fslck  
  at org.gradle.util.GFileUtils.touchExisting(GFileUtils.java:74)  
  ... 208 more

@Vampire
Copy link
Contributor

Vampire commented Mar 1, 2024

@ov7a can you please reopen this one?
This is still an issue, I was able to assemble a reproducer and currently preparing it from the reproducer template.

@ov7a ov7a reopened this Mar 1, 2024
@Vampire
Copy link
Contributor

Vampire commented Mar 1, 2024

Urgh, sorry.
I was a bit too eager.
It is reprocible with 7.6.4 but no longer in Gradle 8+ so please re-close as fixed.
Here the reproducer for 7.6.4, failing on Linux and Windows, with and without parallel test execution: https://github.com/Vampire/gradle-issue-11752/actions/runs/8112562014
But starting with Gradle 8.0 this does not fail anymore in the first 1000 tries while before it reproduced usually during the first 50 tries.

@ov7a ov7a added this to the 8.0 milestone Mar 1, 2024
@ov7a ov7a closed this as completed Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants