diff --git a/src/Marten/Events/Daemon/Coordination/MultiTenantedProjectionDistributor.cs b/src/Marten/Events/Daemon/Coordination/MultiTenantedProjectionDistributor.cs index 10b730c64e..1826902819 100644 --- a/src/Marten/Events/Daemon/Coordination/MultiTenantedProjectionDistributor.cs +++ b/src/Marten/Events/Daemon/Coordination/MultiTenantedProjectionDistributor.cs @@ -68,7 +68,15 @@ public async Task ReleaseAllLocks() { foreach (var @lock in _locks) { - await @lock.DisposeAsync().ConfigureAwait(false); + try + { + await @lock.DisposeAsync().ConfigureAwait(false); + } + catch (Exception) + { + // Need to swallow shutdown failures. It's from the advisory locks hanging + // in test harnesses + } } _locks.ClearAll(); diff --git a/src/Marten/Events/Daemon/Coordination/SingleTenantProjectionDistributor.cs b/src/Marten/Events/Daemon/Coordination/SingleTenantProjectionDistributor.cs index 7a50efada4..c90027bd3b 100644 --- a/src/Marten/Events/Daemon/Coordination/SingleTenantProjectionDistributor.cs +++ b/src/Marten/Events/Daemon/Coordination/SingleTenantProjectionDistributor.cs @@ -86,7 +86,14 @@ public async Task ReleaseAllLocks() { foreach (var @lock in _locks) { - await @lock.DisposeAsync().ConfigureAwait(false); + try + { + await @lock.DisposeAsync().ConfigureAwait(false); + } + catch (Exception) + { + // We need to swallow any exceptions here + } } _locks.ClearAll();