Skip to content
This repository was archived by the owner on Sep 2, 2022. It is now read-only.
This repository was archived by the owner on Sep 2, 2022. It is now read-only.

Concurrent reconcile calls #427

Open
@shashken

Description

@shashken

In the setup of the Reconciler We use multiple 'For' and 'Owns' from the controller-runtime package.

I think this is causing a behavior (not sure if strange or by design) when reconcile is called for every change/event in those components.

I think this is causing the reconcile to run for every change, and every time reconcile is called its returning a Requeue result that makes the reconcile function run again, this causes the reconcile function to have an increasing number of concurrent runs (every time its triggered by a change it will keep running due to the requeue result).

I saw this when running the operator with a job for some time when I see a lot of duplicates in the log lines for the job.
The impact I saw (which led me to investigate this) was to the savepoint triggers, Now it makes sense for me why I saw multiple SPs triggered simultaneously (And in my PR i actually mitigated the symptom and not the root cause).

I would really appreciate some feedback here as my go background is not as strong as the other languages and especially the usage of the https://github.com/kubernetes-sigs/controller-runtime package.
@functicons
@elanv this might help with your current effort. #420

Metadata

Metadata

Assignees

No one assigned

    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