-
Notifications
You must be signed in to change notification settings - Fork 875
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
MultiOperation handler refactoring #7025
Conversation
// Workflow was already started ... | ||
if runningWorkflowLease != nil { | ||
if err = mo.allowUpdateWorkflow(ctx, runningWorkflowLease, conflictPolicy); err != nil { | ||
runningWorkflowLease.GetReleaseFn()(nil) // nil since nothing was modified |
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.
Moved the release here; and made allowUpdateWorkflow
free of locking concerns.
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.
Because of partial changes, it is hard for me to track all locks and if they are accrued/released properly here. I hope you have tests for it and I will do another pass once you merge it.
type ( | ||
multiOp struct { | ||
shardContext shard.Context | ||
namespaceId string |
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.
Can you use namespace.ID
instead of string
here? I am using it everywhere where possible (where it doesn't make cycle dependencies). Even if you will need to convert it back and forth, it is better to have parameters and fields types more specific if possible.
I believe all paths have a test covering them. Let me run the tests again with code coverage. |
What changed?
Refactored MultiOperation handler. Based on #7018.
Why?
Code hygiene.
How did you test it?
Existing tests. There are no (intended) behavior changes.
Potential risks
Documentation
Is hotfix candidate?