Subject: Re: Self-cycle not detected in goredo

From: Sergey Matveev <[email-masked]>
Date: Sun, 25 Jan 2026 13:37:28 +0300

Greetings!

*** Niklas Böhm [2026-01-24 14:21]:
>this is something small that I accidentally come across from time-to-time.
>If you have a do file that `redo-ifchange`s itself, then the execution would
>simply stall.

Yes, it try to take a lock on .redo/tgt.lock file, which is already
locked at the very beginning of running tgt. Deadlock occurs.

>I think it would be a nice and small improvement if it would
>instead produce an error, since that is a cycle in the dependency graph.

Currently I do not know how to detect those deadlocks by not
implementing the deadlock-detection algorithm and track all
locks. All of that is definitely not a small improvement.

-- 
Sergey Matveev (http://www.stargrave.org/)
LibrePGP: 12AD 3268 9C66 0D42 6967  FD75 CB82 0563 2107 AD8A