Subject: bug#53814: process-status returns invalid/undocumented status file-error for network process

From: emacsq <[email-masked]>
Date: Sun, 06 Feb 2022 07:26:00 +0000

M-x list-process shows some network processes with the
status file-error.

According to the docs this is not a valid return
value for process-status:

Return the status of PROCESS.

The returned value is one of the following symbols:
run  -- for a process that is running.
stop -- for a process stopped but continuable.
exit -- for a process that has exited.
signal -- for a process that has got a fatal signal.
open -- for a network stream connection that is open.
listen -- for a network stream server that is listening.
closed -- for a network stream connection that is closed.
connect -- when waiting for a non-blocking connection to complete.
failed -- when a non-blocking connection has failed.
nil -- if arg is a process name and no such process exists.
PROCESS may be a process, a buffer, the name of a process, or
nil, indicating the current buffer's process.

Apparently, process.c does set this this invalid status for some
reason:

  Lisp_Object data = get_file_errno_data (err, contact, xerrno);

  pset_status (p, list2 (Fcar (data), Fcdr (data)));
  unbind_to (count, Qnil);
  return;

https://github.com/emacs-mirror/emacs/blob/3af9e84ff59811734dcbb5d55e04e1fdb7051e77/src/process.c#L3642