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

fix(core): Handle cancellation of waiting executions correctly #13051

Merged
merged 5 commits into from
Feb 7, 2025

Conversation

netroy
Copy link
Member

@netroy netroy commented Feb 4, 2025

Summary

In #12806 we stopped removing waiting executions from ActiveExecutions to be able to handle the response promises correctly. This has however led to a new issue where cancellation of waiting executions doesn't remove the execution from ActiveExecutions, which also prevents n8n from shutting down cleanly.

Related Linear tickets, Github issues, and Community forum posts

CAT-545

Review / Merge checklist

  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)

Copy link

codecov bot commented Feb 4, 2025

Codecov Report

Attention: Patch coverage is 94.28571% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...cli/src/concurrency/concurrency-control.service.ts 75.00% 1 Missing ⚠️
packages/cli/src/webhooks/webhook-helpers.ts 0.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@n8n-assistant n8n-assistant bot added core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Feb 4, 2025
@netroy netroy force-pushed the shutdown-with-waiting-executions branch from da9f95c to ed009e1 Compare February 4, 2025 16:16
Copy link
Collaborator

@tomi tomi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple (minor) comments, but mainly looks good

packages/cli/src/active-executions.ts Show resolved Hide resolved
packages/cli/src/active-executions.ts Outdated Show resolved Hide resolved
packages/cli/src/active-executions.ts Show resolved Hide resolved
let count = 0;
let executionIds = Object.keys(this.activeExecutions);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What if new executions end up in the active executions between when we cancel them and we start waiting for them? I guess those never get cancelled?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we already have some mechanisms to prevent that from happening, but we still might need more checks. however, that's not a problem specific to this PR, right?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. I'm just pointing out potential issues we have in the current implementation

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we add a isShutingDown flag here, like we have on a couple of other services?

Copy link
Contributor

@michael-radency michael-radency left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

github-actions bot commented Feb 7, 2025

✅ All Cypress E2E specs passed

Copy link

cypress bot commented Feb 7, 2025

n8n    Run #9186

Run Properties:  status check passed Passed #9186  •  git commit 37bb64944e: 🌳 🖥️ browsers:node18.12.0-chrome107 🤖 netroy 🗃️ e2e/*
Project n8n
Branch Review shutdown-with-waiting-executions
Run status status check passed Passed #9186
Run duration 04m 33s
Commit git commit 37bb64944e: 🌳 🖥️ browsers:node18.12.0-chrome107 🤖 netroy 🗃️ e2e/*
Committer कारतोफ्फेलस्क्रिप्ट™
View all properties for this run ↗︎

Test results
Tests that failed  Failures 0
Tests that were flaky  Flaky 1
Tests that did not run due to a developer annotating a test with .skip  Pending 5
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 434
View all changes introduced in this branch ↗︎

@netroy netroy merged commit fc440eb into master Feb 7, 2025
50 checks passed
@netroy netroy deleted the shutdown-with-waiting-executions branch February 7, 2025 11:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants