diff --git a/changelog/unreleased/share-jail-cache.md b/changelog/unreleased/share-jail-cache.md new file mode 100644 index 00000000000..7890cccb9fb --- /dev/null +++ b/changelog/unreleased/share-jail-cache.md @@ -0,0 +1,5 @@ +Bugfix: Disable storageprovider cache for the share jail + +The share jail should not be cached in the provider cache because it is a virtual collection of resources from different storage providers. + +https://github.com/cs3org/reva/pull/2784 diff --git a/internal/grpc/services/gateway/storageprovidercache.go b/internal/grpc/services/gateway/storageprovidercache.go index 261810088f7..efa4487d2ae 100644 --- a/internal/grpc/services/gateway/storageprovidercache.go +++ b/internal/grpc/services/gateway/storageprovidercache.go @@ -184,8 +184,8 @@ func (c *cachedRegistryClient) ListStorageProviders(ctx context.Context, in *reg storageID := sdk.DecodeOpaqueMap(in.Opaque)["storage_id"] - key := user.GetId().GetOpaqueId() + storageID - if key != "" { + key := user.GetId().GetOpaqueId() + "!" + storageID + if key != "!" { s := ®istry.ListStorageProvidersResponse{} if err := pullFromCache(cache, key, s); err == nil { return s, nil @@ -200,6 +200,8 @@ func (c *cachedRegistryClient) ListStorageProviders(ctx context.Context, in *reg return resp, nil case storageID == "": return resp, nil + case storageID == utils.ShareStorageProviderID: + return resp, nil default: return resp, pushToCache(cache, key, resp) }