• Daniel Black's avatar
    MDEV-15051: signal handler - output information about the core generation · dc8e15db
    Daniel Black authored
    The working directory, resource limits and core pattern will
    aid the user finding a core file in the case of failure.
    
    While the core file size is most relevant however other resource
    limits may give a clue as the the cause of the fatal signal so
    include them also.
    
    As signal handler functions are limited, proc filesystem reads/
    readlink calls are used instead of the more obvious getcwd/getrlimits
    functions which aren't listed as signal safe.
    
    Results in output of the form:
    
    Writing a core file: working directory at /tmp/datadir
    Resource Limits:
    Limit                     Soft Limit           Hard Limit Units
    Max cpu time              unlimited            unlimited seconds
    Max file size             unlimited            unlimited bytes
    Max data size             unlimited            unlimited bytes
    Max stack size            8388608              unlimited bytes
    Max core file size        unlimited            unlimited bytes
    Max resident set          unlimited            unlimited bytes
    Max processes             47194                47194 processes
    Max open files            1024                 4096 files
    Max locked memory         65536                65536 bytes
    Max address space         unlimited            unlimited bytes
    Max file locks            unlimited            unlimited locks
    Max pending signals       47194                47194 signals
    Max msgqueue size         819200               819200 bytes
    Max nice priority         0                    0
    Max realtime priority     0                    0
    Max realtime timeout      unlimited            unlimited            us
    Core pattern: |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I
    
    Segmentation fault (core dumped)
    
    Closes #537
    dc8e15db
signal_handler.cc 11.4 KB