Project stuck for a runner because of lingering lock
Lingering locks happen (not frequently). When they do, the given runner won't be able to build for the given project until someone manually removes the lock.
The problem is that Mercurial lock clearing system is based on checking the PID if we are on the same host. That last condition is never true with Docker-based executors.
If I understand correctly (to be double-checked), Docker-based executors are designed so that concurrent jobs are actually using different volumes. Hence there is no concurrency on the repo to update and clearing the locks is always safe. We should do it, provided we can avoid problems with non-Docker executors (shell, ssh).