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
Config file updates are not synchronized, and when performed concurrently on the same file, data corruption can occur.
In most update flows, an object (e.g., a bucket) is read from the config file, then modified, and the complete object is sent to update the config file.
When two such updates occur concurrently, such that both updates read the old data, each modify a different property, and then both attempt to write, the second write will override the first write changes.
a concrete example of two bucket update flows:
put bucket tagging:
Environment info
Actual behavior
Config file updates are not synchronized, and when performed concurrently on the same file, data corruption can occur.
In most update flows, an object (e.g., a bucket) is read from the config file, then modified, and the complete object is sent to update the config file.
When two such updates occur concurrently, such that both updates read the old data, each modify a different property, and then both attempt to write, the second write will override the first write changes.
a concrete example of two bucket update flows:
put bucket tagging:
noobaa-core/src/sdk/bucketspace_fs.js
Lines 435 to 445 in 8961f1d
put bucket encryption:
noobaa-core/src/sdk/bucketspace_fs.js
Lines 526 to 537 in 8961f1d
let's take a look at this sequence for example:
bucket.tag
and updates the bucket config files (lines 440-441)bucket.encryption
and updates the bucket files (lines 531-533) with data that doesn't have thebucket.tag
that was set in step 3.Expected behavior
Steps to reproduce
More information - Screenshots / Logs / Other output
The text was updated successfully, but these errors were encountered: