The problem is that the auto-analysis acquires the execution lock (status.exec_lock) but if the
analysis cannot complete due to a bug, the lock is never released. This causes nasty problems for
many subsequent tests, resulting in a cascade of test failures. This is especially problematic in
the GUI tests where the execution lock controls many aspects of the interface.
The solution was simply to run the auto-analysis run() method within a try-finally statement. The
release of the lock occurs in the 'finally' clause, guaranteeing its release.