From e262361237bc6328f9792d9b652bcac9f4ad0075 Mon Sep 17 00:00:00 2001 From: Ahmed Yasin Koculu Date: Thu, 18 Aug 2022 22:57:43 +0200 Subject: [PATCH] Adds logs for silent exceptions thrown in tasks. --- src/ZoneTree/Segments/MutableSegment.cs | 17 ++++++++++++----- .../WAL/CompressedFileSystemWriteAheadLog.cs | 9 ++++++++- src/ZoneTree/WAL/FileSystemWriteAheadLog.cs | 9 ++++++++- src/ZoneTree/WAL/LazyFileSystemWriteAheadLog.cs | 12 +++++++++--- 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/ZoneTree/Segments/MutableSegment.cs b/src/ZoneTree/Segments/MutableSegment.cs index ef7e964..465850c 100644 --- a/src/ZoneTree/Segments/MutableSegment.cs +++ b/src/ZoneTree/Segments/MutableSegment.cs @@ -166,14 +166,21 @@ public class MutableSegment : IMutableSegment Task.Factory.StartNew(FreezeWriteAheadLog); } - private void FreezeWriteAheadLog() + void FreezeWriteAheadLog() { - while (WritesInProgress > 0) + try { - Thread.Yield(); + while (WritesInProgress > 0) + { + Thread.Yield(); + } + WriteAheadLog.MarkFrozen(); + BTree.SetTreeReadOnlyAndLockFree(); + } + catch(Exception e) + { + Options.Logger.LogError(e); } - WriteAheadLog.MarkFrozen(); - BTree.SetTreeReadOnlyAndLockFree(); } public void Drop() diff --git a/src/ZoneTree/WAL/CompressedFileSystemWriteAheadLog.cs b/src/ZoneTree/WAL/CompressedFileSystemWriteAheadLog.cs index dd49d5d..95591ba 100644 --- a/src/ZoneTree/WAL/CompressedFileSystemWriteAheadLog.cs +++ b/src/ZoneTree/WAL/CompressedFileSystemWriteAheadLog.cs @@ -254,7 +254,14 @@ public sealed class CompressedFileSystemWriteAheadLog : IWriteAhea { Task.Run(() => { - FileStream.Dispose(); + try + { + FileStream.Dispose(); + } + catch(Exception e) + { + Logger.LogError(e); + } }); } diff --git a/src/ZoneTree/WAL/FileSystemWriteAheadLog.cs b/src/ZoneTree/WAL/FileSystemWriteAheadLog.cs index f5d3633..1190c4a 100644 --- a/src/ZoneTree/WAL/FileSystemWriteAheadLog.cs +++ b/src/ZoneTree/WAL/FileSystemWriteAheadLog.cs @@ -268,7 +268,14 @@ public sealed class FileSystemWriteAheadLog : IWriteAheadLog { - Dispose(); + try + { + Dispose(); + } + catch (Exception e) + { + Logger.LogError(e); + } }); } diff --git a/src/ZoneTree/WAL/LazyFileSystemWriteAheadLog.cs b/src/ZoneTree/WAL/LazyFileSystemWriteAheadLog.cs index ebb4c35..faa08bb 100644 --- a/src/ZoneTree/WAL/LazyFileSystemWriteAheadLog.cs +++ b/src/ZoneTree/WAL/LazyFileSystemWriteAheadLog.cs @@ -310,9 +310,15 @@ public sealed class LazyFileSystemWriteAheadLog : IWriteAheadLog { - StopWriter(true); - FileStream.WriteTail(); - FileStream.Dispose(); + try + { + StopWriter(true); + FileStream.Dispose(); + } + catch (Exception e) + { + Logger.LogError(e); + } }); }