However if I do this in the same workspace, with 3 parallel arms of the dvc dag running at the same time. Regularly one of them terminates with the following error:
ERROR: Unable to acquire lock. Most likely another DVC process is running or was terminated abruptly.
I guess this is an issue of bad timing were two of the processes try to aquire the lock at the same time.
Yet, I would expect one process to wait for the lock for a little while before terminating with an error.
Yes, it is an unfortunate limitation. There is some discussion about it in https://github.com/iterative/dvc/issues/755, so I'm going to close this one as a duplicate and suggest you comment there.
According to the Docs (https://dvc.org/doc/command-reference/repro#parallel-stage-execution) it should be possible to run different arms of the dvc dag in parallel via individual "dvc repro [arm-target]" calls
However if I do this in the same workspace, with 3 parallel arms of the dvc dag running at the same time. Regularly one of them terminates with the following error:
ERROR: Unable to acquire lock. Most likely another DVC process is running or was terminated abruptly.
I guess this is an issue of bad timing were two of the processes try to aquire the lock at the same time.
Yet, I would expect one process to wait for the lock for a little while before terminating with an error.
Output of
dvc doctor
: