Email List: Xaustin-review-lX
[All Lists]

Defect in XSH sigaltstack()

To: yyyyyyyyyyyyyyy@xxxxxxxxxxxxx
Subject: Defect in XSH sigaltstack()
From: yyyyyyy@xxxxxxxxxx
Date: Wed, 27 Feb 2002 04:01:26 GMT
        Defect report from : Ulrich Drepper , Red Hat

(Please direct followup comments direct to yyyyyyyyyyyyyy@xxxxxxxxxxxxx)

@ page 1345 line 41764f section sigaltstack() objection {ud-5}

Problem:

Defect code :  2. Omission

The sigaltstack() definition currently says wrt to threads only the
following:

  Use of this function by library threads that are not bound to
  kernel-scheduled entities results in undefined behavior.

This is not enough IMO.  At least not without clarifications.

The above statement only makes sense if alternate stacks are
per-thread.  This isn't stated anywhere, though.  And the pthread_create
desription doesn't say anything about inherinting or resetting the
alternate stack either.

Alternatively, if alternate stack are per-process, this function and alternate 
stack cannot be used at all.  More than one signal can be
handled by various threads of a process at the same time which would require 
the same alternate stack be used by multiple threads at the
same time.

Action:

Two alternatives:

  If alternate stacks are per-thread, say this explicitlly.  Add to
  the first sentence in line 41735:

    for the current thread

  Also in the pthread_create man page add  as a new line 32853:

    The alternate stack is not inherited.

  Mark this sentence XSI

Second alternative:

  If thread are per-process add to the sentence in the lines
  41764-41675 with:

    sigaltstack() can be used in multi-threaded applications only
    if it can be made sure that never more than one signal is
    processed at any one time.

  And in the rational:

    Since the requirement that only one signal at any one time can
    be processed in multi-threaded applications can (almost) never
    be fulfilled this function effectively cannot be used in multi-
    threaded applications.

<Prev in Thread] Current Thread [Next in Thread>