On Thu, 18 Apr 2024, Zachary Santer wrote:
On Wed, Mar 20, 2024 at 4:54 AM Carl Edquist <edqu...@cs.wisc.edu> wrote:
However, if stdbuf's magic env vars are exported in your shell (either
by doing a trick like 'export $(env -i stdbuf -oL env)', or else more
simply by first starting a new shell with 'stdbuf -oL bash'), then
every command in your pipelines will start with the new default
line-buffered stdout. That way your line-items from build.sh should get
passed all the way through the pipeline as they are produced.
Finally had a chance to try to build with 'stdbuf --output=L --error=L
--' in front of the build script, and it caused some crazy problems.
For what it's worth, when I was trying that out msys2 (since that's what
you said you were using), I also ran into some very weird errors when just
trying to export LD_PRELOAD and _STDBUF_O to what stdbuf -oL sets. It was
weird because I didn't see issues when just running a command (including
bash) directly under stdbuf. I didn't get to the bottom of it though and
I don't have access to a windows laptop any more to experiment.
Also I might ask, why are you setting "--error=L" ?
Not that this is the problem you're seeing, but in any case stderr is
unbuffered by default, and you might mess up the output a bit by line
buffering it, if it's expecting to output partial lines for progress or
whatever.
Carl