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

Flaky Test: SaveChanges_uses_ambient_transaction_with_connectionString #17017

Closed
smitpatel opened this issue Aug 7, 2019 · 1 comment · Fixed by #23506
Closed

Flaky Test: SaveChanges_uses_ambient_transaction_with_connectionString #17017

smitpatel opened this issue Aug 7, 2019 · 1 comment · Fixed by #23506
Labels
area-test closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. punted-for-3.1 type-bug
Milestone

Comments

@smitpatel
Copy link
Contributor

Microsoft.EntityFrameworkCore.TransactionSqlServerTest.SaveChanges_uses_ambient_transaction_with_connectionString(async: False, autoTransactionsEnabled: True)
Assert.Throws() Failure\r\nExpected: typeof(Microsoft.EntityFrameworkCore.DbUpdateException)\r\nActual:   typeof(System.PlatformNotSupportedException): This platform does not support distributed transactions.\r\n---- System.PlatformNotSupportedException : This platform does not support distributed transactions.
   at System.Transactions.Distributed.DistributedTransactionManager.GetDistributedTransactionFromTransmitterPropagationToken(Byte[] propagationToken)
   at System.Transactions.TransactionInterop.GetDistributedTransactionFromTransmitterPropagationToken(Byte[] propagationToken)
   at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)
   at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)
   at System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
   at System.Transactions.Transaction.Promote()
   at System.Transactions.TransactionInterop.ConvertToDistributedTransaction(Transaction transaction)
   at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
   at Microsoft.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts)
   at Microsoft.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
   at Microsoft.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at Microsoft.Data.SqlClient.SqlConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Storage\RelationalConnection.cs:line 505
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Storage\RelationalConnection.cs:line 428
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(DbContext _, ValueTuple`2 parameters) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Update\Internal\BatchExecutor.cs:line 89
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) in D:\code\EntityFrameworkCore\src\EFCore.SqlServer\Storage\Internal\SqlServerExecutionStrategy.cs:line 55
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Update\Internal\BatchExecutor.cs:line 68
   at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Storage\RelationalDatabase.cs:line 61
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave) in D:\code\EntityFrameworkCore\src\EFCore\ChangeTracking\Internal\StateManager.cs:line 1165
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess) in D:\code\EntityFrameworkCore\src\EFCore\ChangeTracking\Internal\StateManager.cs:line 955
   at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess) in D:\code\EntityFrameworkCore\src\EFCore\DbContext.cs:line 465
   at Microsoft.EntityFrameworkCore.DbContext.SaveChanges() in D:\code\EntityFrameworkCore\src\EFCore\DbContext.cs:line 428
   at Microsoft.EntityFrameworkCore.TransactionTestBase`1.<>c__DisplayClass13_0.<SaveChanges_uses_ambient_transaction_with_connectionString>b__1() in D:\code\EntityFrameworkCore\test\EFCore.Relational.Specification.Tests\TransactionTestBase.cs:line 393
----- Inner Stack Trace -----
   at System.Transactions.Distributed.DistributedTransactionManager.GetDistributedTransactionFromTransmitterPropagationToken(Byte[] propagationToken)
   at System.Transactions.TransactionInterop.GetDistributedTransactionFromTransmitterPropagationToken(Byte[] propagationToken)
   at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)
   at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)
   at System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
   at System.Transactions.Transaction.Promote()
   at System.Transactions.TransactionInterop.ConvertToDistributedTransaction(Transaction transaction)
   at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
   at Microsoft.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts)
   at Microsoft.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
   at Microsoft.Data.ProviderBase.DbConnectionPool.PrepareConnection(DbConnection owningObject, DbConnectionInternal obj, Transaction transaction)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at Microsoft.Data.SqlClient.SqlConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Storage\RelationalConnection.cs:line 505
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Storage\RelationalConnection.cs:line 428
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(DbContext _, ValueTuple`2 parameters) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Update\Internal\BatchExecutor.cs:line 89
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded) in D:\code\EntityFrameworkCore\src\EFCore.SqlServer\Storage\Internal\SqlServerExecutionStrategy.cs:line 55
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(IEnumerable`1 commandBatches, IRelationalConnection connection) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Update\Internal\BatchExecutor.cs:line 68
   at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChanges(IList`1 entries) in D:\code\EntityFrameworkCore\src\EFCore.Relational\Storage\RelationalDatabase.cs:line 61
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IList`1 entriesToSave) in D:\code\EntityFrameworkCore\src\EFCore\ChangeTracking\Internal\StateManager.cs:line 1165
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess) in D:\code\EntityFrameworkCore\src\EFCore\ChangeTracking\Internal\StateManager.cs:line 955
   at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess) in D:\code\EntityFrameworkCore\src\EFCore\DbContext.cs:line 465
   at Microsoft.EntityFrameworkCore.DbContext.SaveChanges() in D:\code\EntityFrameworkCore\src\EFCore\DbContext.cs:line 428
   at Microsoft.EntityFrameworkCore.TransactionTestBase`1.<>c__DisplayClass13_0.<SaveChanges_uses_ambient_transaction_with_connectionString>b__1() in D:\code\EntityFrameworkCore\test\EFCore.Relational.Specification.Tests\TransactionTestBase.cs:line 393
@AndriySvyryd
Copy link
Member

We should fix this or remove the test

@ajcvickers ajcvickers added this to the 3.1.0 milestone Sep 6, 2019
@ajcvickers ajcvickers modified the milestones: 3.1.0, Backlog Oct 11, 2019
@ajcvickers ajcvickers modified the milestones: Backlog, MQ Sep 11, 2020
@ajcvickers ajcvickers modified the milestones: MQ, 6.0.0 Nov 26, 2020
@ajcvickers ajcvickers added the closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. label Nov 26, 2020
ajcvickers added a commit that referenced this issue Nov 26, 2020
Fixes #17017 - Ran the test over _one million ~~dollars~~ times_ and it did not fail
Fixes #23505 - Removing based on Smit's analysis and Andriy's agreement
ajcvickers added a commit that referenced this issue Nov 27, 2020
Fixes #17017 - Ran the test over _one million ~~dollars~~ times_ and it did not fail
Fixes #23505 - Removing based on Smit's analysis and Andriy's agreement
@ajcvickers ajcvickers modified the milestones: 6.0.0, 6.0.0-preview1 Jan 27, 2021
@ajcvickers ajcvickers modified the milestones: 6.0.0-preview1, 6.0.0 Nov 8, 2021
@ajcvickers ajcvickers removed their assignment Sep 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-test closed-fixed The issue has been fixed and is/will be included in the release indicated by the issue milestone. punted-for-3.1 type-bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants