Hi,
We frequently get a SqlException when we try to assign to a role to a member. It times out almost instantly, and we don’t have anything that would change the default lock timeout (which I believe is -1/infinite):
System.Data.SqlClient.SqlException (0x80131904): Lock request time out
period exceeded. The statement has been terminated. at
System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction) at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj, Boolean& dataReady) at
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,
RunBehavior runBehavior, String resetOptionsString, Boolean
isInternal, Boolean forDescribeParameterEncryption, Boolean
shouldCacheForAlwaysEncrypted) at
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean
async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry,
SqlDataReader ds, Boolean describeParameterEncryptionRequest) at
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String
method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource
1
completion, String methodName, Boolean sendToPipe, Int32 timeout,
Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) at
System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at
StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteNonQuery() in
C:\projects\dotnet\src\MiniProfiler.Shared\Data\ProfiledDbCommand.cs:line
274 at
Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.b__31_0()
in
D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line
209 at
Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.<>c__DisplayClass33_01.<Execute>b__0() in D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line 222 at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func
1
func) in
D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryPolicy.cs:line
172 at
Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.Execute[T](Func`1
f) in
D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line
219 at
Umbraco.Core.Persistence.FaultHandling.FaultHandlingDbCommand.ExecuteNonQuery()
in
D:\a\1\s\src\Umbraco.Core\Persistence\FaultHandling\RetryDbConnection.cs:line
209 at NPoco.Database.ExecuteNonQueryHelper(DbCommand cmd) at
NPoco.Database.NPoco.IDatabaseHelpers.ExecuteNonQueryHelper(DbCommand
cmd) at NPoco.Database.Execute(String sql, CommandType commandType,
Object args) at NPoco.Database.Execute(Sql Sql) at
NPoco.Database.Execute(String sql, Object args) at
Umbraco.Core.Persistence.SqlSyntax.SqlServerSyntaxProvider.WriteLock(IDatabase
db, Int32 lockIds) in
D:\a\1\s\src\Umbraco.Core\Persistence\SqlSyntax\SqlServerSyntaxProvider.cs:line
264 at Umbraco.Core.Scoping.Scope.WriteLock(Int32 lockIds) in
D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 492 at
Umbraco.Core.Services.Implement.MemberService.AssignRoles(Int32
memberIds, String roleNames) in
D:\a\1\s\src\Umbraco.Core\Services\Implement\MemberService.cs:line
1060 at
Umbraco.Core.Services.Implement.MemberService.AssignRole(Int32
memberId, String roleName) in
D:\a\1\s\src\Umbraco.Core\Services\Implement\MemberService.cs:line
1053
Any ideas?
We’re on Umbraco v8.5.4, Examin v1.0.3.
Thanks,
Chris
This is a companion discussion topic for the original entry at https://our.umbraco.com/forum/101745-lock-request-time-out-period-exceeded