From 7f31a719036af8f6912032860f64f5169a87852f Mon Sep 17 00:00:00 2001 From: mole Date: Wed, 26 Nov 2025 12:35:15 +0100 Subject: [PATCH 1/2] Await rebuilds and fix multiple open DataReaders --- .../Cache/Refreshers/Implement/ContentTypeCacheRefresher.cs | 4 ++-- .../Cache/Refreshers/Implement/DataTypeCacheRefresher.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Cache/Refreshers/Implement/ContentTypeCacheRefresher.cs b/src/Umbraco.Core/Cache/Refreshers/Implement/ContentTypeCacheRefresher.cs index fc898e1be321..831520c4a951 100644 --- a/src/Umbraco.Core/Cache/Refreshers/Implement/ContentTypeCacheRefresher.cs +++ b/src/Umbraco.Core/Cache/Refreshers/Implement/ContentTypeCacheRefresher.cs @@ -136,8 +136,8 @@ public override void Refresh(JsonPayload[] payloads) IEnumerable documentTypeIds = payloads.Where(x => x.ItemType == nameof(IContentType)).Select(x => x.Id); IEnumerable mediaTypeIds = payloads.Where(x => x.ItemType == nameof(IMediaType)).Select(x => x.Id); - _documentCacheService.RebuildMemoryCacheByContentTypeAsync(documentTypeIds); - _mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds); + _documentCacheService.RebuildMemoryCacheByContentTypeAsync(documentTypeIds).GetAwaiter().GetResult(); + _mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds).GetAwaiter().GetResult(); }); // now we can trigger the event diff --git a/src/Umbraco.Core/Cache/Refreshers/Implement/DataTypeCacheRefresher.cs b/src/Umbraco.Core/Cache/Refreshers/Implement/DataTypeCacheRefresher.cs index 101be3d0ac57..dcc53e37f381 100644 --- a/src/Umbraco.Core/Cache/Refreshers/Implement/DataTypeCacheRefresher.cs +++ b/src/Umbraco.Core/Cache/Refreshers/Implement/DataTypeCacheRefresher.cs @@ -120,7 +120,7 @@ public override void Refresh(JsonPayload[] payloads) IEnumerable mediaTypeIds = removedContentTypes .Where(x => x.ItemType == PublishedItemType.Media) .Select(x => x.Id); - _mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds); + _mediaCacheService.RebuildMemoryCacheByContentTypeAsync(mediaTypeIds).GetAwaiter().GetResult(); }); base.Refresh(payloads); } From e644d2666d97aad78a746c848bbb112327473be5 Mon Sep 17 00:00:00 2001 From: mole Date: Wed, 26 Nov 2025 13:17:01 +0100 Subject: [PATCH 2/2] Add additional missing awaits --- .../Cache/Refreshers/Implement/ContentCacheRefresher.cs | 4 ++-- .../Cache/Refreshers/Implement/MediaCacheRefresher.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Core/Cache/Refreshers/Implement/ContentCacheRefresher.cs b/src/Umbraco.Core/Cache/Refreshers/Implement/ContentCacheRefresher.cs index b1307ef1e8bb..6c626efb2c5e 100644 --- a/src/Umbraco.Core/Cache/Refreshers/Implement/ContentCacheRefresher.cs +++ b/src/Umbraco.Core/Cache/Refreshers/Implement/ContentCacheRefresher.cs @@ -265,8 +265,8 @@ private void HandleNavigation(JsonPayload payload) if (payload.ChangeTypes.HasType(TreeChangeTypes.RefreshAll)) { - _documentNavigationManagementService.RebuildAsync(); - _documentNavigationManagementService.RebuildBinAsync(); + _documentNavigationManagementService.RebuildAsync().GetAwaiter().GetResult(); + _documentNavigationManagementService.RebuildBinAsync().GetAwaiter().GetResult(); } if (payload.Key is null) diff --git a/src/Umbraco.Core/Cache/Refreshers/Implement/MediaCacheRefresher.cs b/src/Umbraco.Core/Cache/Refreshers/Implement/MediaCacheRefresher.cs index 45af4d2c8f56..f54c78de1b7a 100644 --- a/src/Umbraco.Core/Cache/Refreshers/Implement/MediaCacheRefresher.cs +++ b/src/Umbraco.Core/Cache/Refreshers/Implement/MediaCacheRefresher.cs @@ -194,8 +194,8 @@ private void HandleNavigation(JsonPayload payload) if (payload.ChangeTypes.HasType(TreeChangeTypes.RefreshAll)) { - _mediaNavigationManagementService.RebuildAsync(); - _mediaNavigationManagementService.RebuildBinAsync(); + _mediaNavigationManagementService.RebuildAsync().GetAwaiter().GetResult(); + _mediaNavigationManagementService.RebuildBinAsync().GetAwaiter().GetResult(); } if (payload.ChangeTypes.HasType(TreeChangeTypes.RefreshNode))