GNU bug report logs - #7723
Process list gone wild

Previous Next

Packages: w32, emacs;

Reported by: Lennart Borgman <lennart.borgman <at> gmail.com>

Date: Fri, 24 Dec 2010 10:09:02 UTC

Severity: normal

Tags: moreinfo

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 7723 in the body.
You can then email your comments to 7723 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Fri, 24 Dec 2010 10:09:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Lennart Borgman <lennart.borgman <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 24 Dec 2010 10:09:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Lennart Borgman <lennart.borgman <at> gmail.com>
To: Emacs Bugs <bug-gnu-emacs <at> gnu.org>
Subject: Process list gone wild
Date: Fri, 24 Dec 2010 11:07:16 +0100
Got this when I tried to exit Emacs:

Debugger entered--Lisp error: (wrong-type-argument char-or-string-p
("c:/emacs/EmacsW32/nxhtml/etc/wds/DesktopSearch.rb" "c:/" "journey"))
  list-processes(t)
  save-buffers-kill-emacs(nil)
  save-buffers-kill-terminal(nil)
  call-interactively(save-buffers-kill-terminal nil nil)




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Fri, 24 Dec 2010 11:29:02 GMT) Full text and rfc822 format available.

Message #8 received at 7723 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lennart Borgman <lennart.borgman <at> gmail.com>
Cc: 7723 <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Fri, 24 Dec 2010 13:33:11 +0200
> From: Lennart Borgman <lennart.borgman <at> gmail.com>
> Date: Fri, 24 Dec 2010 11:07:16 +0100
> Cc: 
> 
> Got this when I tried to exit Emacs:
> 
> Debugger entered--Lisp error: (wrong-type-argument char-or-string-p
> ("c:/emacs/EmacsW32/nxhtml/etc/wds/DesktopSearch.rb" "c:/" "journey"))
>   list-processes(t)
>   save-buffers-kill-emacs(nil)
>   save-buffers-kill-terminal(nil)
>   call-interactively(save-buffers-kill-terminal nil nil)

Lennart, _PLEASE_ make a point of using report-emacs-bug to report
bugs.  You consistently don't do that, and thus your reports don't
include important information, such as the Emacs version, the date of
its build (which hints on the code base), etc.  Coming from such a
veteran Emacs user and developer, it is unreasonable.




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Fri, 24 Dec 2010 12:12:01 GMT) Full text and rfc822 format available.

Message #11 received at 7723 <at> debbugs.gnu.org (full text, mbox):

From: Lennart Borgman <lennart.borgman <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 7723 <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Fri, 24 Dec 2010 13:17:40 +0100
On Fri, Dec 24, 2010 at 12:33 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: Lennart Borgman <lennart.borgman <at> gmail.com>
>> Date: Fri, 24 Dec 2010 11:07:16 +0100
>> Cc:
>>
>> Got this when I tried to exit Emacs:
>>
>> Debugger entered--Lisp error: (wrong-type-argument char-or-string-p
>> ("c:/emacs/EmacsW32/nxhtml/etc/wds/DesktopSearch.rb" "c:/" "journey"))
>>   list-processes(t)
>>   save-buffers-kill-emacs(nil)
>>   save-buffers-kill-terminal(nil)
>>   call-interactively(save-buffers-kill-terminal nil nil)
>
> Lennart, _PLEASE_ make a point of using report-emacs-bug to report
> bugs.  You consistently don't do that, and thus your reports don't
> include important information, such as the Emacs version, the date of
> its build (which hints on the code base), etc.  Coming from such a
> veteran Emacs user and developer, it is unreasonable.

Ah, yes, sorry. I think this is enough here for the version:

GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600) from trunk 2010-10-19

I think the problem is missing error handling in the C code. I
frequently ran out of some OS resources (because of a long standing
bug in windows xp) and those things does not seem to be checked in the
C sources always.




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Sat, 25 Dec 2010 12:29:02 GMT) Full text and rfc822 format available.

Message #14 received at 7723 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lennart Borgman <lennart.borgman <at> gmail.com>
Cc: 7723 <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Sat, 25 Dec 2010 14:33:03 +0200
> From: Lennart Borgman <lennart.borgman <at> gmail.com>
> Date: Fri, 24 Dec 2010 13:17:40 +0100
> Cc: 7723 <at> debbugs.gnu.org
> 
> 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?
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.

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.




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Sat, 25 Dec 2010 15:24:01 GMT) Full text and rfc822 format available.

Message #17 received at 7723 <at> debbugs.gnu.org (full text, mbox):

From: Lennart Borgman <lennart.borgman <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 7723 <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Sat, 25 Dec 2010 16:29:31 +0100
On Sat, Dec 25, 2010 at 1:33 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: Lennart Borgman <lennart.borgman <at> gmail.com>
>> Date: Fri, 24 Dec 2010 13:17:40 +0100
>> Cc: 7723 <at> debbugs.gnu.org
>>
>> 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.




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Sat, 25 Dec 2010 17:26:01 GMT) Full text and rfc822 format available.

Message #20 received at 7723 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Lennart Borgman <lennart.borgman <at> gmail.com>
Cc: 7723 <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Sat, 25 Dec 2010 19:29:50 +0200
> From: Lennart Borgman <lennart.borgman <at> gmail.com>
> Date: Sat, 25 Dec 2010 16:29:31 +0100
> Cc: 7723 <at> debbugs.gnu.org
> 
> As I have said before: all calls to the system must be carefully checked.

A call to Finsert is not a system call.  And there's nothing
system-call'ish in the fact that a value that was supposed to be a
Lisp string is instead a list of strings.  I would rather suspect some
rare condition in the code that doesn't get handled correctly.

> > 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.

Well, then how about running Emacs under a debugger, and when that
happens again, looking around for the information I requested?




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7723; Package emacs. (Sat, 25 Dec 2010 17:37:01 GMT) Full text and rfc822 format available.

Message #23 received at 7723 <at> debbugs.gnu.org (full text, mbox):

From: Lennart Borgman <lennart.borgman <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 7723 <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Sat, 25 Dec 2010 18:42:49 +0100
On Sat, Dec 25, 2010 at 6:29 PM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: Lennart Borgman <lennart.borgman <at> gmail.com>
>> Date: Sat, 25 Dec 2010 16:29:31 +0100
>> Cc: 7723 <at> debbugs.gnu.org
>>
>> As I have said before: all calls to the system must be carefully checked.
>
> A call to Finsert is not a system call.  And there's nothing
> system-call'ish in the fact that a value that was supposed to be a
> Lisp string is instead a list of strings.  I would rather suspect some
> rare condition in the code that doesn't get handled correctly.

No, of course not. But the fact is that I have only seen this problem
when system resources left are low. That is why I suspect some system
call mixing things up.

From your comment I think you believe that this could happen anywhere
in Emacs, though it is rare. It could be true. I think I have filed a
bug report about blinking cursor that perhaps might be related. For
some reason I do not understand the cursor sometimes starts to blink
very fast.

That problem is reproducible.

>> > 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.
>
> Well, then how about running Emacs under a debugger, and when that
> happens again, looking around for the information I requested?

I will try to, thanks.




Reply sent to Glenn Morris <rgm <at> gnu.org>:
You have taken responsibility. (Mon, 11 Jul 2011 23:49:01 GMT) Full text and rfc822 format available.

Notification sent to Lennart Borgman <lennart.borgman <at> gmail.com>:
bug acknowledged by developer. (Mon, 11 Jul 2011 23:49:02 GMT) Full text and rfc822 format available.

Message #28 received at 7723-done <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 7723-done <at> debbugs.gnu.org
Subject: Re: bug#7723: Process list gone wild
Date: Mon, 11 Jul 2011 19:48:51 -0400
If you ever get this information, please reopen or reply to this report.
Otherwise there is nothing to be done.

Eli Zaretskii wrote:

> Well, then how about running Emacs under a debugger, and when that
> happens again, looking around for the information I requested?




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 09 Aug 2011 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 315 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.