Transaction isolation level should not default to REPEATABLE READ
regardless of server configuration if left unspecified
#1442
Labels
REPEATABLE READ
regardless of server configuration if left unspecified
#1442
Software versions
MySqlConnector version: 2.1.6, but still relevant on latest
master
as far as I can tellServer type (MySQL, MariaDB, Aurora, etc.) and version: Not relevant
.NET version: Not relevant
Describe the bug
If a transaction is started without specifying an isolation level, it will silently default to
IsolationLevel.Unspecified
, which is really justREPEATABLE READ
:MySqlConnector/src/MySqlConnector/MySqlConnection.cs
Lines 155 to 156 in 999a3ab
The comment is correct in stating that
REPEATABLE READ
is the default innodb transaction isolation level, however, this is confusing in cases where the global transaction isolation level on the mysql instance that queries are directed to is deliberately changed from the configuration default.Related: #772
Exception
Not applicable
Code sample
See usage. On a mysql transaction with
READ COMMITTED
default transaction isolation level this would instead forceREPEATABLE READ
and as such caused a long investigation into ensuing deadlocks, that was "fixed" by ppy/osu-queue-score-statistics@5c23e0f.Expected behavior
MySqlConnector
does not attempt to explicitly set any transaction isolation level when starting a transaction withIsolationLevel.Unspecified
.Additional context
Not applicable
The text was updated successfully, but these errors were encountered: