New request is not allowed to start because it should come with valid transaction descriptor
Hello,
A customer has been running perfomance tests against a site we have built for them.
This is version 7.58 and also the latest 7.6 in an Azure app service and using SQL Azure.
The errors are SQL errors that we haven't seen before - and googling reveals that they are relatively rare exceptions:
System.Data.SqlClient.SqlException (0x80131904): New request is not allowed to start because it should come with valid transaction descriptor.
System.Data.SqlClient.SqlException (0x80131904): The server failed to resume the transaction.
I've pasted a couple of full stack traces below for completeness. I also have a graph that shows that the performance test ran well for some time and then these errors began to occur.
Interestingly - none of our custom data access was affected and continued to work during the periods that these errors occurred.
I am mainly writing in case this is something that someone else has experienced.
I have a suspicion that it may be to do with Azure and transient retry policies - but that is really just a guess!
As mentioned stack traces below - and any help you can offer is much appreciated.
Thanks.
33 2018-01-25 14:08:05.2040000 2018-01-25 14:13:31.3550000 ERROR umbraco.cms.businesslogic.member.Member - An error occurred in GetCurrentMember System.Data.SqlClient.SqlException (0x80131904): New request is not allowed to start because it should come with valid transaction descriptor. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 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.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel iso, String transactionName, Boolean shouldReconnect) at System.Data.SqlClient.SqlConnection.BeginTransaction(IsolationLevel iso, String transactionName) at System.Data.SqlClient.SqlConnection.BeginDbTransaction(IsolationLevel isolationLevel) at System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel) at StackExchange.Profiling.Data.ProfiledDbConnection.BeginDbTransaction(IsolationLevel isolationLevel) in c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling\Data\ProfiledDbConnection.cs:line 206 at System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel isolationLevel) at Umbraco.Core.Persistence.Database.BeginTransaction(IsolationLevel isolationLevel) at Umbraco.Core.Scoping.Scope.getDatabase() at Umbraco.Core.Persistence.UnitOfWork.ScopeUnitOfWork.getDatabase() at Umbraco.Core.Persistence.Repositories.MemberRepository.ProcessQuery(Sql sqlFull, PagingSqlQuery pagingSqlQuery, Boolean withCache) at Umbraco.Core.Persistence.Repositories.MemberRepository.PerformGetByQuery(IQuery1 query) at Umbraco.Core.Persistence.Repositories.RepositoryBase2.GetByQuery(IQuery1 query) at Umbraco.Core.Services.MemberService.GetByUsername(String username) at Umbraco.Web.Security.Providers.UmbracoMembershipProvider2.GetUser(String username, Boolean userIsOnline) at Umbraco.Core.Security.MembershipProviderExtensions.GetCurrentUser(MembershipProvider membershipProvider) at umbraco.cms.businesslogic.member.Member.GetCurrentMember()
1 2018-01-25 14:08:06.2980000 2018-01-25 14:08:06.2980000 ERROR Umbraco.Core.Persistence.UmbracoDatabase - Exception (b7514517). System.Data.SqlClient.SqlException (0x80131904): The server failed to resume the transaction. Desc:a900002bbc. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 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.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.getMetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteDbDataReader(CommandBehavior behavior) in c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling\Data\ProfiledDbCommand.cs:line 235 at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() at Umbraco.Core.Persistence.PetaPocoCommandExtensions.<>c__DisplayClass5_0.b__0() at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func1 func) at Umbraco.Core.Persistence.PetaPocoCommandExtensions.ExecuteReaderWithRetry(IDbCommand command, RetryPolicy cmdRetryPolicy, RetryPolicy conRetryPolicy) at Umbraco.Core.Persistence.PetaPocoCommandExtensions.ExecuteReaderWithRetry(IDbCommand command, RetryPolicy retryPolicy) at Umbraco.Core.Persistence.PetaPocoCommandExtensions.ExecuteReaderWithRetry(IDbCommand command) at Umbraco.Core.Persistence.Database.d_74`1.MoveNext()
I'm also experiencing the same issue, intermittently, using Umbraco 7.5.11 and SQL Server 2016.
Seems to be happening on a document type that has several Nested Content elements.
All seems to be ok on our dev environment that uses Sql Server 2012
Same issue here Umbraco 7.12.4, can it be that is has something to do with the miniprofiler?
The following line implies that the miniprofiler is used in the connection. Also this detailed info (line nr etc) tells me that the miniprofiler is a debug version???. Is this by design? Should the miniprofiler be used when not in debug mode?
c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling\Data\ProfiledDbCommand.cs:line 235 at
Just an clarification, that the package Examine Dashboard, will it required for v8? as i have upgraded my site from v7 to v8, when in older they wear used with Examine Dashboard, do this wil work in v8?
New request is not allowed to start because it should come with valid transaction descriptor
Hello,
A customer has been running perfomance tests against a site we have built for them.
This is version 7.58 and also the latest 7.6 in an Azure app service and using SQL Azure.
The errors are SQL errors that we haven't seen before - and googling reveals that they are relatively rare exceptions:
System.Data.SqlClient.SqlException (0x80131904): New request is not allowed to start because it should come with valid transaction descriptor.
System.Data.SqlClient.SqlException (0x80131904): The server failed to resume the transaction.
I've pasted a couple of full stack traces below for completeness. I also have a graph that shows that the performance test ran well for some time and then these errors began to occur.
Interestingly - none of our custom data access was affected and continued to work during the periods that these errors occurred.
I am mainly writing in case this is something that someone else has experienced.
I have a suspicion that it may be to do with Azure and transient retry policies - but that is really just a guess!
As mentioned stack traces below - and any help you can offer is much appreciated.
Thanks.
33 2018-01-25 14:08:05.2040000 2018-01-25 14:13:31.3550000 ERROR umbraco.cms.businesslogic.member.Member - An error occurred in GetCurrentMember System.Data.SqlClient.SqlException (0x80131904): New request is not allowed to start because it should come with valid transaction descriptor. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 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.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) at System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel iso, String transactionName, Boolean shouldReconnect) at System.Data.SqlClient.SqlConnection.BeginTransaction(IsolationLevel iso, String transactionName) at System.Data.SqlClient.SqlConnection.BeginDbTransaction(IsolationLevel isolationLevel) at System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel) at StackExchange.Profiling.Data.ProfiledDbConnection.BeginDbTransaction(IsolationLevel isolationLevel) in c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling\Data\ProfiledDbConnection.cs:line 206 at System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel isolationLevel) at Umbraco.Core.Persistence.Database.BeginTransaction(IsolationLevel isolationLevel) at Umbraco.Core.Scoping.Scope.getDatabase() at Umbraco.Core.Persistence.UnitOfWork.ScopeUnitOfWork.getDatabase() at Umbraco.Core.Persistence.Repositories.MemberRepository.ProcessQuery(Sql sqlFull, PagingSqlQuery pagingSqlQuery, Boolean withCache) at Umbraco.Core.Persistence.Repositories.MemberRepository.PerformGetByQuery(IQuery1 query) at Umbraco.Core.Persistence.Repositories.RepositoryBase
2.GetByQuery(IQuery1 query) at Umbraco.Core.Services.MemberService.GetByUsername(String username) at Umbraco.Web.Security.Providers.UmbracoMembershipProvider
2.GetUser(String username, Boolean userIsOnline) at Umbraco.Core.Security.MembershipProviderExtensions.GetCurrentUser(MembershipProvider membershipProvider) at umbraco.cms.businesslogic.member.Member.GetCurrentMember()1 2018-01-25 14:08:06.2980000 2018-01-25 14:08:06.2980000 ERROR Umbraco.Core.Persistence.UmbracoDatabase - Exception (b7514517). System.Data.SqlClient.SqlException (0x80131904): The server failed to resume the transaction. Desc:a900002bbc. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 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.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.getMetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) 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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) at StackExchange.Profiling.Data.ProfiledDbCommand.ExecuteDbDataReader(CommandBehavior behavior) in c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling\Data\ProfiledDbCommand.cs:line 235 at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() at Umbraco.Core.Persistence.PetaPocoCommandExtensions.<>c__DisplayClass5_0.b__0() at Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func
1 func) at Umbraco.Core.Persistence.PetaPocoCommandExtensions.ExecuteReaderWithRetry(IDbCommand command, RetryPolicy cmdRetryPolicy, RetryPolicy conRetryPolicy) at Umbraco.Core.Persistence.PetaPocoCommandExtensions.ExecuteReaderWithRetry(IDbCommand command, RetryPolicy retryPolicy) at Umbraco.Core.Persistence.PetaPocoCommandExtensions.ExecuteReaderWithRetry(IDbCommand command) at Umbraco.Core.Persistence.Database.d_74`1.MoveNext()I'm also experiencing the same issue, intermittently, using Umbraco 7.5.11 and SQL Server 2016. Seems to be happening on a document type that has several Nested Content elements.
All seems to be ok on our dev environment that uses Sql Server 2012
Any help would be appreciated.
Hi Guys,
Same issue here Umbraco 7.12.4, can it be that is has something to do with the miniprofiler?
The following line implies that the miniprofiler is used in the connection. Also this detailed info (line nr etc) tells me that the miniprofiler is a debug version???. Is this by design? Should the miniprofiler be used when not in debug mode?
Hi All,
Did anybody get anywhere with resolving these. Today I'm seeing similar issues when connecting to SQL Server 2017 on my development machine.
Many Thanks Andy
Hi all think I have the same problem now ?
did any of you find a solution ?
Same here getting this with production but not dev environment. On Azure as webapp, SQL db. Umbraco v7.14
Just started seeing this on a v7 site today - didn't anyone get to the bottom of it?
HI Darren,
Just an clarification, that the package Examine Dashboard, will it required for v8? as i have upgraded my site from v7 to v8, when in older they wear used with Examine Dashboard, do this wil work in v8?
https://our.umbraco.com/packages/developer-tools/examine-dashboard/
Thanks,
Gurumurthy J V
is working on a reply...