mirror of
https://github.com/minio/minio.git
synced 2025-04-17 17:30:07 -04:00
Clean up metadata cache when deleting bucket (#10802)
Metadata caches were left behind when deleting a bucket.
This commit is contained in:
parent
b686bb9c83
commit
422898d9b3
@ -128,6 +128,18 @@ func (m *metacacheManager) getBucket(ctx context.Context, bucket string) *bucket
|
|||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deleteBucketCache will delete the bucket cache if it exists.
|
||||||
|
func (m *metacacheManager) deleteBucketCache(bucket string) {
|
||||||
|
m.mu.Lock()
|
||||||
|
defer m.mu.Unlock()
|
||||||
|
b, ok := m.buckets[bucket]
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
b.deleteAll()
|
||||||
|
delete(m.buckets, bucket)
|
||||||
|
}
|
||||||
|
|
||||||
// deleteAll will delete all caches.
|
// deleteAll will delete all caches.
|
||||||
func (m *metacacheManager) deleteAll() {
|
func (m *metacacheManager) deleteAll() {
|
||||||
m.mu.Lock()
|
m.mu.Lock()
|
||||||
|
@ -675,6 +675,9 @@ func (sys *NotificationSys) LoadBucketMetadata(ctx context.Context, bucketName s
|
|||||||
// DeleteBucketMetadata - calls DeleteBucketMetadata call on all peers
|
// DeleteBucketMetadata - calls DeleteBucketMetadata call on all peers
|
||||||
func (sys *NotificationSys) DeleteBucketMetadata(ctx context.Context, bucketName string) {
|
func (sys *NotificationSys) DeleteBucketMetadata(ctx context.Context, bucketName string) {
|
||||||
globalBucketMetadataSys.Remove(bucketName)
|
globalBucketMetadataSys.Remove(bucketName)
|
||||||
|
if localMetacacheMgr != nil {
|
||||||
|
localMetacacheMgr.deleteBucketCache(bucketName)
|
||||||
|
}
|
||||||
|
|
||||||
ng := WithNPeers(len(sys.peerClients))
|
ng := WithNPeers(len(sys.peerClients))
|
||||||
for idx, client := range sys.peerClients {
|
for idx, client := range sys.peerClients {
|
||||||
|
@ -538,7 +538,9 @@ func (s *peerRESTServer) DeleteBucketMetadataHandler(w http.ResponseWriter, r *h
|
|||||||
}
|
}
|
||||||
|
|
||||||
globalBucketMetadataSys.Remove(bucketName)
|
globalBucketMetadataSys.Remove(bucketName)
|
||||||
w.(http.Flusher).Flush()
|
if localMetacacheMgr != nil {
|
||||||
|
localMetacacheMgr.deleteBucketCache(bucketName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadBucketMetadataHandler - reloads in memory bucket metadata
|
// LoadBucketMetadataHandler - reloads in memory bucket metadata
|
||||||
|
Loading…
x
Reference in New Issue
Block a user