Subject: Re: redo-ifchange hangs when called with many arguments

From: Sergey Matveev <[email-masked]>
Date: Thu, 21 Oct 2021 12:51:31 +0300

*** goredo [2021-10-19 16:05]:
>I will limit argument passing to mitigate the bug.

I think that it is good enough workaround. If I met that kind of
freezing (again) and won't find the reason (possibly because do not have
time to investigate it clearly), I would just limit number of arguments
(xargs/whatever).

>Maybe, this warrants a note on the FAQ with descriptions of possible workarounds...

Well, I assume that with literally every program you have to remember
about OS environment it is running under. So that would be excess
information. And everybody who uses redo will already know about xargs
and similar tools. Of course, in my humble opinion.

>You could make redo work conservatively and not inspect more dependencies in parallel than jobs are allowed to start anyhow.
>(I honestly don't know, at what point those many files get opened.)

It could be done, yes, probably I will add it soon. When you pass 1000
targets, when 1000 goroutines will run, at least with opened target's
.lock file, waiting when free job slot token will arrive. Target that
waits for children to finish (dependencies) at least holds opened files
with .dep metainformation and at least stderr pipe. So yeah, jobs number
does not limit opened files number.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF