tikv/tikv

Use breakpad + symbolic to generate and interpret minidump-format core dumps

Open

#4202 opened on Feb 13, 2019

View on GitHub
 (7 comments) (0 reactions) (0 assignees)Rust (15,922 stars) (2,189 forks)batch import
component/buildcomponent/serverdifficulty/mediumhelp wantedtype/enhancement

Description

Edit: We're going to try to integrate breakpad + symbolic to generate compact "minidumps" (via breakpad), and interpret them offline (via symbolic). Next step is to prototype breakpad and symbolic on a toy project to learn how to use them.

Feature Request

Is your feature request related to a problem? Please describe:

Sometimes TiKV may meet some problems like segment fault and crash directly, but unfortunately, our official deployment through Ansbile doesn't enable core because we worry generating too many core dump files may exhaust disk space.

Although we enable core, the generated core files may be too large and can't be sent through the network and we have to debug it on the users' machine directly(of course, this is not allowed in most of the users' environments).

Describe the feature you'd like:

Mostly we only want to know the panic backtrace. Instead of the core file, we can use minidump or just output the panic backtrace.

Teachability, Documentation, Adoption, Migration Strategy:

For minidump, we can use https://github.com/google/breakpad, in Rust, we may try https://github.com/getsentry/symbolic Another way is to output backtrace directly, refer to https://github.com/gby/libcrash and https://www.scribd.com/doc/3726406/Crash-N-Burn-Writing-Linux-application-fault-handlers.

/cc @ethercflow

Contributor guide