Is there anything else I can do to get this considered for merge?

On Mon, Feb 9, 2015 at 5:55 PM, Buck Evan <b...@yelp.com> wrote:

> Essentially, if `sv check` is run too soon after `runsv` (or runit for
> that matter), it will immediately fail without waiting for runsv to come
> up. In my particular use case, runit is running inside a (detached) docker,
> and I'm using `sv check` to wait for my dockerized service to be ready,
> which I think is a good use case for `sv check`. Without this patch, I'm
> forced to write some code which re-runs `sv check` if it fails before
> $SVWAIT seconds, which sounds awfully like the behavior of sv-check itself.
>
>
> You can demonstrate the problem I'm trying to describe like so:
>
> #!/bin/bash
> make
> rm -rf myservice
> mkdir -p myservice
> ln -s /bin/cat myservice/run
> ./runsv ./myservice/ >&/dev/null & ./sv check ./myservice/; echo $?; ./sv
> check ./myservice/; echo $?
>
>
> Output:
>
> $ ./demo
> warning: ./myservice/: unable to open supervise/ok: file does not exist
> 1
> ok: run: ./myservice/: (pid 65635) 0s
> 0
>
>
> Patch:
>
> --- src/sv.c
> +++ src/sv.c
> @@ -213,7 +213,7 @@ int checkscript() {
>  int check(char *a) {
>    unsigned int pid;
>
> -  if ((r =svstatus_get()) == -1) return(-1);
> +  if ((r =svstatus_get()) == -1) return(0);
>    while (*a) {
>      if (r == 0) { if (*a == 'x') return(1); return(-1); }
>      pid =(unsigned char)svstatus[15];
>
>

Reply via email to