Summary
The PR #2661 pipeline failed on build (macos-latest, net9.0) because CodeIndex.Tests.ConcurrencyTests.SetReadyBit_ConcurrentWriters_DoNotLoseFlags intermittently throws:
Microsoft.Data.Sqlite.SqliteException : SQLite Error 1: 'cannot start a transaction within a transaction'.
The failing stack points to DbWriter.SetReadyBit calling raw BEGIN IMMEDIATE through Execute while SQLite already considers the connection to be in a transaction.
Observed CI
Expected
Concurrent ready-bit writers should serialize on the SQLite write lock without attempting a nested transaction on the same connection.
Summary
The PR #2661 pipeline failed on
build (macos-latest, net9.0)becauseCodeIndex.Tests.ConcurrencyTests.SetReadyBit_ConcurrentWriters_DoNotLoseFlagsintermittently throws:The failing stack points to
DbWriter.SetReadyBitcalling rawBEGIN IMMEDIATEthroughExecutewhile SQLite already considers the connection to be in a transaction.Observed CI
CodeIndex.Tests.ConcurrencyTests.SetReadyBit_ConcurrentWriters_DoNotLoseFlagsExpected
Concurrent ready-bit writers should serialize on the SQLite write lock without attempting a nested transaction on the same connection.