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

Failing to build a pipeline from a config. file results shows "processor already running" in logs #1852

Open
hariso opened this issue Sep 16, 2024 · 2 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@hariso
Copy link
Contributor

hariso commented Sep 16, 2024

Bug description

failed to start pipeline: could not build nodes for pipeline test-pipeline: could not build source nodes: could not build processor nodes for connector test-pipeline:test-connector: processor already running

Steps to reproduce

  1. Specify an older version of a built-in connector in a pipeline config file, e.g. builtin:[email protected]
  2. Run pipeline

Version

v0.11.1

@hariso hariso added bug Something isn't working triage Needs to be triaged labels Sep 16, 2024
@hariso hariso changed the title Specifying a version for a built-in connector in pipeline config. files results in a strange error Failing to build a pipeline from a config. file results shows "processor already running" in logs Sep 17, 2024
@hariso
Copy link
Contributor Author

hariso commented Sep 17, 2024

Before the error above, the following error can be seen:

"pipeline \"test-pipeline-builtin-processor\", error while provisioning: could not start the pipeline \"test-pipeline-builtin-processor\": could not build nodes for pipeline test-pipeline-builtin-processor: could not build destination nodes: failed to get plugin dispenser: could not find builtin plugin \"builtin:[email protected]\", only found versions [v0.7.0 latest]: plugin not found"

After debugging the issue, I found it actually comes to "processor already running":

  1. Conduit loads a functioning pipeline from a configuration file. The pipeline is also saved to the database.
  2. Conduit is stopped.
  3. Invalid changes are made to the pipeline configuration file (e.g. an invalid destination plugin version).
  4. Conduit is started again.
  5. The provisioning service tries running the pipeline that's in the configuration file.
  6. Firstly, the source nodes are built, then the processor nodes, and then the destination nodes.
  7. Building the destination nodes fails (because the plugin doesn't exist).
  8. The processor nodes have already been built (this will become important later).
  9. The pipeline cannot be run, and the provisioning service is done with its work.
  10. After that, the pipeline service runs, and tries running the pipelines in the database.
  11. The pipeline service tries to run the same pipeline from above.
  12. The processor nodes have already been built, so it fails because the processor is already running.

Here I believe we have two issues:

  1. Nodes are not properly cleaned up when a pipeline cannot be built.
  2. The pipeline service tries to re-run the pipelines that the provisioning already tried running.

@lovromazgon lovromazgon moved this from Triage to Todo in Conduit Main Sep 30, 2024
@lovromazgon lovromazgon removed the triage Needs to be triaged label Sep 30, 2024
@lovromazgon lovromazgon added this to the Next milestone Sep 30, 2024
@AdamHaffar AdamHaffar self-assigned this Oct 16, 2024
@AdamHaffar AdamHaffar moved this from Todo to In Progress in Conduit Main Oct 16, 2024
@AdamHaffar
Copy link
Contributor

If I am not mistaken, its seems as thought the latest build solves "processor already running". I will have a look at point 2.

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
Status: In Progress
Development

No branches or pull requests

3 participants