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

Custom Remote Build Cache does not work with configuration cache enabled #14874

Closed
Dave562CZ opened this issue Oct 15, 2020 · 10 comments · Fixed by #20494 or #20500
Closed

Custom Remote Build Cache does not work with configuration cache enabled #14874

Dave562CZ opened this issue Oct 15, 2020 · 10 comments · Fixed by #20494 or #20500

Comments

@Dave562CZ
Copy link

Expected Behavior

custom implementation of remote build cache can be used with configuration cache enabled

Current Behavior

second run (when configuration cache is reused) fails with following exception

org.gradle.initialization.exception.InitializationException: Gradle could not start your build.
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
        at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:40)
        at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:190)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:153)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:126)
        at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:72)
        at org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:178)
        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.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
        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.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:67)
        at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.lambda$execute$0(InProcessBuildActionExecuter.java:54)
        at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:87)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:53)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
        at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.lambda$execute$0(BuildTreeScopeLifecycleBuildActionExecuter.java:33)
        at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:49)
        at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:32)
        at org.gradle.launcher.exec.BuildTreeScopeLifecycleBuildActionExecuter.execute(BuildTreeScopeLifecycleBuildActionExecuter.java:27)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:104)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:55)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:64)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:37)
        at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.lambda$execute$0(SessionScopeLifecycleBuildActionExecuter.java:54)
        at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:67)
        at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:50)
        at org.gradle.tooling.internal.provider.SessionScopeLifecycleBuildActionExecuter.execute(SessionScopeLifecycleBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
        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:47)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
        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:84)
        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.service.ServiceCreationException: Could not create service of type BuildCacheController using .createBuildCacheController().
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:848)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:773)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:563)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:621)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters(DefaultServiceRegistry.java:786)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:772)
        at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance(DefaultServiceRegistry.java:563)
        at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:621)
        at org.gradle.internal.service.DefaultServiceRegistry.find(DefaultServiceRegistry.java:305)
        at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:289)
        at org.gradle.internal.service.DefaultServiceRegistry.get(DefaultServiceRegistry.java:284)
        at org.gradle.execution.ProjectExecutionServiceRegistry$DefaultNodeExecutionContext.getService(ProjectExecutionServiceRegistry.java:71)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:40)
        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.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:72)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:184)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:177)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:39)
        at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:40)
        at org.gradle.execution.DefaultBuildWorkExecutor.access$000(DefaultBuildWorkExecutor.java:24)
        at org.gradle.execution.DefaultBuildWorkExecutor$1.proceed(DefaultBuildWorkExecutor.java:48)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
        at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:40)
        at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:33)
        at org.gradle.execution.IncludedBuildLifecycleBuildWorkExecutor.execute(IncludedBuildLifecycleBuildWorkExecutor.java:36)
        at org.gradle.execution.DeprecateUndefinedBuildWorkExecutor.execute(DeprecateUndefinedBuildWorkExecutor.java:42)
        at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.run(BuildOperationFiringBuildWorkerExecutor.java:57)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
        at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:42)
        at org.gradle.initialization.DefaultGradleLauncher.runWork(DefaultGradleLauncher.java:265)
        at org.gradle.initialization.DefaultGradleLauncher.doConfigurationCacheBuild(DefaultGradleLauncher.java:182)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
        ... 76 more
Caused by: org.gradle.api.GradleException: Build cache type 'Settings_gradle$CustomBuildCache_Decorated' has not been registered.
        at org.gradle.caching.configuration.internal.DefaultBuildCacheConfiguration.getBuildCacheServiceFactoryType(DefaultBuildCacheConfiguration.java:177)
        at org.gradle.caching.configuration.internal.DefaultBuildCacheConfiguration.getBuildCacheServiceFactoryType(DefaultBuildCacheConfiguration.java:164)
        at org.gradle.caching.internal.services.BuildCacheControllerFactory.createBuildCacheService(BuildCacheControllerFactory.java:158)
        at org.gradle.caching.internal.services.BuildCacheControllerFactory.access$100(BuildCacheControllerFactory.java:51)
        at org.gradle.caching.internal.services.BuildCacheControllerFactory$1.call(BuildCacheControllerFactory.java:100)
        at org.gradle.caching.internal.services.BuildCacheControllerFactory$1.call(BuildCacheControllerFactory.java:76)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
        at org.gradle.caching.internal.services.BuildCacheControllerFactory.create(BuildCacheControllerFactory.java:76)
        at org.gradle.caching.internal.BuildCacheServices$3.doCreateBuildCacheController(BuildCacheServices.java:190)
        at org.gradle.caching.internal.BuildCacheServices$3.createBuildCacheController(BuildCacheServices.java:161)
        at jdk.internal.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
        at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke(ReflectionBasedServiceMethod.java:34)
        at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:846)
        ... 123 more

Context

I have custom implementation of remote build cache and I am trying out configuration cache
and running help task fails on second run where the configuration cache is reused.

Steps to Reproduce

run command in README twice
https://github.com/spamdr/custom-build-cache-configuration-cache-issue

Your Environment

Gradle 6.7
openjdk version "11.0.3" 2019-04-16 LTS
OpenJDK Runtime Environment Zulu11.31+11-CA (build 11.0.3+7-LTS)
OpenJDK 64-Bit Server VM Zulu11.31+11-CA (build 11.0.3+7-LTS, mixed mode)
Windows 10
fails also on:
Kubuntu 18.04

@mathjeff
Copy link
Contributor

AndroidX is encountering this too in https://android-review.googlesource.com/c/platform/frameworks/support/+/2065190

Has anybody noticed any workarounds for validating that new configuration cache violations don't get introduced while still using a custom remote cache?

@liutikas
Copy link
Contributor

The issue seems to be in DefaultBuildCacheConfiguration#getBuildCacheServiceFactoryType method where we fail to load/cast the build service factory when loading from the configuration cache.

@liutikas
Copy link
Contributor

I wonder if a9d7d71 will fix the problem

@liutikas
Copy link
Contributor

Nevermind, that is actually a really old patch.

@liutikas
Copy link
Contributor

On a clean non-cached run, adding a custom remote cache results in 4 BuildCacheServiceRegistration objects, in the following stack:
Screenshot 2022-04-18 3 47 51 PM

getBuildCacheServiceFactoryType:146, DefaultBuildCacheConfiguration (org.gradle.caching.configuration.internal)
createBuildCacheConfiguration:129, DefaultBuildCacheConfiguration (org.gradle.caching.configuration.internal)
createRemoteCacheConfiguration:121, DefaultBuildCacheConfiguration (org.gradle.caching.configuration.internal)
remote:98, DefaultBuildCacheConfiguration (org.gradle.caching.configuration.internal)
remote:-1, DefaultBuildCacheConfiguration_Decorated (org.gradle.caching.configuration.internal)
invoke0:-1, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:62, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:43, DelegatingMethodAccessorImpl (jdk.internal.reflect)
invoke:566, Method (java.lang.reflect)
invoke:107, CachedMethod (org.codehaus.groovy.reflection)
doMethodInvoke:323, MetaMethod (groovy.lang)
invokeMethod:484, BeanDynamicObject$MetaClassAdapter (org.gradle.internal.metaobject)
tryInvokeMethod:196, BeanDynamicObject (org.gradle.internal.metaobject)
tryInvokeMethod:98, CompositeDynamicObject (org.gradle.internal.metaobject)
tryInvokeMethod:34, MixInClosurePropertiesAsMethodsDynamicObject (org.gradle.internal.extensibility)
invokeMethod:56, ConfigureDelegate (org.gradle.internal.metaobject)
invokeOnDelegationObjects:408, ClosureMetaClass (org.codehaus.groovy.runtime.metaclass)
invokeMethod:348, ClosureMetaClass (org.codehaus.groovy.runtime.metaclass)
callCurrent:61, PogoMetaClassSite (org.codehaus.groovy.runtime.callsite)
defaultCallCurrent:51, CallSiteArray (org.codehaus.groovy.runtime.callsite)
callCurrent:171, AbstractCallSite (org.codehaus.groovy.runtime.callsite)
callCurrent:194, AbstractCallSite (org.codehaus.groovy.runtime.callsite)
doCall:22, remoteBuildCache_8t75aapbkfwpulqlgj1c8mfka$_run_closure1$_closure3
invoke0:-1, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:62, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:43, DelegatingMethodAccessorImpl (jdk.internal.reflect)
invoke:566, Method (java.lang.reflect)
invoke:107, CachedMethod (org.codehaus.groovy.reflection)
doMethodInvoke:323, MetaMethod (groovy.lang)
invokeMethod:274, ClosureMetaClass (org.codehaus.groovy.runtime.metaclass)
invokeMethod:1035, MetaClassImpl (groovy.lang)
call:412, Closure (groovy.lang)
call:428, Closure (groovy.lang)
execute:72, ClosureBackedAction (org.gradle.util.internal)
configureTarget:155, ConfigureUtil (org.gradle.util.internal)
configure:106, ConfigureUtil (org.gradle.util.internal)
execute:167, ConfigureUtil$WrappedConfigureAction (org.gradle.util.internal)
buildCache:324, DefaultSettings (org.gradle.initialization)
buildCache:-1, DefaultSettings_Decorated (org.gradle.initialization)
call:-1, DefaultSettings_Decorated$buildCache (org.gradle.initialization)
defaultCall:47, CallSiteArray (org.codehaus.groovy.runtime.callsite)
call:125, AbstractCallSite (org.codehaus.groovy.runtime.callsite)
call:139, AbstractCallSite (org.codehaus.groovy.runtime.callsite)
doCall:21, remoteBuildCache_8t75aapbkfwpulqlgj1c8mfka$_run_closure1
invoke0:-1, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:62, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:43, DelegatingMethodAccessorImpl (jdk.internal.reflect)
invoke:566, Method (java.lang.reflect)
invoke:107, CachedMethod (org.codehaus.groovy.reflection)
doMethodInvoke:323, MetaMethod (groovy.lang)
invokeMethod:274, ClosureMetaClass (org.codehaus.groovy.runtime.metaclass)
invokeMethod:1035, MetaClassImpl (groovy.lang)
call:412, Closure (groovy.lang)
dispatch:41, ClosureBackedMethodInvocationDispatch (org.gradle.listener)
dispatch:25, ClosureBackedMethodInvocationDispatch (org.gradle.listener)
dispatch:43, AbstractBroadcastDispatch (org.gradle.internal.event)
dispatch:245, BroadcastDispatch$SingletonDispatch (org.gradle.internal.event)
dispatch:157, BroadcastDispatch$SingletonDispatch (org.gradle.internal.event)
dispatch:61, AbstractBroadcastDispatch (org.gradle.internal.event)
dispatch:346, BroadcastDispatch$CompositeDispatch (org.gradle.internal.event)
dispatch:249, BroadcastDispatch$CompositeDispatch (org.gradle.internal.event)
dispatch:141, ListenerBroadcast (org.gradle.internal.event)
dispatch:37, ListenerBroadcast (org.gradle.internal.event)
invoke:94, ProxyDispatchAdapter$DispatchingInvocationHandler (org.gradle.internal.dispatch)
settingsEvaluated:-1, $Proxy28 (com.sun.proxy)
process:35, SettingsEvaluatedCallbackFiringSettingsProcessor (org.gradle.initialization)
process:47, RootBuildCacheControllerSettingsProcessor (org.gradle.initialization)
call:50, BuildOperationSettingsProcessor$2 (org.gradle.initialization)
call:47, BuildOperationSettingsProcessor$2 (org.gradle.initialization)
execute:204, DefaultBuildOperationRunner$CallableBuildOperationWorker (org.gradle.internal.operations)
execute:199, DefaultBuildOperationRunner$CallableBuildOperationWorker (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
call:53, DefaultBuildOperationRunner (org.gradle.internal.operations)
call:73, DefaultBuildOperationExecutor (org.gradle.internal.operations)
process:47, BuildOperationSettingsProcessor (org.gradle.initialization)
findSettingsAndLoadIfAppropriate:136, DefaultSettingsLoader (org.gradle.initialization)
findAndLoadSettings:62, DefaultSettingsLoader (org.gradle.initialization)
findAndLoadSettings:34, SettingsAttachingSettingsLoader (org.gradle.initialization)
findAndLoadSettings:34, CommandLineIncludedBuildSettingsLoader (org.gradle.internal.composite)
findAndLoadSettings:48, ChildBuildRegisteringSettingsLoader (org.gradle.internal.composite)
findAndLoadSettings:35, CompositeBuildSettingsLoader (org.gradle.internal.composite)
findAndLoadSettings:34, InitScriptHandlingSettingsLoader (org.gradle.initialization)
findAndLoadSettings:39, GradlePropertiesHandlingSettingsLoader (org.gradle.initialization)
prepareSettings:31, DefaultSettingsPreparer (org.gradle.initialization)
doLoadBuild:62, BuildOperationFiringSettingsPreparer$LoadBuild (org.gradle.initialization)
run:57, BuildOperationFiringSettingsPreparer$LoadBuild (org.gradle.initialization)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
prepareSettings:45, BuildOperationFiringSettingsPreparer (org.gradle.initialization)
lambda$prepareSettings$2:85, VintageBuildModelController (org.gradle.initialization)
run:-1, 898246265 (org.gradle.initialization.VintageBuildModelController$$Lambda$260)
lambda$doTransition$12:227, StateTransitionController (org.gradle.internal.model)
get:-1, 1762552532 (org.gradle.internal.model.StateTransitionController$$Lambda$259)
doTransition:238, StateTransitionController (org.gradle.internal.model)
doTransition:226, StateTransitionController (org.gradle.internal.model)
lambda$transitionIfNotPreviously$10:201, StateTransitionController (org.gradle.internal.model)
run:-1, 358162494 (org.gradle.internal.model.StateTransitionController$$Lambda$261)
withLock:34, DefaultSynchronizer (org.gradle.internal.work)
transitionIfNotPreviously:197, StateTransitionController (org.gradle.internal.model)
prepareSettings:85, VintageBuildModelController (org.gradle.initialization)
prepareToScheduleTasks:70, VintageBuildModelController (org.gradle.initialization)
prepareToScheduleTasks:48, ConfigurationCacheAwareBuildModelController (org.gradle.configurationcache)
lambda$prepareToScheduleTasks$2:134, DefaultBuildLifecycleController (org.gradle.internal.build)
run:-1, 2058046229 (org.gradle.internal.build.DefaultBuildLifecycleController$$Lambda$257)
lambda$doTransition$12:227, StateTransitionController (org.gradle.internal.model)
get:-1, 1762552532 (org.gradle.internal.model.StateTransitionController$$Lambda$259)
doTransition:238, StateTransitionController (org.gradle.internal.model)
doTransition:226, StateTransitionController (org.gradle.internal.model)
lambda$maybeTransition$9:187, StateTransitionController (org.gradle.internal.model)
run:-1, 1227966941 (org.gradle.internal.model.StateTransitionController$$Lambda$258)
withLock:34, DefaultSynchronizer (org.gradle.internal.work)
maybeTransition:183, StateTransitionController (org.gradle.internal.model)
prepareToScheduleTasks:132, DefaultBuildLifecycleController (org.gradle.internal.build)
scheduleRequestedTasks:33, DefaultBuildTreeWorkPreparer (org.gradle.internal.buildtree)
invoke:29, ConfigurationCacheAwareBuildTreeWorkPreparer$scheduleRequestedTasks$1 (org.gradle.configurationcache)
invoke:28, ConfigurationCacheAwareBuildTreeWorkPreparer$scheduleRequestedTasks$1 (org.gradle.configurationcache)
invoke:133, DefaultConfigurationCache$loadOrScheduleRequestedTasks$1 (org.gradle.configurationcache)
invoke:132, DefaultConfigurationCache$loadOrScheduleRequestedTasks$1 (org.gradle.configurationcache)
runWorkThatContributesToCacheEntry:276, DefaultConfigurationCache (org.gradle.configurationcache)
loadOrScheduleRequestedTasks:132, DefaultConfigurationCache (org.gradle.configurationcache)
scheduleRequestedTasks:28, ConfigurationCacheAwareBuildTreeWorkPreparer (org.gradle.configurationcache)
lambda$doScheduleAndRunTasks$2:89, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
apply:-1, 383046997 (org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController$$Lambda$245)
withNewWorkGraph:75, DefaultIncludedBuildTaskGraph (org.gradle.composite.internal)
doScheduleAndRunTasks:88, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
get:-1, 1514663417 (org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController$$Lambda$241)
lambda$runBuild$4:106, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
get:-1, 1165574759 (org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController$$Lambda$242)
lambda$transition$6:166, StateTransitionController (org.gradle.internal.model)
get:-1, 1369373494 (org.gradle.internal.model.StateTransitionController$$Lambda$244)
doTransition:238, StateTransitionController (org.gradle.internal.model)
lambda$transition$7:166, StateTransitionController (org.gradle.internal.model)
create:-1, 1134326829 (org.gradle.internal.model.StateTransitionController$$Lambda$243)
withLock:44, DefaultSynchronizer (org.gradle.internal.work)
transition:166, StateTransitionController (org.gradle.internal.model)
runBuild:103, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
scheduleAndRunTasks:69, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
run:53, BuildModelActionRunner (org.gradle.tooling.internal.provider.runner)
run:35, ChainingBuildActionRunner (org.gradle.launcher.exec)
run:49, ProblemReportingBuildActionRunner (org.gradle.internal.buildtree)
run:69, BuildOutcomeReportingBuildActionRunner (org.gradle.launcher.exec)
run:119, FileSystemWatchingBuildActionRunner (org.gradle.tooling.internal.provider)
run:41, BuildCompletionNotifyingBuildActionRunner (org.gradle.launcher.exec)
lambda$execute$0:40, RootBuildLifecycleBuildActionExecutor (org.gradle.launcher.exec)
apply:-1, 1045312285 (org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor$$Lambda$208)
run:128, DefaultRootBuildState (org.gradle.composite.internal)
execute:40, RootBuildLifecycleBuildActionExecutor (org.gradle.launcher.exec)
execute:40, DefaultBuildTreeContext (org.gradle.internal.buildtree)
lambda$execute$0:65, BuildTreeLifecycleBuildActionExecutor (org.gradle.launcher.exec)
apply:-1, 1869346007 (org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor$$Lambda$87)
run:53, BuildTreeState (org.gradle.internal.buildtree)
execute:65, BuildTreeLifecycleBuildActionExecutor (org.gradle.launcher.exec)
call:61, RunAsBuildOperationBuildActionExecutor$3 (org.gradle.launcher.exec)
call:57, RunAsBuildOperationBuildActionExecutor$3 (org.gradle.launcher.exec)
execute:204, DefaultBuildOperationRunner$CallableBuildOperationWorker (org.gradle.internal.operations)
execute:199, DefaultBuildOperationRunner$CallableBuildOperationWorker (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
call:53, DefaultBuildOperationRunner (org.gradle.internal.operations)
call:73, DefaultBuildOperationExecutor (org.gradle.internal.operations)
execute:57, RunAsBuildOperationBuildActionExecutor (org.gradle.launcher.exec)
lambda$execute$0:36, RunAsWorkerThreadBuildActionExecutor (org.gradle.launcher.exec)
create:-1, 612652597 (org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor$$Lambda$86)
withLocks:270, DefaultWorkerLeaseService (org.gradle.internal.work)
runAsWorkerThread:119, DefaultWorkerLeaseService (org.gradle.internal.work)
execute:36, RunAsWorkerThreadBuildActionExecutor (org.gradle.launcher.exec)
execute:103, ContinuousBuildActionExecutor (org.gradle.tooling.internal.provider)
execute:64, SubscribableBuildActionExecutor (org.gradle.tooling.internal.provider)
execute:46, DefaultBuildSessionContext (org.gradle.internal.session)
apply:100, BuildSessionLifecycleBuildActionExecuter$ActionImpl (org.gradle.tooling.internal.provider)
apply:88, BuildSessionLifecycleBuildActionExecuter$ActionImpl (org.gradle.tooling.internal.provider)
run:69, BuildSessionState (org.gradle.internal.session)
execute:62, BuildSessionLifecycleBuildActionExecuter (org.gradle.tooling.internal.provider)
execute:41, BuildSessionLifecycleBuildActionExecuter (org.gradle.tooling.internal.provider)
execute:63, StartParamsValidatingActionExecuter (org.gradle.tooling.internal.provider)
execute:31, StartParamsValidatingActionExecuter (org.gradle.tooling.internal.provider)
execute:58, SessionFailureReportingActionExecuter (org.gradle.tooling.internal.provider)
execute:42, SessionFailureReportingActionExecuter (org.gradle.tooling.internal.provider)
execute:47, SetupLoggingActionExecuter (org.gradle.tooling.internal.provider)
execute:31, SetupLoggingActionExecuter (org.gradle.tooling.internal.provider)
doBuild:65, ExecuteBuild (org.gradle.launcher.daemon.server.exec)
execute:37, BuildCommandOnly (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:39, WatchForDisconnection (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:29, ResetDeprecationLogger (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:35, RequestStopIfSingleUsedDaemon (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
create:78, ForwardClientInput$2 (org.gradle.launcher.daemon.server.exec)
create:75, ForwardClientInput$2 (org.gradle.launcher.daemon.server.exec)
swap:38, Swapper (org.gradle.util.internal)
execute:75, ForwardClientInput (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:55, LogAndCheckHealth (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
doBuild:63, LogToClient (org.gradle.launcher.daemon.server.exec)
execute:37, BuildCommandOnly (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
doBuild:84, EstablishBuildEnvironment (org.gradle.launcher.daemon.server.exec)
execute:37, BuildCommandOnly (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
run:52, StartBuildOrRespondWithBusy$1 (org.gradle.launcher.daemon.server.exec)
run:297, DaemonStateCoordinator$1 (org.gradle.launcher.daemon.server)
onExecute:64, ExecutorPolicy$CatchAndRecordFailures (org.gradle.internal.concurrent)
run:48, ManagedExecutorImpl$1 (org.gradle.internal.concurrent)
runWorker:1128, ThreadPoolExecutor (java.util.concurrent)
run:628, ThreadPoolExecutor$Worker (java.util.concurrent)
run:829, Thread (java.lang)

in configuration cached run, it seems that it only ever has 2 BuildCacheServiceRegistration objects

image

this makes me thing that gradle does not restore something when loading from configuration cache.

@bamboo bamboo self-assigned this Apr 19, 2022
@bamboo
Copy link
Member

bamboo commented Apr 19, 2022

@liutikas your assumption is correct, currently only the local and remote build cache configurations are restored from the cache:

The registrations set would also need to be restored from the cache.

Would you like to take a stab at it?

@mathjeff
Copy link
Contributor

Oh nice - thanks!

Following this advice I started a prototype fix at mathjeff@9a35cda and it appears to be working; maybe the next thing to do is to clean it up and make a pull request

@vlsi
Copy link
Contributor

vlsi commented Apr 23, 2022

I just checked that Gradle 7.5-20220421031748+0000 resolves burrunan/gradle-s3-build-cache#16

vlsi added a commit to burrunan/gradle-s3-build-cache that referenced this issue Apr 23, 2022
The previous test did not trigger "reuse configuration cache"
since the set of tasks on second execution was different.

https://docs.gradle.org/current/userguide/configuration_cache.html
gradle/gradle#14874
@bamboo
Copy link
Member

bamboo commented Apr 25, 2022

Thanks, @vlsi!

@pytdata
Copy link

pytdata commented Jul 16, 2022

This Error brought me here.

Could not initialize class org.gradle.configurationcache.problems.Summary

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment