[RTEMS Project] #2263: POSIX signal handler can cause stack overflow when blocked

RTEMS trac trac at rtems.org
Thu Feb 12 08:26:47 UTC 2015


#2263: POSIX signal handler can cause stack overflow when blocked
---------------------+------------------
 Reporter:  daniel   |      Owner:
     Type:  defect   |     Status:  new
 Priority:  normal   |  Milestone:  4.11
Component:  General  |    Version:  4.10
 Severity:  normal   |   Keywords:
---------------------+------------------
 The psxalarm test brought it to my attention. The psxalarm signal handler
 causes a stack overflow to happen when printf() is called from the
 handler.

 It can be triggered on UP and SMP LEON3 or NGMP systems, more frequent on
 a slow UART. It also seems easier to trigger the case on systems with
 short console UART FIFO depth.

 If the signal handler contains a blocking call it seems that when the task
 executing the handler is woken up again another stack frame with the same
 POSIX signal handler is called. Now that handler will make the same
 blocking call, when woken up again another stack frame is added and so on.
 Eventually a stack overflow occurs.

 This behaviour seems to be present since 4.10 at least.

--
Ticket URL: <http://devel.rtems.org/ticket/2263>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list