You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 26, 2020. It is now read-only.
Volume create API requests holds lock on Volume name till the transaction complete. If bricks auto provisioning is enabled then parallel Volume create requests can choose same device and one request will fail if the space is not available during transaction.
Possible solution:
Before choosing the devices for creating the brick, hold lock on all devices.
Once the devices are selected, device available size will be updated by subtracting the to be allocated space. Along with this update, set a dirty flag with Volume name as identifier. Release lock on all devices after this(All the steps under the lock are in-memory or reading etcd data)
On success Transaction, remove dirty flag(with lock).
If Rollback is triggered, add available space again and clear dirty flag(with lock).
The text was updated successfully, but these errors were encountered:
Problem:
Volume create API requests holds lock on Volume name till the transaction complete. If bricks auto provisioning is enabled then parallel Volume create requests can choose same device and one request will fail if the space is not available during transaction.
Possible solution:
The text was updated successfully, but these errors were encountered: