At a customer whose repository sits on a monitored instance, the agent reported 12 deadlocks that were its own: two instances' monitors save findings in parallel, one transaction each, and while insight.Findings is small SQL Server scans it, so the two lock each other's rows. - SaveRuleResultsAsync takes an exclusive application lock for its transaction (the agent is the only writer; a save takes milliseconds) and retries if chosen as deadlock victim anyway - repository connections are named "SQLInsight Pro (repository)" - deadlocks where every participant is SQLInsight Pro are not reported (the read position still moves past them); any other session keeps it The new integration test (two instances saving 25 rules x 40 rounds in parallel) failed 2 of 2 without the fix and passed 5 of 5 with it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| SQLInsight.Agent.Tests | ||
| SQLInsight.Collectors.Tests | ||
| SQLInsight.Community.Tests | ||
| SQLInsight.Connectivity.Tests | ||
| SQLInsight.Core.Tests | ||
| SQLInsight.IntegrationTests | ||
| SQLInsight.Licensing.Tests | ||
| SQLInsight.Notifications.Tests | ||
| SQLInsight.Rules.Tests | ||
| SQLInsight.Updates.Tests | ||