diff --git a/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShard.cs b/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShard.cs index fc56ca72ff0..232a0cf014e 100644 --- a/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShard.cs +++ b/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShard.cs @@ -125,7 +125,7 @@ protected override bool ReceiveCommand(object message) DeleteSnapshots(new SnapshotSelectionCriteria(deleteTo, DateTime.MaxValue, deleteFrom)); break; case DeleteMessagesFailure m: - Log.Warning("PersistentShard messages to [{0}] deletion failure: [{1}]", m.ToSequenceNr, m.Cause.Message); + Log.Warning(m.Cause, "PersistentShard messages to [{0}] deletion failure: [{1}]", m.ToSequenceNr, m.Cause.Message); break; case DeleteSnapshotsSuccess m: Log.Debug("PersistentShard snapshots matching [{0}] deleted successfully", m.Criteria); diff --git a/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShardCoordinator.cs b/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShardCoordinator.cs index 35a9cbb555a..645e0a6c360 100644 --- a/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShardCoordinator.cs +++ b/src/contrib/cluster/Akka.Cluster.Sharding/PersistentShardCoordinator.cs @@ -1446,7 +1446,7 @@ private bool HandleSnapshotResult(object message) DeleteSnapshots(new SnapshotSelectionCriteria(m.ToSequenceNr - 1)); break; case DeleteMessagesFailure m: - Log.Warning("Persistent messages to {0} deletion failure: {1}", m.ToSequenceNr, m.Cause.Message); + Log.Warning(m.Cause, "Persistent messages to {0} deletion failure: {1}", m.ToSequenceNr, m.Cause.Message); break; case DeleteSnapshotsSuccess m: Log.Debug("Persistent snapshots matching {0} deleted successfully", m.Criteria); diff --git a/src/core/Akka.Persistence.TCK/Journal/JournalSpec.cs b/src/core/Akka.Persistence.TCK/Journal/JournalSpec.cs index c2d5a0d6237..7d0e3113e90 100644 --- a/src/core/Akka.Persistence.TCK/Journal/JournalSpec.cs +++ b/src/core/Akka.Persistence.TCK/Journal/JournalSpec.cs @@ -155,7 +155,7 @@ private AtomicWrite[] WriteMessages(int from, int to, string pid, IActorRef send } [Fact] - public void Journal_should_replay_all_messages() + public virtual void Journal_should_replay_all_messages() { Journal.Tell(new ReplayMessages(1, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref)); for (int i = 1; i <= 5; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -163,7 +163,7 @@ public void Journal_should_replay_all_messages() } [Fact] - public void Journal_should_replay_messages_using_a_lower_sequence_number_bound() + public virtual void Journal_should_replay_messages_using_a_lower_sequence_number_bound() { Journal.Tell(new ReplayMessages(3, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref)); for (int i = 3; i <= 5; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -171,7 +171,7 @@ public void Journal_should_replay_messages_using_a_lower_sequence_number_bound() } [Fact] - public void Journal_should_replay_messages_using_an_upper_sequence_number_bound() + public virtual void Journal_should_replay_messages_using_an_upper_sequence_number_bound() { Journal.Tell(new ReplayMessages(1, 3, long.MaxValue, Pid, _receiverProbe.Ref)); for (int i = 1; i <= 3; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -179,7 +179,7 @@ public void Journal_should_replay_messages_using_an_upper_sequence_number_bound( } [Fact] - public void Journal_should_replay_messages_using_a_count_limit() + public virtual void Journal_should_replay_messages_using_a_count_limit() { Journal.Tell(new ReplayMessages(1, long.MaxValue, 3, Pid, _receiverProbe.Ref)); for (int i = 1; i <= 3; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -187,7 +187,7 @@ public void Journal_should_replay_messages_using_a_count_limit() } [Fact] - public void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound() + public virtual void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound() { Journal.Tell(new ReplayMessages(2, 3, long.MaxValue, Pid, _receiverProbe.Ref)); for (int i = 2; i <= 3; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -195,7 +195,7 @@ public void Journal_should_replay_messages_using_lower_and_upper_sequence_number } [Fact] - public void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound_and_count_limit() + public virtual void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound_and_count_limit() { Journal.Tell(new ReplayMessages(2, 5, 2, Pid, _receiverProbe.Ref)); for (int i = 2; i <= 3; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -203,7 +203,7 @@ public void Journal_should_replay_messages_using_lower_and_upper_sequence_number } [Fact] - public void Journal_should_replay_a_single_if_lower_sequence_number_bound_equals_upper_sequence_number_bound() + public virtual void Journal_should_replay_a_single_if_lower_sequence_number_bound_equals_upper_sequence_number_bound() { Journal.Tell(new ReplayMessages(2, 2, long.MaxValue, Pid, _receiverProbe.Ref)); _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, 2)); @@ -211,7 +211,7 @@ public void Journal_should_replay_a_single_if_lower_sequence_number_bound_equals } [Fact] - public void Journal_should_replay_a_single_message_if_count_limit_is_equal_one() + public virtual void Journal_should_replay_a_single_message_if_count_limit_is_equal_one() { Journal.Tell(new ReplayMessages(2, 4, 1, Pid, _receiverProbe.Ref)); _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, 2)); @@ -219,28 +219,28 @@ public void Journal_should_replay_a_single_message_if_count_limit_is_equal_one() } [Fact] - public void Journal_should_not_replay_messages_if_count_limit_equals_zero() + public virtual void Journal_should_not_replay_messages_if_count_limit_equals_zero() { Journal.Tell(new ReplayMessages(2, 4, 0, Pid, _receiverProbe.Ref)); _receiverProbe.ExpectMsg(m => m.HighestSequenceNr == 5L); } [Fact] - public void Journal_should_not_replay_messages_if_lower_sequence_number_bound_is_greater_than_upper_sequence_number_bound() + public virtual void Journal_should_not_replay_messages_if_lower_sequence_number_bound_is_greater_than_upper_sequence_number_bound() { Journal.Tell(new ReplayMessages(3, 2, long.MaxValue, Pid, _receiverProbe.Ref)); _receiverProbe.ExpectMsg(m => m.HighestSequenceNr == 5L); } [Fact] - public void Journal_should_not_replay_messages_if_the_persistent_actor_has_not_yet_written_messages() + public virtual void Journal_should_not_replay_messages_if_the_persistent_actor_has_not_yet_written_messages() { Journal.Tell(new ReplayMessages(0, long.MaxValue, long.MaxValue, "non-existing-pid", _receiverProbe.Ref)); _receiverProbe.ExpectMsg(m => m.HighestSequenceNr == 0L); } [Fact] - public void Journal_should_not_replay_permanently_deleted_messages_on_range_deletion() + public virtual void Journal_should_not_replay_permanently_deleted_messages_on_range_deletion() { var receiverProbe2 = CreateTestProbe(); var command = new DeleteMessagesTo(Pid, 3, receiverProbe2.Ref); @@ -259,7 +259,7 @@ public void Journal_should_not_replay_permanently_deleted_messages_on_range_dele } [Fact] - public void Journal_should_not_reset_HighestSequenceNr_after_message_deletion() + public virtual void Journal_should_not_reset_HighestSequenceNr_after_message_deletion() { Journal.Tell(new ReplayMessages(0, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref)); for (int i = 1; i <= 5; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -274,7 +274,7 @@ public void Journal_should_not_reset_HighestSequenceNr_after_message_deletion() } [Fact] - public void Journal_should_not_reset_HighestSequenceNr_after_journal_cleanup() + public virtual void Journal_should_not_reset_HighestSequenceNr_after_journal_cleanup() { Journal.Tell(new ReplayMessages(0, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref)); for (int i = 1; i <= 5; i++) _receiverProbe.ExpectMsg(m => IsReplayedMessage(m, i)); @@ -288,7 +288,7 @@ public void Journal_should_not_reset_HighestSequenceNr_after_journal_cleanup() } [Fact] - public void Journal_should_serialize_events() + public virtual void Journal_should_serialize_events() { if (!SupportsSerialization) return; @@ -340,7 +340,7 @@ public void GetObjectData(SerializationInfo info, StreamingContext context) } [Fact] - public void Journal_optionally_may_reject_non_serializable_events() + public virtual void Journal_optionally_may_reject_non_serializable_events() { if (!SupportsRejectingNonSerializableObjects) return; diff --git a/src/core/Akka.Persistence.TCK/Query/TestActor.cs b/src/core/Akka.Persistence.TCK/Query/TestActor.cs index f05b98abf75..885207e1d20 100644 --- a/src/core/Akka.Persistence.TCK/Query/TestActor.cs +++ b/src/core/Akka.Persistence.TCK/Query/TestActor.cs @@ -64,6 +64,7 @@ protected Receive WhileDeleting(IActorRef originalSender) Stash.UnstashAll(); break; case DeleteMessagesFailure failure: + Log.Error(failure.Cause, "Failed to delete messages to sequence number [{0}].", failure.ToSequenceNr); originalSender.Tell($"{failure.ToSequenceNr}-deleted-failed"); Become(OnCommand); Stash.UnstashAll(); diff --git a/src/core/Akka.Persistence/Eventsourced.Lifecycle.cs b/src/core/Akka.Persistence/Eventsourced.Lifecycle.cs index 1cefff8650f..76b6196491f 100644 --- a/src/core/Akka.Persistence/Eventsourced.Lifecycle.cs +++ b/src/core/Akka.Persistence/Eventsourced.Lifecycle.cs @@ -133,7 +133,7 @@ protected override void Unhandled(object message) case DeleteMessagesFailure failure: { if (Log.IsWarningEnabled) - Log.Warning("Failed to DeleteMessages ToSequenceNr [{0}] for PersistenceId [{1}] due to: [{2}: {3}]", failure.ToSequenceNr, PersistenceId, failure.Cause, failure.Cause.Message); + Log.Warning(failure.Cause, "Failed to DeleteMessages ToSequenceNr [{0}] for PersistenceId [{1}] due to: {2}", failure.ToSequenceNr, PersistenceId, failure.Cause.Message); break; } }