I can't reproduce this anymore on 28.1 either:

> (defun +ivy--always-return-zero-exit-code-a (fn &rest args)
>   (let ((process-exit-status-orig
>          (symbol-function 'process-exit-status)))
>     (cl-letf* (((symbol-function 'process-exit-status)
>                 (lambda (_proc)
>                   (let ((code (funcall process-exit-status-orig _proc)))
>                     (if (/= code 0) 0 code)))))
>       (apply fn args))))
> (defun my-test-exit-status-advised ()
>   (my-test-exit-status))
> (defun my-test-exit-status ()
>   (let ((proc (start-process "my-test-exit-status" nil "false")))
>     (while (not (eq (process-status proc) 'exit))
>       (sit-for 0.05))
>     (process-exit-status proc)))
> (advice-add #'my-test-exit-status-advised :around #'+ivy--always-return-zero-exit-code-a)
> (my-test-exit-status-advised)           ; => 0
> (my-test-exit-status)                   ; => 1

So let's close this.

On Mon, Sep 12, 2022 at 4:49 AM Lars Ingebrigtsen <larsi@gnus.org> wrote:
Robert Irelan <rirelan@gmail.com> writes:

>     (defun +ivy--always-return-zero-exit-code-a (fn &rest args)
>       (let ((process-exit-status-orig
>              (symbol-function 'process-exit-status)))
>         (cl-letf* (((symbol-function 'process-exit-status)
>                     (lambda (_proc)
>                       (let ((code (funcall process-exit-status-orig _proc)))
>                         (if (= code 2) 0 code)))))
>           (apply fn args)))
>     (advice-add #'counsel-rg :around #'+ivy--always-return-zero-exit-code-a)

(I'm going through old bug reports that unfortunately weren't resolved
at the time.)

Andrea was apparently unable to reproduce the problem here on the
current "master" branch.  Robert, would it be possible for you to test
this on that branch and see whether this works better there?


--
Robert Irelan
rirelan@gmail.com