-
Notifications
You must be signed in to change notification settings - Fork 179
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
Synchronisation issues #1737
Comments
@alebastrov This application is not meant to be used with massive parallel requests manipulating the same objects or buckets, but for integration testing services. APIs like |
Our tests are based on idea that some thread puts object to s3, another one reads/verifies whether it exists. Sometimes that scenario fails due to illegal response - object does not exist or put object on s3 fails |
are the threads putting / modifying the same resources over and over? |
yep. resources names are always the same and issue appears when NO parallel requests are coming |
please provide a reproducer for this. |
closing for lack of activity and evidence. |
there SHOULD be
var bucketMetadata = getBucketMetadata(bucketName); method is being called from sync and out of sync code which is weird, I'd call this method in all places FROM synchronization block
putObject - 2 operations (check + create) with 'bucketMetadata' leads to vulnerability time gap but they (couple of operations) entirely should be atomic (check&create at once)
consider of replacing them to atomic 'addIfAbsent(key, bucketName)' - in bucketStore it should be sync method
it's better to replace them to 'deleteIfExist(bucketName, id)'
The text was updated successfully, but these errors were encountered: