The lock file was being removed when we hadn't successfully locked it which defeated the purpose of the lockfile. Adjust cleanup_lockfile such that it only unlinks the lockfile if we have successfully locked the lockfile and it is still active (lockfile != NULL).