Subject: Re: bug#7920: 24.0.50; Crash in balance_an_interval + 26

From: Edgar Gonçalves <[email-masked]>
Date: Thu, 27 Jan 2011 16:32:55 +0000

On Jan 27, 2011, at 3:31 AM, Stefan Monnier wrote:

> Looking at the backtrace, the crash is probably not really in
> balance_an_interval; instead what happened is that Emacs got stuck in an
> infinite recursion and the OS killed the process when it reached the
> maximum allowed stack depth, which happened to be when Emacs was in
> balance_an_interval.
> 
> I couldn't find any user-provided info in the bug-report, is that right?

I'm sorry I didn't file a description with this bug report, i forgot and sent the email... But in short, this has been happening when I'm using slime to connect to an emacs-launched clojure shell process. In particular, it happens when clojure hangs, and I don't know how to collect more details at this point - next time it happens I'll provide you with more.

> If I understand the backtrace right, it seems that the infinite
> recursion went through `funcall', so it was an infinite recursion within
> Elisp, and those are supposed to be caught before reaching the
> maximum allowed stack depth thanks to limits like max-specpdl-size.
> 
> So, maybe the bug is that max-specpdl-size is larger than the OS allows,
> in which case we should try and figure out why that is: is it because
> someone set it explicitly higher (too high), or because the OS's maximum
> stack depth is lower than we thought?

Hmm, this may be indeed the case that my max-specdpl-size is too high. This is in part due to me not knowing what "too high" means for my machine - how can I calculate the optimal value? I remember having set it up to 100000 to be able to use a cedet/javasee function (guided by some solution posted on a blog whose name, i'm afraid, i can't recall). Why should Emacs set this value to anything lower than the maximum supported value, does it affect the system performance/resources?

It has been working thus far, though, except with this occasional infinite recursion using slime. I've now set that variable's value to the default (removing my customization), and I'll see if I run into more problems.

Thanks,
--
Edgar Gonçalves