memory fault error reporting

Bug #309068 reported by Nikodemus Siivola
2
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Low
Unassigned

Bug Description

On those architectures where :C-STACK-IS-CONTROL-STACK is in
*FEATURES*, we handle SIG_MEMORY_FAULT (SEGV or BUS) on an altstack,
so we cannot handle the signal directly (as in interrupt_handle_now())
in the case when the signal comes from some external agent (the user
using kill(1), or a fault in some foreign code, for instance).

Tthis is fixed by calling arrange_return_to_lisp_function() to a new error-signalling
function, but as a result the error reporting is brittle: the fault address is passed to
lisp code in a global variable, which is decidedly not threadsafe.

lt occurred. We should arrange such that arguments can be passed to the function
called from arrange_return_to_lisp_function(), but this looked hard to do in general
without suffering from memory leaks.

There are probably other use-cases of passing arguments via a_r_t_l_f as well.

Tags: runtime
description: updated
description: updated
Changed in sbcl:
importance: Undecided → Low
status: New → Confirmed
Revision history for this message
Alastair Bridgewater (alastair-bridgewater) wrote :

Fixed in 60b6cdb8074978cabecd2972105ebc851da41bf5.

Changed in sbcl:
status: Confirmed → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.