U4-9746 - Models Builder minor / deadlocks

Created by Stephan 06 Apr 2017, 11:48:26 Updated by Shannon Deminick 10 Apr 2017, 04:46:51

Tags: Unscheduled

Subtask of: U4-9609

Thanks to the new minidumps feature in 7.5.12, we have minidumps for ThreadAbortException errors. Need to analyze them and see what's going on


Stephan 06 Apr 2017, 11:49:31

minidump clearly showing a deadlock between our own code and BuildManager, fixing.

Stephan 06 Apr 2017, 11:50:07

In this issue too: totally exclude our own files when detecting file changes in ~/App_Data/Models in PureLive, as there seems to be some race conditions on slow filesystems.

Stephan 06 Apr 2017, 12:12:45

PR https://github.com/zpqrtbnk/Zbu.ModelsBuilder/pull/140

(note that it's on MB repo!)

review: has to be code review really, I have put lots of comments in the code to explain what we're doing, but apart from this, not sure how we can "test".

Shannon Deminick 10 Apr 2017, 04:26:09

The code looks fine and from what I can tell this 'works' because we are putting a lock on the thread to "TheBuildManager" first before proceeding to make our own lock and due to the way that Monitor.Enter works, we're establishing the lock on this object on the thread first which means it's already locked. The 2nd Monitor.Enter call which is made by the CompilationLock instance is irrelevant because the lock has already been made.

Shannon Deminick 10 Apr 2017, 04:46:47

I've tried to break it but I can't so will publish MB 3.0.7 and update core to reference it.

Priority: Normal

Type: Task

State: Fixed


Difficulty: Normal


Backwards Compatible: True

Fix Submitted:

Affected versions:

Due in version: 7.5.13

Sprint: Sprint 56

Story Points: