Summary

Runaway stack problem

Metadata

Description

Occasionally we still run out of stack. See for example:

Changes and comments

[2016-04-24 14:31:09 UTC] sjamaan wrote:

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

[2016-04-27 13:36:39 UTC] evhan changed status from new to closed

[2016-04-27 13:36:39 UTC] evhan set resolution to fixed

[2016-04-27 13:36:39 UTC] evhan wrote:

Fixed by 5d2a17a, f2ed421, 10ef6f6.