-
Notifications
You must be signed in to change notification settings - Fork 181
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
Add env variable for gocsi lock contention #665
Conversation
@RaunakShah Can you fix the commit history for this PR? |
5426a16
to
8442e76
Compare
jtest block-vanilla |
jtest file-vanilla |
Started Vanilla block pipeline... |
Started vanilla file pipeline... |
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.
/approve
@RaunakShah After the E2E test run, can you check if the pipeline used the yaml as per this PR? |
|
Started Vanilla block pipeline... |
|
8442e76
to
7007367
Compare
Started vanilla file pipeline... |
|
Started vanilla file pipeline... |
|
|
Started vanilla file pipeline... |
|
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: divyenpatel, RaunakShah The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What this PR does / why we need it:
This PR adds a gocsi env variable that helps avoid a lock contention scenario for same volume id.
Currently, all gocsi callbacks use the same lock for a volumeID to serialize operations. If a particular thread fails to acquire the lock, it immediately returns an error
Aborted, pending
. By adding this env variable, that thread will attempt to acquire the lock for 3 minutes before returning. If the thread that holds the lock releases it in this time, the second thread will continue processing.Logs to prove lock contention exists and how adding this parameter solves it - https://gist.github.com/RaunakShah/e252aea6e81f1852983e032a0b28e16a
Which issue this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close that issue when PR gets merged): fixes #Special notes for your reviewer:
Release note: