chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #1283: Runaway stack problem


From: Chicken Trac
Subject: Re: [Chicken-janitors] #1283: Runaway stack problem
Date: Sun, 24 Apr 2016 12:31:09 -0000

#1283: Runaway stack problem
-----------------------------+--------------------
  Reporter:  sjamaan         |      Owner:
      Type:  defect          |     Status:  new
  Priority:  critical        |  Milestone:  4.11.0
 Component:  core libraries  |    Version:  4.10.x
Resolution:                  |   Keywords:
-----------------------------+--------------------

Comment (by sjamaan):

 OK, the reason for this is extremely simple and I don't understand why
 this hasn't caused problems before:

 - When a signal is received by the process, we call
 {{{C_raise_interrupt}}}, which resets the stack pointer to the bottom of
 the stack, so that the stack checks "think" the stack is full (while
 really it isn't)
 - Normally, a {{{C_demand()}}} call will take care of handling this by
 triggering a GC/signal handler.
 - A {{{C_stack_overflow_check}}} (or a direct call to
 {{{C_stack_check1}}}) performs more or less the same checks as
 {{{C_demand()}}} does, so if this is the first thing that happens after a
 signal arrived, it will simply bomb.  That's why sometimes it shows a
 stack overflow error and other times a {{{C_CIRCULAR_DATA_ERROR}}}, if the
 signal happens **just** before a call to {{{equal?}}}.

--
Ticket URL: <http://bugs.call-cc.org/ticket/1283#comment:1>
CHICKEN Scheme <http://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]