bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: so-called pipe files (sh-np-*) do not get deleted when processes clo


From: Michael Felt
Subject: Re: so-called pipe files (sh-np-*) do not get deleted when processes close.
Date: Tue, 16 Mar 2021 13:04:28 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1


On 11/03/2021 22:27, Chet Ramey wrote:
On 3/11/21 3:55 PM, Michael Felt (aixtools) wrote:


Sent from my iPhone

On 11 Mar 2021, at 18:15, Chet Ramey <chet.ramey@case.edu> wrote:

On 3/11/21 11:28 AM, Michael Felt wrote:
Hi,
Issue: AdoptOpenJDK build process makes bash calls in a particular way. An abbreviated (shorter pathnames) example is:
```
bash-5.0$ /usr/bin/printf "Building targets 'product-images legacy-jre-image test-image' in configuration 'aix-ppc64-normal-server-release'\n" > >(/usr/bin/tee -a /home/aixtools/build.log) 2> >(/usr/bin/tee -a /home/aixtools/build.log >&2) Building targets 'product-images legacy-jre-image test-image' in configuration 'aix-ppc64-normal-server-release'

I believe this is fixed in bash-5.1.
Would it be difficult to give me a hint for 5.0. I could test further now i have a command that generates the issue.

I can't reproduce it, but you can look at unlink_all_fifos() in bash-5.1.
It's defined in subst.c and called in shell.c.

FYI: Been digging in bash-5.0.18 - learning...

Decided to give bash-5.1 a try. I doubt it is major, but I get as far as:

"../../../src/bash-5.1.0/lib/sh/tmpfile.c", line 289.11: 1506-068 (W) Operation between types "char*" and "int" is not allowed.
ld: 0711-317 ERROR: Undefined symbol: .mkdtemp
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: 1254-004 The error code from the last command is 8.


Using AIX 5.3 TL12 and xlc/xlC-v11, and a largely stripped system Of other OSS).

I'll also give it a go on a more public server.

Michael

Probably because the process substitution does not exit before the shell does.
I was hoping that is what the wait routines were for. Also noticed that the second fifo never gets a pid.

Bash doesn't wait for asynchronous processes before it exits unless you use
`wait'.


Attachment: OpenPGP_0x722BFDB61F396FC2.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]