From 61834e8692712e05e98e0695ee3a470c03b43ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?= Date: Mon, 25 Dec 2017 18:48:54 +0100 Subject: [PATCH] SQLite is bugged with distributed transactions: disable distributed tests. SQLite does not actually implement two phases commit and has threading issues when participating into a distributed transaction. https://system.data.sqlite.org/index.html/tktview/5cee5409f84da5f62172 --- src/NHibernate/Dialect/SQLiteDialect.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/NHibernate/Dialect/SQLiteDialect.cs b/src/NHibernate/Dialect/SQLiteDialect.cs index 737b8ce31e2..48236f82949 100644 --- a/src/NHibernate/Dialect/SQLiteDialect.cs +++ b/src/NHibernate/Dialect/SQLiteDialect.cs @@ -398,6 +398,17 @@ public override bool SupportsForeignKeyConstraintInAlterTable /// public override bool SupportsConcurrentWritingConnections => false; + /// + /// Does this dialect supports distributed transaction? false. + /// + /// + /// SQLite does not have a two phases commit and as such does not respect distributed transaction semantic. + /// But moreover, it fails handling the threading involved with distributed transactions (see + /// https://system.data.sqlite.org/index.html/tktview/5cee5409f84da5f62172 ). + /// It has moreover some flakyness in tests due to seemingly highly delayed (> 500ms) commits when distributed. + /// + public override bool SupportsDistributedTransactions => false; + // Said to be unlimited. http://sqlite.1065341.n5.nabble.com/Max-limits-on-the-following-td37859.html /// public override int MaxAliasLength => 128;