Subject: bug#7723: Process list gone wild

From: Lennart Borgman <[email-masked]>
Date: Sat, 25 Dec 2010 16:29:31 +0100

On Sat, Dec 25, 2010 at 1:33 PM, Eli Zaretskii <[email-masked]> wrote:
>> From: Lennart Borgman <[email-masked]>
>> Date: Fri, 24 Dec 2010 13:17:40 +0100
>> Cc: [email-masked]
>>
>> I think the problem is missing error handling in the C code.
>
> Maybe.  But with the information you presented, I cannot see what
> error handling is needed and where.  The error message probably comes
> from one of the calls to `insert' made by list-processes, but it's not
> clear which one.  The offending value, viz.:
>
>  ("c:/emacs/EmacsW32/nxhtml/etc/wds/DesktopSearch.rb" "c:/" "journey")
>
> looks like the command-line arguments of some process, is that right?

Yes, it is from a call to start-process.

> If so, there's a loop in list_processes_1, a subroutine of
> list-processes, that should have walked this list inserting its
> elements one by one.  Unless you provide more information from the C
> level, I cannot figure out why did that fail and what to o to fix
> that.

As I have said before: all calls to the system must be carefully checked.

> If you can reproduce this, put a breakpoint inside list_processes_1,
> and see which of the calls to Finsert signals the error and why.

It is not reproducible, of course. It could be something Emacs can not
fix - or it might be that Emacs does not check a return value  (or
condition) from the system somewhere. A thing you will never notice
unless some extreme condition is there on the host system.