-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add failure handling for BatchingSqlJournal SelectCurrentPersistenceIds message batching #5094
Add failure handling for BatchingSqlJournal SelectCurrentPersistenceIds message batching #5094
Conversation
…ds message batching
…llow the original failure cause, create a confusing error log, and blow up BatchingSqlJournal failure handling.
default: | ||
throw new Exception($"Unknown persistence journal request type [{request.GetType()}]"); | ||
Log.Error(cause, $"Batching failure not reported to original sender. Unknown batched persistence journal request type [{request.GetType()}]."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Throwing would swallow the original failure cause, create confusing error message, and blow up BatchingSqlJournal.
@@ -1096,10 +1104,12 @@ protected virtual async Task HandleSelectCurrentPersistenceIds(SelectCurrentPers | |||
command.Parameters.Clear(); | |||
AddParameter(command, "@Ordering", DbType.Int64, message.Offset); | |||
|
|||
var reader = await command.ExecuteReaderAsync(); | |||
while (await reader.ReadAsync()) | |||
using (var reader = await command.ExecuteReaderAsync()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to add using to make sure that the DataReader is properly closed and disposed. Failure to dispose the DataReader can cause rollback failure when the batch needs to be rolled back.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Add missing failure handling, following SqlJournal failure handling behaviour