-
Notifications
You must be signed in to change notification settings - Fork 7.7k
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): Remove circular dependency in WorkflowService and ActiveWorkflowRunner #8128
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just two spots where I'd like for Omar to confirm.
Tested on regular mode + sqlite and queue mode + postgres, works fine. (Original issue not locally reproducible though.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@ivov the workflow instance provided is the same in both scenarios, so it should be a reference to the same object meaning any changes should be always in place.
Passing run #3457 ↗︎
Details:
Review all test suite changes for PR #8128 ↗︎ |
✅ All Cypress E2E specs passed |
…rkflowRunner (#8128) A circular dependency between `WorkflowService` and `ActiveWorkflowRunner` is sometimes causing `this.activeWorkflowRunner` to be `undefined` in `WorkflowService`. Breaking this circular dependency should hopefully fix this issue. - [x] PR title and summary are descriptive - [ ] Tests included
## [1.22.1](https://github.com/n8n-io/n8n/compare/n8n@1.22.0...n8n@1.22.1) (2023-12-21) ### Bug Fixes * **core:** Handle empty executions table in pruning in migrations ([#8121](#8121)) ([6cbeb5d](6cbeb5d)) * **core:** Remove circular dependency in WorkflowService and ActiveWorkflowRunner ([#8128](#8128)) ([b8e72c4](b8e72c4)) * **editor**: Show public API upgrade CTA when feature is not enabled ([#8109](#8109)) ([fd27f73](fd27f73)) Co-authored-by: ivov <ivov@users.noreply.github.com>
Got released with |
* master: fix(editor): Prevent canvas undo/redo when NDV is open (#8118) fix(editor): Fix operation change failing in certain conditions (#8114) fix(Asana Node): Omit body from GET, HEAD, and DELETE requests (#8057) fix(Redis Trigger Node): Activating a workflow with a Redis trigger fails (#8129) refactor(Peekalink Node): Stricter typing for Peekalink api call + Tests (no-changelog) (#8125) fix(core): Remove circular dependency in WorkflowService and ActiveWorkflowRunner (#8128) fix: Show public API upgrade CTA when feature is not enabled (#8109) feat(Snowflake Node): Update snowflake-sdk (no-changelog) (#8087) fix(core): Handle empty executions table in pruning in migrations (#8121) feat(core): Add closeFunction support to Sub-Nodes (#7708) refactor(core): Move error execution creation to execution service (no-changelog) (#8006) ci: Add lint rule `no-dynamic-import-template` (no-changelog) (#8089) feat(core): Remove discontinued crypto-js (#8104) 🚀 Release 1.22.0 (#8115) fix(core): Prevent axios from force setting a form-urlencoded content-type (#8117) # Conflicts: # cypress/e2e/5-ndv.cy.ts
* master: feat(core): Unify application components shutdown (#8097) refactor(core): Upgrade more dependencies to remove axios 0.x (no-changelog) (#8105) refactor(core): Move active workflows endpoints to a decorated controller class (no-changelog) (#8101) fix(editor): Prevent canvas undo/redo when NDV is open (#8118) fix(editor): Fix operation change failing in certain conditions (#8114) fix(Asana Node): Omit body from GET, HEAD, and DELETE requests (#8057) fix(Redis Trigger Node): Activating a workflow with a Redis trigger fails (#8129) refactor(Peekalink Node): Stricter typing for Peekalink api call + Tests (no-changelog) (#8125) fix(core): Remove circular dependency in WorkflowService and ActiveWorkflowRunner (#8128) fix: Show public API upgrade CTA when feature is not enabled (#8109) feat(Snowflake Node): Update snowflake-sdk (no-changelog) (#8087) fix(core): Handle empty executions table in pruning in migrations (#8121) feat(core): Add closeFunction support to Sub-Nodes (#7708) refactor(core): Move error execution creation to execution service (no-changelog) (#8006) ci: Add lint rule `no-dynamic-import-template` (no-changelog) (#8089) feat(core): Remove discontinued crypto-js (#8104) 🚀 Release 1.22.0 (#8115) fix(core): Prevent axios from force setting a form-urlencoded content-type (#8117) feat(Respond to Webhook Node): Overhaul with improvements like returning all items (#8093)
* upstream/master: (32 commits) refactor(core): Move `typeorm` operators from `PruningService` to `ExecutionRepository` (no-changelog) (n8n-io#8145) refactor(core): Move more `typeorm` operators to repositories (no-changelog) (n8n-io#8143) refactor(core): Delete unused code, and fix typings in tests (no-changelog) (n8n-io#8142) docs: Improve documentation for the toTitleCase function (no-changelog) (n8n-io#8140) refactor(core): Move all base URLs to UrlService (no-changelog) (n8n-io#8141) feat(editor): Add template Id to workflow metadata (n8n-io#8088) fix(editor): Avoid sanitizing output to search node data (n8n-io#8126) fix(editor): Prevent browser zoom when scrolling inside sticky edit mode (n8n-io#8116) refactor(core): Move some `typeorm` operators to repositories (no-changelog) (n8n-io#8139) feat(editor): Add node execution status indicator to output panel (n8n-io#8124) feat(core): Unify application components shutdown (n8n-io#8097) refactor(core): Upgrade more dependencies to remove axios 0.x (no-changelog) (n8n-io#8105) refactor(core): Move active workflows endpoints to a decorated controller class (no-changelog) (n8n-io#8101) fix(editor): Prevent canvas undo/redo when NDV is open (n8n-io#8118) fix(editor): Fix operation change failing in certain conditions (n8n-io#8114) fix(Asana Node): Omit body from GET, HEAD, and DELETE requests (n8n-io#8057) fix(Redis Trigger Node): Activating a workflow with a Redis trigger fails (n8n-io#8129) refactor(Peekalink Node): Stricter typing for Peekalink api call + Tests (no-changelog) (n8n-io#8125) fix(core): Remove circular dependency in WorkflowService and ActiveWorkflowRunner (n8n-io#8128) fix: Show public API upgrade CTA when feature is not enabled (n8n-io#8109) ...
# [1.23.0](https://github.com/n8n-io/n8n/compare/n8n@1.22.0...n8n@1.23.0) (2024-01-03) ### Bug Fixes * **Asana Node:** Omit body from GET, HEAD, and DELETE requests ([#8057](#8057)) ([15ffd4f](15ffd4f)) * **core:** Better input validation for the changeRole endpoint ([#8189](#8189)) ([cfe9525](cfe9525)) * **core:** Fix issue that pinnedData is not used with Test-Webhooks ([#8123](#8123)) ([fa8bd8b](fa8bd8b)) * **core:** Handle empty executions table in pruning in migrations ([#8121](#8121)) ([ffaa30d](ffaa30d)) * **core:** Remove circular dependency in WorkflowService and ActiveWorkflowRunner ([#8128](#8128)) ([21788d9](21788d9)) * **core:** Use pinned data only for manual mode ([#8164](#8164)) ([ea7e76f](ea7e76f)) * **Discord Node:** Remove unnecessary requirement on parameters ([#8060](#8060)) ([ef3a577](ef3a577)) * **editor:** Avoid sanitizing output to search node data ([#8126](#8126)) ([c83d9f4](c83d9f4)) * **editor:** Enable explicit undo keyboard shortcut across all code editors ([#8178](#8178)) ([cf7f668](cf7f668)) * **editor:** Fix operation change failing in certain conditions ([#8114](#8114)) ([711fa2b](711fa2b)) * **editor:** Fix templates view layout ([#8196](#8196)) ([d01e42a](d01e42a)) * **editor:** Fix UI urls when hosted behind a path prefix ([#8198](#8198)) ([5c078f1](5c078f1)) * **editor:** Prevent browser zoom when scrolling inside sticky edit mode ([#8116](#8116)) ([e928210](e928210)) * **editor:** Prevent canvas undo/redo when NDV is open ([#8118](#8118)) ([39e45d8](39e45d8)) * **editor:** Prevent storing pairedItem data inside of pinData ([#8173](#8173)) ([405e267](405e267)) * **GitHub Node:** Fix issue that File->Get did not run once per item ([#8190](#8190)) ([11cda41](11cda41)) * **Invoice Ninja Node:** Fix issue with custom invoice numbers not working with v5 ([#8200](#8200)) ([3b6ae2d](3b6ae2d)) * **Microsoft Excel 365 Node:** Ensure arg is string during worksheet table search ([#8154](#8154)) ([8e873ca](8e873ca)) * **Notion Node:** Ensure arg is string during page ID extraction ([#8153](#8153)) ([e94b8a6](e94b8a6)) * **Redis Trigger Node:** Activating a workflow with a Redis trigger fails ([#8129](#8129)) ([a169b74](a169b74)) * **Schedule Trigger Node:** Use the correct `moment` import ([#8185](#8185)) ([17a4e2e](17a4e2e)) * Show public API upgrade CTA when feature is not enabled ([#8109](#8109)) ([e9c7fd7](e9c7fd7)) ### Features * **core:** Add closeFunction support to Sub-Nodes ([#7708](#7708)) ([bec0fae](bec0fae)) * **core:** Add user.profile.beforeUpdate hook ([#8144](#8144)) ([e126ed7](e126ed7)) * **core:** Improvements/overhaul for nodes working with binary data ([#7651](#7651)) ([5e16dd4](5e16dd4)) * **core:** Remove discontinued crypto-js ([#8104](#8104)) ([01e9a79](01e9a79)) * **core:** Unify application components shutdown ([#8097](#8097)) ([3a881be](3a881be)) * **editor:** Add node execution status indicator to output panel ([#8124](#8124)) ([ab74bad](ab74bad)) * **editor:** Add template Id to workflow metadata ([#8088](#8088)) ([517b050](517b050)) * **Home Assistant Node:** Use the new Home Assistant logo ([#8150](#8150)) ([518a99e](518a99e)) * **Qdrant Vector Store Node:** Qdrant vector store support ([#8080](#8080)) ([66460f6](66460f6)) * **Wordpress Node:** Add option to ignore error when using self signed certificates ([#8199](#8199)) ([65c8e12](65c8e12)) Co-authored-by: ivov <ivov@users.noreply.github.com>
Summary
A circular dependency between
WorkflowService
andActiveWorkflowRunner
is sometimes causingthis.activeWorkflowRunner
to beundefined
inWorkflowService
.Breaking this circular dependency should hopefully fix this issue.
Related tickets and issues
#8122
Review / Merge checklist