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

gradle k8sBuild on a quarkus project is failing with java.util.ConcurrentModificationException #1136

Closed
sunix opened this issue Nov 22, 2021 · 5 comments · Fixed by #1152
Closed
Assignees
Labels
bug Something isn't working
Milestone

Comments

@sunix
Copy link
Member

sunix commented Nov 22, 2021

Description

Info

  • Eclipse JKube version : 1.5.1 or 1.6.0-SNAPSHOT

  • Gradle version: gradlew (provided) 7.3

  • If it's a bug, how to reproduce :

  1. create a new gradle Quarkus project from https://code.quarkus.io/
  2. add to build.gradle
     id 'org.eclipse.jkube.kubernetes' version '1.5.1'
    
  3. run
    ./gradlew k8sBuild --info --stacktrace
    
  4. it fails with
     > Task :k8sBuild FAILED
     Caching disabled for task ':k8sBuild' because:
       Build cache is disabled
     Task ':k8sBuild' is not up-to-date because:
       Task has not declared any outputs despite executing actions.
     :k8sBuild (Thread[Execution worker for ':',5,main]) completed. Took 0.477 secs.
    
     FAILURE: Build failed with an exception.
    
     * What went wrong:
     Execution failed for task ':k8sBuild'.
     > java.util.ConcurrentModificationException (no error message)
    
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':k8sBuild'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:145)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:143)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:131)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
        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.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:402)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:389)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:382)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:368)
        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:61)
Caused by: java.util.ConcurrentModificationException
        at org.gradle.api.internal.DefaultDomainObjectCollection$IteratorImpl.next(DefaultDomainObjectCollection.java:475)
        at org.eclipse.jkube.gradle.plugin.GradleUtil.extractDependencies(GradleUtil.java:138)
        at org.eclipse.jkube.gradle.plugin.GradleUtil.extractDependencies(GradleUtil.java:105)
        at org.eclipse.jkube.gradle.plugin.GradleUtil.convertGradleProject(GradleUtil.java:74)
        at org.eclipse.jkube.gradle.plugin.task.AbstractJKubeTask.runTask(AbstractJKubeTask.java:66)
@rohanKanojia
Copy link
Member

What happens when you set a breakpoint here? Could it be due to the way we're extracting dependencies?

https://github.com/eclipse/jkube/blob/ab423e19c5945524ca6ff3f2dc4896546961eb8c/gradle-plugin/kubernetes/src/main/java/org/eclipse/jkube/gradle/plugin/GradleUtil.java#L138

@manusa
Copy link
Member

manusa commented Nov 22, 2021

That's odd, but that code is doing lot's of stuff and manipulating several lists. It might be colliding with something Quarkus is doing.

@manusa manusa added this to the 1.6.0 milestone Nov 22, 2021
@manusa manusa added the bug Something isn't working label Nov 22, 2021
@sunix
Copy link
Member Author

sunix commented Nov 22, 2021

What happens when you set a breakpoint here? Could it be due to the way we're extracting dependencies?

https://github.com/eclipse/jkube/blob/ab423e19c5945524ca6ff3f2dc4896546961eb8c/gradle-plugin/kubernetes/src/main/java/org/eclipse/jkube/gradle/plugin/GradleUtil.java#L138

That part is tricky to debug with the stream api.

@manusa
Copy link
Member

manusa commented Nov 22, 2021

Don't worry, I'll try to take a look tomorrow first thing.
That piece of code is doing too many things.

@manusa manusa self-assigned this Nov 23, 2021
@sunix
Copy link
Member Author

sunix commented Nov 23, 2021

maybe this will help: it is OK if I ignore quarkusDev
Selection_564

@manusa manusa assigned sunix and unassigned manusa Nov 23, 2021
sunix added a commit to sunix/jkube that referenced this issue Nov 29, 2021
…ing gradle k8sBuild on Quarkus sample

Signed-off-by: Sun Tan <sutan@redhat.com>
sunix added a commit to sunix/jkube that referenced this issue Nov 29, 2021
Signed-off-by: Sun Tan <sutan@redhat.com>
sunix added a commit to sunix/jkube that referenced this issue Nov 29, 2021
…ing gradle k8sBuild on Quarkus sample

Signed-off-by: Sun Tan <sutan@redhat.com>
sunix added a commit to sunix/jkube that referenced this issue Nov 29, 2021
Signed-off-by: Sun Tan <sutan@redhat.com>
sunix added a commit to sunix/jkube that referenced this issue Nov 29, 2021
…ing gradle k8sBuild on Quarkus sample

Signed-off-by: Sun Tan <sutan@redhat.com>
sunix added a commit to sunix/jkube that referenced this issue Nov 29, 2021
Signed-off-by: Sun Tan <sutan@redhat.com>
manusa pushed a commit that referenced this issue Nov 30, 2021
…sBuild on Quarkus sample

Signed-off-by: Sun Tan <sutan@redhat.com>
manusa pushed a commit that referenced this issue Nov 30, 2021
Signed-off-by: Sun Tan <sutan@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
3 participants