Skip to content

Commit 5233233

Browse files
authored
Fix Persistence.TCK specs (#5849)
* DeleteMessagesFailure message should log its failure stack trace * Make JournalSpec facts overridable * Make error reporting standardized.
1 parent bba3dc3 commit 5233233

File tree

5 files changed

+20
-19
lines changed

5 files changed

+20
-19
lines changed

src/contrib/cluster/Akka.Cluster.Sharding/PersistentShard.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ protected override bool ReceiveCommand(object message)
125125
DeleteSnapshots(new SnapshotSelectionCriteria(deleteTo, DateTime.MaxValue, deleteFrom));
126126
break;
127127
case DeleteMessagesFailure m:
128-
Log.Warning("PersistentShard messages to [{0}] deletion failure: [{1}]", m.ToSequenceNr, m.Cause.Message);
128+
Log.Warning(m.Cause, "PersistentShard messages to [{0}] deletion failure: [{1}]", m.ToSequenceNr, m.Cause.Message);
129129
break;
130130
case DeleteSnapshotsSuccess m:
131131
Log.Debug("PersistentShard snapshots matching [{0}] deleted successfully", m.Criteria);

src/contrib/cluster/Akka.Cluster.Sharding/PersistentShardCoordinator.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1446,7 +1446,7 @@ private bool HandleSnapshotResult(object message)
14461446
DeleteSnapshots(new SnapshotSelectionCriteria(m.ToSequenceNr - 1));
14471447
break;
14481448
case DeleteMessagesFailure m:
1449-
Log.Warning("Persistent messages to {0} deletion failure: {1}", m.ToSequenceNr, m.Cause.Message);
1449+
Log.Warning(m.Cause, "Persistent messages to {0} deletion failure: {1}", m.ToSequenceNr, m.Cause.Message);
14501450
break;
14511451
case DeleteSnapshotsSuccess m:
14521452
Log.Debug("Persistent snapshots matching {0} deleted successfully", m.Criteria);

src/core/Akka.Persistence.TCK/Journal/JournalSpec.cs

+16-16
Original file line numberDiff line numberDiff line change
@@ -155,92 +155,92 @@ private AtomicWrite[] WriteMessages(int from, int to, string pid, IActorRef send
155155
}
156156

157157
[Fact]
158-
public void Journal_should_replay_all_messages()
158+
public virtual void Journal_should_replay_all_messages()
159159
{
160160
Journal.Tell(new ReplayMessages(1, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref));
161161
for (int i = 1; i <= 5; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
162162
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
163163
}
164164

165165
[Fact]
166-
public void Journal_should_replay_messages_using_a_lower_sequence_number_bound()
166+
public virtual void Journal_should_replay_messages_using_a_lower_sequence_number_bound()
167167
{
168168
Journal.Tell(new ReplayMessages(3, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref));
169169
for (int i = 3; i <= 5; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
170170
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
171171
}
172172

173173
[Fact]
174-
public void Journal_should_replay_messages_using_an_upper_sequence_number_bound()
174+
public virtual void Journal_should_replay_messages_using_an_upper_sequence_number_bound()
175175
{
176176
Journal.Tell(new ReplayMessages(1, 3, long.MaxValue, Pid, _receiverProbe.Ref));
177177
for (int i = 1; i <= 3; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
178178
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
179179
}
180180

181181
[Fact]
182-
public void Journal_should_replay_messages_using_a_count_limit()
182+
public virtual void Journal_should_replay_messages_using_a_count_limit()
183183
{
184184
Journal.Tell(new ReplayMessages(1, long.MaxValue, 3, Pid, _receiverProbe.Ref));
185185
for (int i = 1; i <= 3; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
186186
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
187187
}
188188

189189
[Fact]
190-
public void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound()
190+
public virtual void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound()
191191
{
192192
Journal.Tell(new ReplayMessages(2, 3, long.MaxValue, Pid, _receiverProbe.Ref));
193193
for (int i = 2; i <= 3; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
194194
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
195195
}
196196

197197
[Fact]
198-
public void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound_and_count_limit()
198+
public virtual void Journal_should_replay_messages_using_lower_and_upper_sequence_number_bound_and_count_limit()
199199
{
200200
Journal.Tell(new ReplayMessages(2, 5, 2, Pid, _receiverProbe.Ref));
201201
for (int i = 2; i <= 3; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
202202
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
203203
}
204204

205205
[Fact]
206-
public void Journal_should_replay_a_single_if_lower_sequence_number_bound_equals_upper_sequence_number_bound()
206+
public virtual void Journal_should_replay_a_single_if_lower_sequence_number_bound_equals_upper_sequence_number_bound()
207207
{
208208
Journal.Tell(new ReplayMessages(2, 2, long.MaxValue, Pid, _receiverProbe.Ref));
209209
_receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, 2));
210210
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
211211
}
212212

213213
[Fact]
214-
public void Journal_should_replay_a_single_message_if_count_limit_is_equal_one()
214+
public virtual void Journal_should_replay_a_single_message_if_count_limit_is_equal_one()
215215
{
216216
Journal.Tell(new ReplayMessages(2, 4, 1, Pid, _receiverProbe.Ref));
217217
_receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, 2));
218218
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
219219
}
220220

221221
[Fact]
222-
public void Journal_should_not_replay_messages_if_count_limit_equals_zero()
222+
public virtual void Journal_should_not_replay_messages_if_count_limit_equals_zero()
223223
{
224224
Journal.Tell(new ReplayMessages(2, 4, 0, Pid, _receiverProbe.Ref));
225225
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
226226
}
227227

228228
[Fact]
229-
public void Journal_should_not_replay_messages_if_lower_sequence_number_bound_is_greater_than_upper_sequence_number_bound()
229+
public virtual void Journal_should_not_replay_messages_if_lower_sequence_number_bound_is_greater_than_upper_sequence_number_bound()
230230
{
231231
Journal.Tell(new ReplayMessages(3, 2, long.MaxValue, Pid, _receiverProbe.Ref));
232232
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 5L);
233233
}
234234

235235
[Fact]
236-
public void Journal_should_not_replay_messages_if_the_persistent_actor_has_not_yet_written_messages()
236+
public virtual void Journal_should_not_replay_messages_if_the_persistent_actor_has_not_yet_written_messages()
237237
{
238238
Journal.Tell(new ReplayMessages(0, long.MaxValue, long.MaxValue, "non-existing-pid", _receiverProbe.Ref));
239239
_receiverProbe.ExpectMsg<RecoverySuccess>(m => m.HighestSequenceNr == 0L);
240240
}
241241

242242
[Fact]
243-
public void Journal_should_not_replay_permanently_deleted_messages_on_range_deletion()
243+
public virtual void Journal_should_not_replay_permanently_deleted_messages_on_range_deletion()
244244
{
245245
var receiverProbe2 = CreateTestProbe();
246246
var command = new DeleteMessagesTo(Pid, 3, receiverProbe2.Ref);
@@ -259,7 +259,7 @@ public void Journal_should_not_replay_permanently_deleted_messages_on_range_dele
259259
}
260260

261261
[Fact]
262-
public void Journal_should_not_reset_HighestSequenceNr_after_message_deletion()
262+
public virtual void Journal_should_not_reset_HighestSequenceNr_after_message_deletion()
263263
{
264264
Journal.Tell(new ReplayMessages(0, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref));
265265
for (int i = 1; i <= 5; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
@@ -274,7 +274,7 @@ public void Journal_should_not_reset_HighestSequenceNr_after_message_deletion()
274274
}
275275

276276
[Fact]
277-
public void Journal_should_not_reset_HighestSequenceNr_after_journal_cleanup()
277+
public virtual void Journal_should_not_reset_HighestSequenceNr_after_journal_cleanup()
278278
{
279279
Journal.Tell(new ReplayMessages(0, long.MaxValue, long.MaxValue, Pid, _receiverProbe.Ref));
280280
for (int i = 1; i <= 5; i++) _receiverProbe.ExpectMsg<ReplayedMessage>(m => IsReplayedMessage(m, i));
@@ -288,7 +288,7 @@ public void Journal_should_not_reset_HighestSequenceNr_after_journal_cleanup()
288288
}
289289

290290
[Fact]
291-
public void Journal_should_serialize_events()
291+
public virtual void Journal_should_serialize_events()
292292
{
293293
if (!SupportsSerialization) return;
294294

@@ -340,7 +340,7 @@ public void GetObjectData(SerializationInfo info, StreamingContext context)
340340
}
341341

342342
[Fact]
343-
public void Journal_optionally_may_reject_non_serializable_events()
343+
public virtual void Journal_optionally_may_reject_non_serializable_events()
344344
{
345345
if (!SupportsRejectingNonSerializableObjects) return;
346346

src/core/Akka.Persistence.TCK/Query/TestActor.cs

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ protected Receive WhileDeleting(IActorRef originalSender)
6464
Stash.UnstashAll();
6565
break;
6666
case DeleteMessagesFailure failure:
67+
Log.Error(failure.Cause, "Failed to delete messages to sequence number [{0}].", failure.ToSequenceNr);
6768
originalSender.Tell($"{failure.ToSequenceNr}-deleted-failed");
6869
Become(OnCommand);
6970
Stash.UnstashAll();

src/core/Akka.Persistence/Eventsourced.Lifecycle.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected override void Unhandled(object message)
133133
case DeleteMessagesFailure failure:
134134
{
135135
if (Log.IsWarningEnabled)
136-
Log.Warning("Failed to DeleteMessages ToSequenceNr [{0}] for PersistenceId [{1}] due to: [{2}: {3}]", failure.ToSequenceNr, PersistenceId, failure.Cause, failure.Cause.Message);
136+
Log.Warning(failure.Cause, "Failed to DeleteMessages ToSequenceNr [{0}] for PersistenceId [{1}] due to: {2}", failure.ToSequenceNr, PersistenceId, failure.Cause.Message);
137137
break;
138138
}
139139
}

0 commit comments

Comments
 (0)