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

An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call #20993

Open
diennttlu opened this issue Oct 7, 2024 · 1 comment

Comments

@diennttlu
Copy link

When multiple requests are sent to the system at the same time,

There are 2 exceptions I received from the system
The fisrt:
Message: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call.
Stack trace:
System.InvalidOperationException: An exception has been raised that is likely due to a transient failure. Consider enabling transient error resiliency by adding 'EnableRetryOnFailure' to the 'UseSqlServer' call.
at async Task Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync<TState, TResult>(TState state, Func<DbContext, TState, CancellationToken, Task> operation, Func<DbContext, TState, CancellationToken, Task<ExecutionResult>> verifySucceeded, CancellationToken cancellationToken)
at async Task Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken) x 2
at async Task Volo.Abp.EntityFrameworkCore.AbpDbContext.SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at async Task Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository<TDbContext, TEntity>.DeleteManyAsync(IEnumerable entities, bool autoSave, CancellationToken cancellationToken)
at async Task Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
at async Task Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
at async Task Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at async Task Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func<IInvocation, IInvocationProceedInfo, Task> proceed)
at async ValueTask Volo.Abp.OpenIddict.Tokens.AbpOpenIddictTokenStore.PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken)
at async Task Volo.Abp.OpenIddict.Tokens.TokenCleanupService.CleanAsync() ---> Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
at async Task Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at async Task Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) x 3
at async Task Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList entriesToSave, CancellationToken cancellationToken) x 2
at async Task Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync<TState, TResult>(TState state, Func<DbContext, TState, CancellationToken, Task> operation, Func<DbContext, TState, CancellationToken, Task<ExecutionResult>> verifySucceeded, CancellationToken cancellationToken) ---> Microsoft.Data.SqlClient.SqlException: Transaction (Process ID 1637) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
at Task Microsoft.Data.SqlClient.SqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)+(Task result) => { }
at void System.Threading.Tasks.ContinuationResultTaskFromResultTask<TAntecedentResult, TResult>.InnerInvoke()
at async Task Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) x 2
at async Task Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
--- End of inner exception stack trace ---

The seconds:
Message: Failed executing DbCommand ("4,569"ms) [Parameters=["@P4='?' (DbType = Guid), @p0='?' (Size = 40), @p5='?' (Size = 40), @p1='?' (DbType = DateTime2), @p2='?' (DbType = Boolean), @p3='?' (DbType = DateTime2), @p10='?' (DbType = Guid), @p6='?' (Size = 40), @p11='?' (Size = 40), @P7='?' (DbType = DateTime2), @p8='?' (DbType = Boolean), @p9='?' (DbType = DateTime2), @p16='?' (DbType = Guid), @p12='?' (Size = 40), @p17='?' (Size = 40), @P13='?' (DbType = DateTime2), @p14='?' (DbType = Boolean), @P15='?' (DbType = DateTime2), @p22='?' (DbType = Guid), @p18='?' (Size = 40), @p23='?' (Size = 40), @p19='?' (DbType = DateTime2), @p20='?' (DbType = Boolean), @p21='?' (DbType = DateTime2), @p28='?' (DbType = Guid), @p24='?' (Size = 40), @p29='?' (Size = 40), @p25='?' (DbType = DateTime2), @P26='?' (DbType = Boolean), @p27='?' (DbType = DateTime2), @p34='?' (DbType = Guid), @p30='?' (Size = 40), @p35='?' (Size = 40), @p31='?' (DbType = DateTime2), @P32='?' (DbType = Boolean), @p33='?' (DbType = DateTime2)"], CommandType='Text', CommandTimeout='30']"
""SET NOCOUNT ON;
UPDATE [OpenIddictTokens] SET [ConcurrencyStamp] = @p0, [DeletionTime] = @p1, [IsDeleted] = @p2, [LastModificationTime] = @p3
WHERE [Id] = @P4 AND [ConcurrencyStamp] = @p5;
SELECT @@rowcount;

UPDATE [OpenIddictTokens] SET [ConcurrencyStamp] = @p6, [DeletionTime] = @P7, [IsDeleted] = @p8, [LastModificationTime] = @p9
WHERE [Id] = @p10 AND [ConcurrencyStamp] = @p11;
SELECT @@rowcount;

UPDATE [OpenIddictTokens] SET [ConcurrencyStamp] = @p12, [DeletionTime] = @P13, [IsDeleted] = @p14, [LastModificationTime] = @P15
WHERE [Id] = @p16 AND [ConcurrencyStamp] = @p17;
SELECT @@rowcount;

UPDATE [OpenIddictTokens] SET [ConcurrencyStamp] = @p18, [DeletionTime] = @p19, [IsDeleted] = @p20, [LastModificationTime] = @p21
WHERE [Id] = @p22 AND [ConcurrencyStamp] = @p23;
SELECT @@rowcount;

UPDATE [OpenIddictTokens] SET [ConcurrencyStamp] = @p24, [DeletionTime] = @p25, [IsDeleted] = @P26, [LastModificationTime] = @p27
WHERE [Id] = @p28 AND [ConcurrencyStamp] = @p29;
SELECT @@rowcount;

UPDATE [OpenIddictTokens] SET [ConcurrencyStamp] = @p30, [DeletionTime] = @p31, [IsDeleted] = @P32, [LastModificationTime] = @p33
WHERE [Id] = @p34 AND [ConcurrencyStamp] = @p35;
SELECT @@rowcount;"

ABP 6.0.0
EF Core
UI Angular

@maliming
Copy link
Member

hi

  • Full exception message and stack trace if available (check the logs).
  • Please share the steps and code to reproduce the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants