An error leading to an uncontrolled termination of a software process (i.e. a crash) is hard to locate and solve. When a crash occurs, Linux kernel produces a core dump file containing a lot of meaningful data to the developers. The challenge is that when crashes occur in automated testing or in actual use, developers have no simple means to access generated core dumps or to investigate the environment of the crashed processes.
MeeGo Crash Analysis Solution is an automated solution that brings core dumps and other useful information about the environment of the crashed process to the developers. The solution analyzes the core dumps and produces also statistical data about the occurrences of different crashes which is also meaningful to testers and managers.
The figure above shows the context of the MeeGo Crash Analysis Solution. The figure depicts different kinds of users and interfaces of the system. Firstly, core dumps are collected from devices-under-test (DUTs). Core dumps can be collected by automated test environment, such as OTS, directly in the DUT by a pre-installed agent or manually by uploading the core dumps e.g. via a PC. Secondly, the solution analyses the collected core dumps with the help of debug information available in the package repositories of the build system. Thirdly, the collected and analyzed data is consumed by users through a web interface.
The figure above shows an overview of the structure of MeeGo Crash Analysis Solution. The software consists of components deployed on the device-under-test (DUT) and Crash Analysis Service. The DUT has two components, namely Rich Core Dumper, and Crash Reporter. The Crash Analysis Service contains Upload Server, Corelysis, and Crash Reports Web UI. Also the logical data storages are illustrated in the figure. The illustration also shows the following external entities: a Test PC used for manual core dump uploads, Data users accessing the service and Build Service.