threads / discuss / 58665

waitpid errors with shell aliases

Subject: waitpid errors with shell aliases

## tl;dr

3 messages between Oct 21, 2022 and Oct 25, 2022.

replies: 2people: 2as markdown or json

shubham sharma· Oct 21, 2022, 09:26 UTC · lore
Hi,

I am using git shell aliases in config and was facing some weird error. The error is not reproducible in all runs and occurs randomly between runs...consider the minimal config(alias section) below for usage idea:

[alias]
    A = "!f(){ \
        ( \
              // implementation
              git \"$1\"; \
        ) 250<dir/tmp; \
    }; f"
    B = "!f(){ \
        ssh <server> <command>; \
    }; f"
    C= "!f(){ \
        git A B; \
    }; f"

when firing "git C" from shell,in some cases(not deterministically reproducible) i observed weird waitpid errors of the type :

error: waitpid for f(){         ssh <server> <command>;    }; f
failed: No child processes
fatal: while expanding alias 'B': 'f(){       ssh <server> <command>;
     }; f': No child processes
error: waitpid for f(){     (//implementation; git "$1"; )250<dir/tmp;
   }; f failed: No child processes
fatal: while expanding alias 'A': 'f(){        (//implementation; git
"$1"; )250<dir/tmp;      }; f': No child processes
error: waitpid for f(){    git A B;    }; f failed: No child processes
fatal: while expanding alias 'C': 'f(){       git A B;      }; f': No
child processes
can anyone please help as to what could possibly be the reason for this?

Thanks, Shubham

brian m. carlson· Oct 24, 2022, 00:28 UTC · re: shubham sharma · lore

Re: waitpid errors with shell aliases

On 2022-10-21 at 09:26:11, shubham sharma wrote:
Show 37 quoted lines
> Hi,
> 
> I am using git shell aliases in config and was facing some weird
> error. The error is not reproducible in all runs and occurs randomly
> between runs...consider the minimal config(alias section) below for
> usage idea:
> 
> [alias]
>     A = "!f(){ \
>         ( \
>               // implementation
>               git \"$1\"; \
>         ) 250<dir/tmp; \
>     }; f"
>     B = "!f(){ \
>         ssh <server> <command>; \
>     }; f"
>     C= "!f(){ \
>         git A B; \
>     }; f"
> 
> when firing "git C" from shell,in some cases(not deterministically reproducible)
> i observed weird waitpid errors of the type :
> 
> error: waitpid for f(){         ssh <server> <command>;    }; f
> failed: No child processes
> fatal: while expanding alias 'B': 'f(){       ssh <server> <command>;
>      }; f': No child processes
> error: waitpid for f(){     (//implementation; git "$1"; )250<dir/tmp;
>    }; f failed: No child processes
> fatal: while expanding alias 'A': 'f(){        (//implementation; git
> "$1"; )250<dir/tmp;      }; f': No child processes
> error: waitpid for f(){    git A B;    }; f failed: No child processes
> fatal: while expanding alias 'C': 'f(){       git A B;      }; f': No
> child processes
> 
> can anyone please help as to what could possibly be the reason for this?

Could you tell us what OS and version of Git you're running, and what shell /bin/sh is? I could imagine that there might be some weirdness on Windows with the shell, but I would find an ECHILD to be surprising on Unix.

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA
shubham sharma· Oct 25, 2022, 09:47 UTC · re: brian m. carlson · lore

Re: waitpid errors with shell aliases

Hi,
/bin/sh -> GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
OS -> Arch Linux
Kernel: Linux 5.4.86-1-lts
Architecture: x86-64
git -> git version 2.30.0

Thanks, Shubham

On Mon, Oct 24, 2022 at 5:58 AM brian m. carlson <sandals@crustytoothpaste.net> wrote:

Show 47 quoted lines
>
> On 2022-10-21 at 09:26:11, shubham sharma wrote:
> > Hi,
> >
> > I am using git shell aliases in config and was facing some weird
> > error. The error is not reproducible in all runs and occurs randomly
> > between runs...consider the minimal config(alias section) below for
> > usage idea:
> >
> > [alias]
> >     A = "!f(){ \
> >         ( \
> >               // implementation
> >               git \"$1\"; \
> >         ) 250<dir/tmp; \
> >     }; f"
> >     B = "!f(){ \
> >         ssh <server> <command>; \
> >     }; f"
> >     C= "!f(){ \
> >         git A B; \
> >     }; f"
> >
> > when firing "git C" from shell,in some cases(not deterministically reproducible)
> > i observed weird waitpid errors of the type :
> >
> > error: waitpid for f(){         ssh <server> <command>;    }; f
> > failed: No child processes
> > fatal: while expanding alias 'B': 'f(){       ssh <server> <command>;
> >      }; f': No child processes
> > error: waitpid for f(){     (//implementation; git "$1"; )250<dir/tmp;
> >    }; f failed: No child processes
> > fatal: while expanding alias 'A': 'f(){        (//implementation; git
> > "$1"; )250<dir/tmp;      }; f': No child processes
> > error: waitpid for f(){    git A B;    }; f failed: No child processes
> > fatal: while expanding alias 'C': 'f(){       git A B;      }; f': No
> > child processes
> >
> > can anyone please help as to what could possibly be the reason for this?
>
> Could you tell us what OS and version of Git you're running, and what
> shell /bin/sh is?  I could imagine that there might be some weirdness on
> Windows with the shell, but I would find an ECHILD to be surprising on
> Unix.
> --
> brian m. carlson (he/him or they/them)
> Toronto, Ontario, CA

← back to recent threads