[#57] api: Clean up List and Name caches when object is missing in Tree service #71
Labels
No labels
P0
P1
P2
P3
good first issue
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-s3-gw#71
Loading…
Reference in a new issue
No description provided.
Delete branch "ironbee/frostfs-s3-gw:clean-up-cache-when-object-is-missing"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@ -549,6 +549,10 @@ func (n *layer) deleteObject(ctx context.Context, bkt *data.BucketInfo, settings
if len(obj.VersionID) != 0 || settings.Unversioned() {
var nodeVersion *data.NodeVersion
if nodeVersion, obj.Error = n.getNodeVersionToDelete(ctx, bkt, obj); obj.Error != nil {
if errors.IsS3Error(obj.Error, errors.ErrNoSuchKey) {
Maybe we can move this to
dismissNotFoundError
?And make it
3f8a47c6d7
to52094d2f2d
If we want to handle the case when object is lost by node rather than by tree we have to add similar (to
handleNotFoundError
) function here and hereI tested the scenario when blobstore is deleted rather than the pilorama. It went as expected: both object and bucket got deleted successfully.
If I did everything right:
s3-gw caches config:
I didn't use frostfs-cli to delete the object. Used the aws cli instead.
Will check this scenario then.
@ironbee @dkirillov By the way, API doesn't say that
object.Delete
operation may return2052 object already removed
code. So I made an issue on that: TrueCloudLab/frostfs-node#197Regardless of the issue, let's process
2052 object already removed
error as well in next S3 gateway release.Actually, to delete bucket when we not found object in object service, we have to update listing (to skip objects that exist only in tree service) or delete object from tree service.
@ironbee Please, rebase this PR
52094d2f2d
tofb99b26209