Skip to content

IllegalArgumentException when deleting the primary of a dependent resource with activation condition #2221

Closed
@Javatar81

Description

@Javatar81

Bug Report

ERROR [io.jav.ope.pro.eve.ReconciliationDispatcher] (ReconcilerExecutor-projectreconciler-350) Error during event processing ExecutionScope{ resource id: ResourceID{name='testproj', namespace='bschmeli-devjoy-test'}, version: 5000703288} failed.: io.javaoperatorsdk.operator.OperatorException: io.javaoperatorsdk.operator.OperatorException: io.javaoperatorsdk.operator.AggregatedOperatorException: Exception(s) during workflow execution. Details:

  • io.devjoy.operator.project.k8s.deploy.ApplicationDependentResource -> java.lang.IllegalArgumentException: There is no event source found for class:io.devjoy.operator.project.k8s.deploy.Application
    at io.javaoperatorsdk.operator.processing.event.EventSources.get(EventSources.java:127)
    at io.javaoperatorsdk.operator.processing.event.EventSourceManager.getResourceEventSourceFor(EventSourceManager.java:273)
    at io.javaoperatorsdk.operator.api.reconciler.DefaultContext.getSecondaryResource(DefaultContext.java:59)
    at io.javaoperatorsdk.operator.api.reconciler.Context.getSecondaryResource(Context.java:20)
    at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.getSecondaryResource(AbstractDependentResource.java:92)
    at io.javaoperatorsdk.operator.processing.dependent.SingleDependentResourceReconciler.delete(SingleDependentResourceReconciler.java:24)
    at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.delete(AbstractDependentResource.java:153)
    at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowCleanupExecutor$CleanupExecutor.doRun(WorkflowCleanupExecutor.java:75)
    at io.javaoperatorsdk.operator.processing.dependent.workflow.NodeExecutor.run(NodeExecutor.java:22)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1623)
    at io.javaoperatorsdk.operator.processing.Controller.cleanup(Controller.java:212)
    at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleCleanup(ReconciliationDispatcher.java:294)
    at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleDispatch(ReconciliationDispatcher.java:89)
    at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleExecution(ReconciliationDispatcher.java:64)
    at io.javaoperatorsdk.operator.processing.event.EventProcessor$ReconcilerExecutor.run(EventProcessor.java:417)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1623)

What did you do?

I created a dependent resource extending CRUDNoGCKubernetesDependentResource. In addition, I defined an activationCondition for the dependent resource. The resource condition is always true.

I delete the primary resource.

What did you expect to see?

The primary resource should be deleted, the dependent should not be deleted (because not garbage collected).

What did you see instead? Under which circumstances?

The primary resource is stuck in deleting state and I get the exception mentioned above.

Environment

Kubernetes cluster type:

OpenShift 4.13.26

$ Mention java-operator-sdk version from pom.xml file

4.6.1

$ java -version

openjdk version "20.0.1" 2023-04-18
OpenJDK Runtime Environment Temurin-20.0.1+9 (build 20.0.1+9)
OpenJDK 64-Bit Server VM Temurin-20.0.1+9 (build 20.0.1+9, mixed mode)

$ kubectl version

Client Version: v1.28.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.26.11+7dfc52e

Possible Solution

No

Additional context

No

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions