Subject: Re: bug#78920: 30.1; Process sentinel is not called when DNS lookup fails

From: Eli Zaretskii <[email-masked]>
Date: Sun, 29 Jun 2025 08:13:04 +0300

> Date: Sat, 28 Jun 2025 18:04:07 -0400
> From: Shawn Henson <[email-masked]>
> 
> I was testing a function of mine which wraps `url-retrieve', and I found
> myself confused that my callback was not being reached with bad
> host names, and upon debugging discovered the process sentinel was not
> being called at all. Using the Lisp debugger added further confusion
> because the process status of the returned buffer would be "failed", but
> this was not the case during normal evaluation due to race conditions.
> 
> You can reproduce this with make-network-process:
> 
> ```
> (let ((my-test-proc (make-network-process :name "dns-fail-test"
>                                            :buffer "dns-fail-test-buf"
>                                            :host "thisisnotarealhostname"
>                                            :service 80
>                                            :nowait t
>                                            :sentinel (lambda (process event)
>                                                        (print event)))))
>    (message "process status: %s" (process-status my-test-proc)))
> ```
> 
> After evaluation, the *Messages* buffer includes:
> 
> ```
> process status: connect
> ```

What happens if you use ':nowait nil' instead?  Is the sentinel get
called?