Skip to content
Snippets Groups Projects
  • Vladimir Davydov's avatar
    a4efd470
    fiber: use alternative signal stack · a4efd470
    Vladimir Davydov authored
    We install a signal handler that prints the stack trace on SIGSEGV,
    SIGBUS, SIGILL, SIGFPE. The signal handler uses the current stack.
    This works fine for most issues, but not for stack overflow, because
    the latter makes the current stack unusable, leading to a crash in
    the signal handler. Let's install an alternative signal stack in each
    thread so that we can print the stack trace on stack overflow.
    
    Note that we skip this for ASAN because it installs its own signal
    stack. (Installing a custom stack would result in a crash.)
    
    Closes #9222
    
    NO_DOC=bug fix
    
    (cherry picked from commit cb8e903b)
    a4efd470
    History
    fiber: use alternative signal stack
    Vladimir Davydov authored
    We install a signal handler that prints the stack trace on SIGSEGV,
    SIGBUS, SIGILL, SIGFPE. The signal handler uses the current stack.
    This works fine for most issues, but not for stack overflow, because
    the latter makes the current stack unusable, leading to a crash in
    the signal handler. Let's install an alternative signal stack in each
    thread so that we can print the stack trace on stack overflow.
    
    Note that we skip this for ASAN because it installs its own signal
    stack. (Installing a custom stack would result in a crash.)
    
    Closes #9222
    
    NO_DOC=bug fix
    
    (cherry picked from commit cb8e903b)