Hello Kudu Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/5620
to look at the new patch set (#5).
Change subject: Add Google Breakpad support to Kudu
......................................................................
Add Google Breakpad support to Kudu
Breakpad creates minidumps upon crash, which are small files that
include stack-based information for each thread. These do not include
heap information, so they complement, not replace, core files for
debugging purposes.
This patch enables Google Breakpad for the kudu-tserver and kudu-master
processes.
Breakpad is part of the crash-reporting infrastructure open-sourced by
Google. It is also used by Mozilla Firefox and Google Chrome.
When a process crashes, Breakpad writes a small dump file called a
minidump to disk. Since these files are typically only a few MB in size,
this allows users to share critical crash information with developers
for offline analysis.
For more information, see the breakpad getting started docs at
http://chromium.googlesource.com/breakpad/breakpad/+/master/docs/getting_started_with_breakpad.md
By default, on crash, minidump files are written to a subdirectory of
the default log directory for a given Kudu daemon process. This was
chosen for the following reasons:
1. The minidump files are relatively small, potentially comparable in
size to log files, and the log directory is a place an administrator
would look in when debugging.
2. This convention is consistent with what Apache Impala (incubating)
does for its minidump files.
Changes in this patch:
* Add breakpad to thirdparty.
* Add breakpad source archive creation script (Breakpad does not do
releases).
* Add a "hack" to the breakpad thirdparty installation routine to
forcibly add a breakpad/ prefix to the breakpad header files. This
frees us from having to modify our include path when building.
* Pull in (modified) util/minidump.{cc,h} from Apache Impala (incubating).
The modifications mostly consist of removing use of boost::filesystem
and conformance to the Kudu code style guidelines.
* Enable breakpad support for the kudu-tserver and kudu-master process
startup routines.
* By default, invoke previously-installed signal handler if installed.
* Install SIGUSR1 handler to create minidump on demand.
* Add #ifdefs and CMake logic for Linux.
Change-Id: I495695cc38b75377f20b0497093a81ed5baa887f
---
M CMakeLists.txt
A cmake_modules/FindBreakpadClient.cmake
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/integration-tests/external_mini_cluster.cc
M src/kudu/integration-tests/external_mini_cluster.h
A src/kudu/integration-tests/minidump_generation-itest.cc
M src/kudu/master/master_main.cc
M src/kudu/server/server_base.cc
M src/kudu/server/server_base.h
M src/kudu/tserver/tablet_server_main.cc
M src/kudu/util/CMakeLists.txt
M src/kudu/util/env_posix.cc
A src/kudu/util/minidump-test.cc
A src/kudu/util/minidump.cc
A src/kudu/util/minidump.h
M thirdparty/build-definitions.sh
M thirdparty/build-thirdparty.sh
M thirdparty/download-thirdparty.sh
M thirdparty/preflight.py
A thirdparty/scripts/make-breakpad-src-archive.sh
M thirdparty/vars.sh
21 files changed, 694 insertions(+), 9 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/20/5620/5
--
To view, visit http://gerrit.cloudera.org:8080/5620
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I495695cc38b75377f20b0497093a81ed5baa887f
Gerrit-PatchSet: 5
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Mike Percy <[email protected]>
Gerrit-Reviewer: Adar Dembo <[email protected]>
Gerrit-Reviewer: Alexey Serbin <[email protected]>
Gerrit-Reviewer: Dinesh Bhat <[email protected]>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Lars Volker <[email protected]>
Gerrit-Reviewer: Mike Percy <[email protected]>
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <[email protected]>