[pacman-dev] [PATCH] tolerate broken logpipe
Eli Schwartz
eschwartz at archlinux.org
Wed Jul 10 02:52:07 UTC 2019
On 7/9/19 9:57 PM, Yardena Cohen wrote:
> Sometimes makechrootpkg fails with:
>
> rm: cannot remove '/logdest/logpipe.xxxxxxxx': No such file or directory
>
> This shouldn't cause the whole script to fail, so let's tolerate a missing pipe
As a matter of curiosity, when does this happen? I don't recall offhand
seeing it.
I'm not saying it's fundamentally wrong to make this change, but I
wouldn't have expected this to be a problem.
> Signed-off-by: Yardena Cohen <yardenack at gmail.com>
> ---
> scripts/makepkg.sh.in | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index aa03e9d9..9f8c9096 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -344,7 +344,7 @@ remove_deps() {
>
> error_function() {
> if [[ -p $logpipe ]]; then
> - rm "$logpipe"
> + rm -f "$logpipe"
If we just checked using [[ -p namedpipe ]] then it seems like the
window for a TOCTOU is pretty narrow...
Aside for which, if we've reached this point then we're already erroring
out, so -f would only silence a warning, not make anything succeed. So
this should not be what is causing the whole script to fail.
> fi
> # first exit all subshells, then print the error
> if (( ! BASH_SUBSHELL )); then
> @@ -428,7 +428,7 @@ run_function() {
> $pkgfunc &>"$logpipe"
>
> wait $teepid
> - rm "$logpipe"
> + rm -f "$logpipe"
I'm curious under what situation we could tee to a file, wait until tee
exits, and then try but fail to delete the file.
IIRC the only times we use run_function() are inside run_function_safe()
which sets up errexit, so if this fails then that would explain why the
script would abort, but I don't get how the file is supposed to
disappear in the first place.
> else
> "$pkgfunc"
> fi
>
--
Eli Schwartz
Bug Wrangler and Trusted User
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1601 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20190709/a2d246fd/attachment.sig>
More information about the pacman-dev
mailing list