Skip to content
HPEPublic

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

2,041 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ATP Abnormal Termination Processing

Product Description

Abnormal Termination Processing (ATP) is a system that monitors user applications, and should an application take a system trap, ATP performs analysis on the dying application.

  • All of the stack backtraces of the application processes are gathered into a merged stack backtrace tree and written to disk as the file "atpMergedBT.dot".

  • The stack backtrace for the first process to die is sent to stderr as is the number of the signal that caused the death.

  • If the core file size limit (RLIMIT_CORE) is non-zero, a heuristically selected set of processes dump their core.

  • atpMergedBT.dot can be viewed with 'statview', a component of the STAT package (module load cray-stat). The merged stack backtrace tree provides a concise, yet comprehensive, view of what the application was doing at the time of its death.

Building and installing

Requirements

Other HPE packages via either open-source or CPE rpms:

  • cti-devel
  • zmqnet

Other tools needed to build ATP

  • meson
  • autotconf
  • autotools
  • python3

Dual build modes

This version of atp supports building either stand-alone or within the HPE build pipelines. This is mosly confinded to the 'hpe' directory, but there are some ".sh" and ".yaml" files that are required to live in the top level directory. Also, the HPE build relies on submodules. For the open source build, you do not need to git submodule update which would fail because they refer to internal repositories.

Building HPE tools in a shared directory

Given a shared prefix $prefix, you can build cti, zmqnet and atp in turn with:

export PKG_CONFIG_PATH=$prefix/lib/cti/pkgconfig:$prefix/lib/zmqnet/pkgconfg:$PKG_CONFIG_PATH

for i in cti zmqnet atp; do
   pushd $i
   meson setup -Dprefix=$prefix -Dlibdir=lib/$i -Dlibexecdir=libexec/$i ./build
   popd
done

Assuming you've installed the prequisites for all three packages.

One could potentially create cti.wrap and zmqnet.wrap files to build the dependencies as meson subprojects, but the build definitions are not expected to be stable enough yet for that approach to be reliable.

GitHub Actions

Building is currently only set up within the HPE environment which is automated via GitHub Actions in .github/workflows/build_pipeline.yaml

Setting up a development system in an HPE environment.

The build scripts can be used directly assuming you have access to the internal HPE artifactory and GitHub repo to get the dependencies.

Initial set-up

After checking out a version of the repository:

  • git submodule update --init --recursive
  • manually update the build_number variable in the "release_versioning" file

Installing dependencies

The ATP build is set up to work on a VM based on one of the supported OS's and that you have root access to add dependencies

  • sudo ./hpe/runBuildPrep.sh

This installs the packages needed for the build. This is rpms from the OS, like compilers and "devel" packages, plus the CDST rpms from the artifactory:

  • cray-cti
  • zmqnet
  • cray-dyninst

Building ATP

The build is set up to build the artifacts into the expected CPE install location: /opt/cray/pe/atp/[version]

You can either make sure the directory "/opt/cray/pe" is writable by you, or continue the build as root.

To build:

./hpe/runBuild.sh builds the ATP binaries.

The actual build is set up via autotools, so inside the script it's just doing the ./configure; make; make install cycle. So during a development cycle, you can often just use make or make install unless you've added a source file or changed build flags.

Building the rpms

./hpe/runBuildPackage.sh creates the atp and atp-test rpms.

Testing

The functional tests are built into atp-test.rpm to simplify setting up the test on a real HPC machine. See tests/function/README.md for further instructions.

External Documentation

See doc/sphinx.

Internal Documentation

See src/README.md for a basic overview of the code structure.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages