Skip to content
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

Conversation

Arkatufus
Copy link
Contributor

Add missing failure handling, following SqlJournal failure handling behaviour

…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()}].");
Copy link
Contributor Author

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())
Copy link
Contributor Author

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.

Copy link
Member

@Aaronontheweb Aaronontheweb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Aaronontheweb Aaronontheweb merged commit fa5ca50 into akkadotnet:dev Jun 15, 2021
@Aaronontheweb Aaronontheweb added this to the 1.4.21 milestone Jun 15, 2021
@Aaronontheweb Aaronontheweb added the akka-persistence-sql-common Akka.Persistence.Sql.Common label Jun 15, 2021
@Arkatufus Arkatufus deleted the FIX_Persistence_Batching_SelectCurrentPersistenceIds_fail_handler branch February 27, 2023 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
akka-persistence-sql-common Akka.Persistence.Sql.Common
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants