Analyze a Segmentation Fault

Run the analyze_seg_fault.py script to gather information about a specified segfault line in a stack trace. The script prints the function name, source filename, and line number where the error occurred. This information can be sent to a MATRIXX representative for troubleshooting errors in the MATRIXX Engine code.

Before you begin

Locate the segmentation fault to analyze in the ${MTX_LOG_DIR}/mtx.log file or in /var/log/messages. The segfault string is in the following format:
segfault at address ip ip_address sp sp_address error error in file[code_starting_address+size]
Example:
segfault at 7f5eccf7c718 ip 00007f5b52c47e1b sp 00007f4f477fb4b0 error 4 in libMtxSto.so[7f5b52a8c000+267000]

For more information about the MATRIXX environment variables, see the discussion about container directories and environment variables in MATRIXX Installation and Upgrade.

Procedure

  1. Run the following command:
    kubectl exec -it engine_pod_name -n matrixx -- bash --login -c "analyze_seg_fault.py segfault_line"

    Where segfault_line is the complete line, for example:

    kubectl exec -it engine_pod_name -n matrixx -- bash --login -c "analyze_seg_fault.py "segfault at 7f5eccf7c718 ip 00007f5b52c47e1b sp 00007f4f477fb4b0 error 4 in libMtxSto.so[7f5b52a8c000+267000]""

    This command prints information similar to the following:

    MtxSto::OID::getCounterValue() const
    /opt/mtx/include/MtxSto/OID.h:400
    operator<<
    /opt/mtx/include/MtxSto/OID.h:463
    void MtxSto::DatabaseIdxManager::removeFromIndexDirect<MtxSto::DatabaseIdx<MtxSto::HashIndex<MtxSto::IndexTraits<char*, true> > > >(MtxSto::DatabaseIdx<MtxSto::HashIndex<MtxSto::IndexTraits<char*, true> > >&, MtxUtil::DataContainer const&, MtxSto::DatabaseIdx<MtxSto::HashIndex<MtxSto::IndexTraits<char*, true> > >::Value const&)
    /opt/mtx/include/MtxSto/DatabaseIdxManager.h:366 
  2. Give this information to your MATRIXX Support representative to aid in troubleshooting errors.