From a3963cd1af604cf3ebee00358382da2882a09bff Mon Sep 17 00:00:00 2001 From: Aaron Stannard Date: Sun, 26 May 2019 12:26:03 -0500 Subject: [PATCH] [SpecFix] working on fixing AtLeastOnceDeliveryCrashSpec (#3806) * #3786 - working on fixing AtLeastOnceDeliveryCrashSpec * fixed issue with SnapshotDirectoryFailureSpec.LocalSnapshotStore_configured_with_a_failing_directory * fixed Akka.Persistence.Tests.Actor_PipeTo_should_not_be_delayed_by_async_receive * looks like issue might be related to parallel execution and thread blocking * added logging for AtLeastOnceDelivery_must_tolerate_and_recover_from_random_failures --- .../AtLeastOnceDeliveryCrashSpec.cs | 5 +++-- .../AtLeastOnceDeliveryFailureSpec.cs | 5 +++-- .../Akka.Persistence.Tests/AtLeastOnceDeliverySpec.cs | 5 +++-- .../ReceivePersistentActorAsyncAwaitSpec.cs | 6 ++++-- .../SnapshotDirectoryFailureSpec.cs | 11 ++++++++--- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryCrashSpec.cs b/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryCrashSpec.cs index d7328280d28..4fc9989ab5d 100644 --- a/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryCrashSpec.cs +++ b/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryCrashSpec.cs @@ -10,6 +10,7 @@ using Akka.Event; using Akka.TestKit; using Xunit; +using Xunit.Abstractions; namespace Akka.Persistence.Tests { @@ -116,8 +117,8 @@ private void Send() #endregion - public AtLeastOnceDeliveryCrashSpec() - : base(PersistenceSpec.Configuration("AtLeastOnceDeliveryCrashSpec", serialization: "off")) + public AtLeastOnceDeliveryCrashSpec(ITestOutputHelper output) + : base(PersistenceSpec.Configuration("AtLeastOnceDeliveryCrashSpec", serialization: "off"), output) { } diff --git a/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryFailureSpec.cs b/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryFailureSpec.cs index 7f5aafc58eb..e4485f328b5 100644 --- a/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryFailureSpec.cs +++ b/src/core/Akka.Persistence.Tests/AtLeastOnceDeliveryFailureSpec.cs @@ -13,6 +13,7 @@ using Akka.Event; using Akka.TestKit; using Xunit; +using Xunit.Abstractions; namespace Akka.Persistence.Tests { @@ -331,8 +332,8 @@ private IActorRef CreateSender() internal const int NumberOfMessages = 10; - public AtLeastOnceDeliveryFailureSpec() - : base(FailureSpecConfig.WithFallback(Persistence.DefaultConfig())) + public AtLeastOnceDeliveryFailureSpec(ITestOutputHelper output) + : base(FailureSpecConfig.WithFallback(Persistence.DefaultConfig()), output) { } diff --git a/src/core/Akka.Persistence.Tests/AtLeastOnceDeliverySpec.cs b/src/core/Akka.Persistence.Tests/AtLeastOnceDeliverySpec.cs index fd98edbb0a1..1a9348837b9 100644 --- a/src/core/Akka.Persistence.Tests/AtLeastOnceDeliverySpec.cs +++ b/src/core/Akka.Persistence.Tests/AtLeastOnceDeliverySpec.cs @@ -13,6 +13,7 @@ using Akka.Event; using Akka.TestKit; using Xunit; +using Xunit.Abstractions; namespace Akka.Persistence.Tests { @@ -365,8 +366,8 @@ protected override bool ReceiveRecover(object message) #endregion - public AtLeastOnceDeliverySpec() - : base(Configuration("AtLeastOnceDeliverySpec")) + public AtLeastOnceDeliverySpec(ITestOutputHelper output) + : base(Configuration("AtLeastOnceDeliverySpec"), output) { } diff --git a/src/core/Akka.Persistence.Tests/ReceivePersistentActorAsyncAwaitSpec.cs b/src/core/Akka.Persistence.Tests/ReceivePersistentActorAsyncAwaitSpec.cs index a66957d72b1..cd544ade51c 100644 --- a/src/core/Akka.Persistence.Tests/ReceivePersistentActorAsyncAwaitSpec.cs +++ b/src/core/Akka.Persistence.Tests/ReceivePersistentActorAsyncAwaitSpec.cs @@ -574,13 +574,15 @@ public AsyncPipeToDelayActor(string persistenceId) CommandAsync(async msg => { + var sender = Sender; + var self = Self; Task.Run(() => { Thread.Sleep(10); return msg; - }).PipeTo(Sender, Self); //LogicalContext is lost?!? + }).PipeTo(sender, self); - Thread.Sleep(3000); + await Task.Delay(3000); }); } } diff --git a/src/core/Akka.Persistence.Tests/SnapshotDirectoryFailureSpec.cs b/src/core/Akka.Persistence.Tests/SnapshotDirectoryFailureSpec.cs index 937ee84618f..8a236d249e9 100644 --- a/src/core/Akka.Persistence.Tests/SnapshotDirectoryFailureSpec.cs +++ b/src/core/Akka.Persistence.Tests/SnapshotDirectoryFailureSpec.cs @@ -48,7 +48,7 @@ protected override bool ReceiveCommand(object message) } } - FileInfo file = new FileInfo(InUseSnapshotPath); + private readonly FileInfo _file = new FileInfo(InUseSnapshotPath); public SnapshotDirectoryFailureSpec() : base(Configuration("SnapshotDirectoryFailureSpec", extraConfig: "akka.persistence.snapshot-store.local.dir = \"" + InUseSnapshotPath + "\"")) @@ -58,12 +58,17 @@ public SnapshotDirectoryFailureSpec() : base(Configuration("SnapshotDirectoryFai protected override void AtStartup() { base.AtStartup(); - using (file.Create()) {} + try // try to create the directory first.d + { + _file.Directory.Create(); + } + catch { } + using (_file.Create()) {} } protected override void AfterTermination() { - file.Delete(); + _file.Delete(); base.AfterTermination(); }