History log of /system/core/crash_reporter/crash_collector.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8ed101bab5d01b1ab0c648586c1d5259404b79c4 03-Dec-2015 Steve Fung <stevefung@google.com> crash_reporter: Fix unit tests

- Removed obsolete unit tests.
- Fix remaining unit tests for Android.

Change-Id: I1665447d375178d2bcf941fec3585c8f96cd2bac
/system/core/crash_reporter/crash_collector.cc
74dc62460b8cdd5bfeac47bfe8e759fc04b55ef8 13-Oct-2015 Alex Vakulenko <avakulenko@google.com> system/core: Rename "chromeos" -> "brillo" in include paths and namespaces

libchromeos is transitioning to libbrillo and chromeos namespaces
and include directory is changing to brillo.

Bug: 24872993
Change-Id: I797613a38c7444a113f12e38366a424388477276
/system/core/crash_reporter/crash_collector.cc
4818011085da225e6fb80512163ac8a8a22aed7f 01-Oct-2015 Steve Fung <stevefung@google.com> crash_reporter: Set Version and Product ID

Read in the ro.build.id property for version, and
ro.product.product_id for the Product ID.

Bug: 22874192
Change-Id: I9a3fbf375d49d04fc7bf6700c5987cb9e435c318
/system/core/crash_reporter/crash_collector.cc
0e8746d895dedf0d8e286d8168d11f67d36cb233 21-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Fix crash_sender

- Remove all the ChromeOS specific logic.
- Fix paths to correct Android paths.
- Add periodic_scheduler, and add crash_sender to init.

Bug: 23231196
Bug: 23233267

Change-Id: I12de28bfbe5d5b08831eda9b28c6d7a669c22290
/system/core/crash_reporter/crash_collector.cc
6c34c2576eb241f134431b2cc847a6c7d70ef012 20-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Relicense as Apache 2.

MODULE_LICENSE_BSD and NOTICE were removed as the license is no longer
different from the rest of system/core.

Bug: 23368756
Change-Id: I31e48eb7c3d153c7c5ec4f694c61474dedac2eeb
/system/core/crash_reporter/crash_collector.cc
ab2ac7d11442975f700bbde5702a96d020d82254 15-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Enable core dumps

Fix various path/directory locations to their Android equivalents
to enable collection of core dumps and generation of mini dumps
to work correctly. Also add the init script to initialize
crash_reporter.

Bug: 22874832
Change-Id: Iffb1529e5259c5da5ba7f6977b2787e738f68a78
/system/core/crash_reporter/crash_collector.cc
c8b741428caeb01f7aca3c4c199e5f6894d335f8 06-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Remove Chrome collector, CrOS build files, DBus

Removed the ChromeOS specific code so that the code compiles. The code
removed is not needed when running on Android, and includes:
* Chrome collector
* ChromeOS build's gyp file
* ChromeOS-specific DBus calls
* ChromeOS-specific collector path logic
* Chrome bypass logic in user collector

Bug: 22672752
Change-Id: I3c7d87c971a181d8f73293519318e3602d142927
/system/core/crash_reporter/crash_collector.cc
129bea543b7572bfdf09c6a7b3cebbe3b57ce723 23-Jul-2015 Steve Fung <stevefung@google.com> crash_reporter: Fix header include paths

Fix the header include paths to be relative to the crash_reporter
base folder.

Bug: 22873331
Change-Id: Icdd0495a79cd7679f38c54a84e189bfb3c9d7f1c
/system/core/crash_reporter/crash_collector.cc
c686fd3cbd62864f5d98c8fc5be291ad9b656d99 08-Jul-2015 Christopher Wiley <wiley@google.com> Remove superfluous legacy DBus includes

This header pulls in glib dependencies which aren't used in these
codebases.

BUG=chromium:508218
TEST=trybots

Change-Id: Iecf8dfcdd8064b1feb694382eea55c3f0df572d3
Reviewed-on: https://chromium-review.googlesource.com/284053
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Trybot-Ready: Christopher Wiley <wiley@chromium.org>
/system/core/crash_reporter/crash_collector.cc
7458089196cba04f2fccd14932aa2b402f924143 27-Mar-2015 Mike Frysinger <vapier@chromium.org> delete __STDC_{FORMAT,LIMIT}_MACROS

With newer glibc versions (2.18+), these macros no longer exist (and the
functionality they protected are always enabled). Delete them.

BUG=chromium:401360
TEST=precq passes

Change-Id: I21b0607a874b9f9e39dff050054a2928a6c55023
Reviewed-on: https://chromium-review.googlesource.com/262903
Trybot-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f5767af079161b0d42a2a6fdbb54690f8384f798 13-Feb-2015 Steve Fung <stevefung@chromium.org> crash: Fix session manager D-Bus call service name

The D-Bus call to session manager was using the incorrect service
name field, causing the crash reporter session lookup to fail and
fallback to placing the crash in /home/chronos/crash. Fix the
D-Bus call so that crashes are put in the right place.

Also, fixing this exposed an error with processing the results.
The previous D-Bus code treated an empty session response the
same as a D-Bus connection error, with the new code D-Bus errors
are handled separately, so also check whether the returned array
is empty.

BUG=chromium:458330
TEST=triggered crash with 'chrome://crash' page; crash files are
placed in /home/chronos/user/crash
TEST=`test_that -b panther <IP> logging_UserCrash` passes

Change-Id: I77733adc5e4287d9eae83a749818d9cc38398c80
Reviewed-on: https://chromium-review.googlesource.com/249800
Reviewed-by: Dan Erat <derat@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
/system/core/crash_reporter/crash_collector.cc
6e13952269ad729594f2670b889bd806e9b0f3b3 05-Feb-2015 Steve Fung <stevefung@chromium.org> crash: Remove glib from crash_reporter

As part of the minimization effort, refactor crash_reporter code to
not depend directly on glib.

BUG=brillo:87, brillo:88, chromium:435314
TEST=`FEATURES=test emerge-panther libchromeos debugd crash-reporter`
TEST=Enabled crash reports; Browsed to chrome://crash; crash files \
generated; `FORCE_OFFICIAL=1 SECONDS_SEND_SPREAD=1 crash_sender` \
/var/log/messages shows crash id, report shows all expected files
TEST=`cbuildbot --remote -p chromiumos/platform2 amd64-generic-full`
CQ-DEPEND=I00331e0bf29195b41cd84d4495ab47738a5a41de
CQ-DEPEND=I9df752d8995773adb56fab34dd97626f3ddf1765

Change-Id: I48b366198a7f89ca55259603cf8470e4d59321bf
Reviewed-on: https://chromium-review.googlesource.com/246441
Reviewed-by: Dan Erat <derat@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
/system/core/crash_reporter/crash_collector.cc
731da3379bd7ead7222b1a7add45e307bec7c865 28-Jan-2015 Daniel Erat <derat@chromium.org> crash-reporter: Use chromeos::KeyValueStore.

Make the crash reporter use libchromeos's KeyValueStore
class to read its log-collection config file and
/etc/lsb-release instead of its own parsing code.

Also update the log-collection config file to split long
commands across multiple lines and to use '=' instead of ':'
to separate executable names from commands.

BUG=chromium:452520
TEST=updated tests; also triggered powerd and chrome crashes
and checked that logs were attached

Change-Id: I4e2447712869608f32a4ae38f5d5cb9c6046af14
Reviewed-on: https://chromium-review.googlesource.com/244121
Reviewed-by: Dan Erat <derat@chromium.org>
Commit-Queue: Dan Erat <derat@chromium.org>
Tested-by: Dan Erat <derat@chromium.org>
/system/core/crash_reporter/crash_collector.cc
859ee45cd2d9feb5e937c0c06f9e6c230979136e 10-Dec-2014 Alex Vakulenko <avakulenko@chromium.org> Update libchrome to r307740 and fix build errors

Updated libchrome, libchrome_crypto, metrics, feedback to the
latest revisions from Chrome (r307740).

Fixed build breaks due to the changes in upstream code:

- scope_ptr no longer needs explicit PassAs<T>() calls.
- scope_ptr<T> no longer has implicit conversion to T*.
Must use scope_ptr<T>::get() instead.
- base/file_util.h moved to base/files/file_util.h
- ARRAYSIZE_UNSAFE() removed in favor of arraysize()
- base::AppendToFile() and base::WriteFileDescriptor() now
return bool instead of the number of bytes written.
- dbus::Bus::AddFilterFunction() now returns void.
- C++11 features are enabled in libchromeos, so all targets
linking with it now have to support C++11
- OVERRIDE macro is removed in favor of native C++11
'override' keyword.

BUG=chromium:416628, chromium:411508
TEST=Build the world on x86, x64, ARM. The following builders
were tried:
x86-generic-full amd64-generic-full arm-generic-full
amd64-generic-asan daisy-full nyan-full pre-cq-group
daisy-release-group sandybridge-release-group
pineview-release-group
CQ-DEPEND=CL:234450,CL:234980

Change-Id: I374bebe2211d533c4431c82efb8be1cdcb1f405d
Reviewed-on: https://chromium-review.googlesource.com/234440
Reviewed-by: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
/system/core/crash_reporter/crash_collector.cc
262d798b380a59ef691ede4c6a32aa71ff191295 18-Sep-2014 Ben Chan <benchan@chromium.org> crash-reporter: Replace NULL with nullptr.

BUG=None
TEST=`FEATURES=test emerge-$BOARD crash-reporter`

Change-Id: If0804613ee0385752d01f7bbe01902ffef53bd94
Reviewed-on: https://chromium-review.googlesource.com/218870
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
ab6cc90503ca2db976a3cb9c9382a9da85c4b5a2 05-Sep-2014 Ben Chan <benchan@chromium.org> Update code to include base/files/file_util.h

file_util.h was moved from base to base/files
(https://codereview.chromium.org/468253002). This CL updates platform2
code to include base/files/file_util.h instead of base/file_util.h.

BUG=chromium:411001
TEST=Trybot run on paladin, release, and chromiumos-sdk builders.

Change-Id: I488925b54615e131e508a460dc1a27f88168f936
Reviewed-on: https://chromium-review.googlesource.com/216851
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f3811f50c8783b24607c776844a3cf66c15c439f 26-Aug-2014 Ben Chan <benchan@chromium.org> crash-reporter: Replace scoped_ptr<char[]> with vector<char>.

BUG=None
TEST=`FEATURES=test emerge-$BOARD platform2`

Change-Id: I78d7766b49151f40f42ef00b8204fd2569b45991
Reviewed-on: https://chromium-review.googlesource.com/214780
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
efec0b3625f447995d2ed79b946d2929039313c9 12-Aug-2014 Ben Chan <benchan@chromium.org> crash-reporter: Use C++11 override specifier.

Also remove some unnecessary 'void' arguments.

BUG=None
TEST=`FEATURES=test emerge-$BOARD crash-reporter`

Change-Id: I0039aec93aae14cb238f284fda756b631f9c1587
Reviewed-on: https://chromium-review.googlesource.com/211959
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
eaf060c265f4cd84eb718b625b3670987e155a1b 08-Aug-2014 Alex Vakulenko <avakulenko@chromium.org> platform2: move --std=gnu++11 flag to common-mk/common.gypi

A number of platform2 projects enabled C++11 features individually
in their .GYP files. Removed this flag from each of the projects
and added it to common.gypi for everyone to share.

BUG=None
TEST=Compile various platform2 targets to make sure they still compile.

Change-Id: I4136573ec5dcc988df2826056c8dae8847725504
Reviewed-on: https://chromium-review.googlesource.com/211534
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f84ea21aab3c1c6ef1f358534e5c437878675d74 07-Aug-2014 Ben Chan <benchan@chromium.org> crash-reporter: Use integer types from stdint.h

This CL replaces the deprecated int* and uint* types from
'base/basictypes.h' with the int*_t and uint*_t types from 'stdint.h'.

BUG=chromium:401356
TEST=`FEATURES=test emerge-$BOARD platform2`

Change-Id: I33086d64b33ac7d58b578705e95da31e6d6fb5fd
Reviewed-on: https://chromium-review.googlesource.com/211285
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
7589aff9f0410512168914bda2d7640649858066 30-Jul-2014 Alex Vakulenko <avakulenko@chromium.org> crash-reporter: fix linter issues

Fixed various issues reported by cpplint.py when run on
src/platform2/crash-reporter.

BUG=None
TEST=FEATURES=test emerge-link crash-reporter
cpplint.py `find crash-reporter/* | grep "\.cc\|\.h"`

Change-Id: If874b3dbf539d2dd22cf740a0d3523225d1c61a7
Reviewed-on: https://chromium-review.googlesource.com/210418
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
/system/core/crash_reporter/crash_collector.cc
7e77690375bc8a896a8de318d69d515e67c7aefe 18-Jun-2014 Ben Chan <benchan@chromium.org> crash-reporter: Fix coding style and cpplint issues.

BUG=chromium:385849
TEST=`FEATURES=test emerge-$BOARD platform2`
TEST=`cpplint.py --filter=--build/header_guard,-build/include_order *.h *.cc`

Change-Id: I3c24dd9487df50cdb22fc1c7739c9e95e452afae
Reviewed-on: https://chromium-review.googlesource.com/204487
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f30c641225e55055641ffe3fd679a96e44f34af6 23-May-2014 Ben Chan <benchan@chromium.org> crash-reporter: Update to build against libchrome-271506.

BUG=chromium:375032
TEST=`FEATURES=test emerge-$BOARD platform2`

Change-Id: I3984dee513690711e277e5fa8939ca5f7910d180
Reviewed-on: https://chromium-review.googlesource.com/201184
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
9895096f8b8046456bec96292f9c547b11913248 13-May-2014 Thiemo Nagel <tnagel@chromium.org> crash_sender: fix orphan logic, prevent deletion of *.log.tar.xz

get_base() was broken for files with multiple extensions which leads the orphan
logic to delete all such files that are older than 1 day. This patch set fixes
get_base().

BUG=chromium:338977
TEST=manual test of code fragment
TEST=`cbuildbot {arm,amd64,x86}-generic-full` pass
CQ-DEPEND=CL:199820

Change-Id: I1b712f1a5cfc848e5bc2a86c97e0a3e88ce6250d
Reviewed-on: https://chromium-review.googlesource.com/199511
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f1a5014637180457af21cc40a5ca64ab18a6947b 14-May-2014 Mike Frysinger <vapier@chromium.org> use IGNORE_EINTR w/close

HANDLE_EINTR is both not safe and not useful on Linux systems.
Switch to IGNORE_EINTR like Chromium has done everywhere.

See http://crbug.com/269623 for details.

BUG=chromium:373154
TEST=`cbuildbot {arm,amd64,x86}-generic-full` passes

Change-Id: Ib7b5c6913a63cc391005e9814200b87ed7ed7733
Reviewed-on: https://chromium-review.googlesource.com/199850
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
9b1f300139689eb9c7b7a35e91a4fbc1eab93b4e 24-Apr-2014 Lei Zhang <thestig@chromium.org> crash-reporter: Write out a magic string for Chrome crashes.

Also do some much needed code cleanup.

BUG=chromium:363660
TEST=emerge platform2

Change-Id: Ica9abfd854e2c77d970851805989c86a6a45fdee
Reviewed-on: https://chromium-review.googlesource.com/196764
Commit-Queue: Lei Zhang <thestig@chromium.org>
Tested-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
a557c1187ff19d422db2a9c951ecd8f7243e79bd 06-Feb-2014 Mike Frysinger <vapier@chromium.org> update to libbase-242728

BUG=chromium:331128
TEST=`FEATURES=test emerge-x86-alex platform2` works
TEST=`cbuildbot chromiumos-sdk` works
CQ-DEPEND=CL:185131

Change-Id: Ia03a6ea7aaf6b4ee5d9c512ebf7080c0c28920f1
Reviewed-on: https://chromium-review.googlesource.com/185150
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
8563d20e108c3801f107d640c9b161f1099e6beb 28-Jan-2014 Ben Chan <benchan@chromium.org> Replace deprecated scoped_array<T> with scoped_ptr<T[]>

BUG=chromium:338610
TEST=Build and run unit tests.

Change-Id: I782cd5ddb0a112a51fca1972faba47b9ed2f7690
Reviewed-on: https://chromium-review.googlesource.com/184069
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
33dfd47146c14bbdf57494051fe1c1c50949305f 20-Jun-2013 Albert Chaulk <achaulk@chromium.org> Add error logging and fix uploading for chrome crash reports

Adds some logging of parse errors in case there's a format mismatch in future.
Fixes detection of the minidump, was checking the wrong variable.
Modifies crash_sender to properly upload a Chrome dump, including all of the
extra options that get included, and identifies it as a Chrome and not ChromeOS
dump so that it shows up in the right lists server-side.

BUG=chromium:216523
TEST=loaded build of chrome with matching changes, verified about:crash causes
a dump to be created and placed in the right spot, and that it uploads
properly by crash_sender

Change-Id: I8a114ad6798f09f33b78df1680153c0412eabf45
Reviewed-on: https://gerrit.chromium.org/gerrit/59572
Reviewed-by: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
/system/core/crash_reporter/crash_collector.cc
37843a9f8a46cd5afa57505bdb6d75aa1a75c9d2 11-Jun-2013 Mike Frysinger <vapier@chromium.org> crash_collector: add /crash to the user crash path

The recent multiprofile work forgot to append /crash to the user-specific
crash path. It was in the fallback path, but not the dynamic one.

BUG=chromium:248629
TEST=`cros_run_unit_tests --board=x86-alex -p crash-reporter` works
TEST=`cbuildbot x86-generic-full` works

Change-Id: If87848526b0e78f3f76fd412b0f46e37b7022bd6
Reviewed-on: https://gerrit.chromium.org/gerrit/58232
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f19b518532cb2ab8fc1ed77381809f24a30ac4ca 18-May-2013 Mike Frysinger <vapier@chromium.org> add support for multiprofile

Update crash_sender to scan /home/chronos/u-*/crash/ paths since it's
a shell script and there's no easy way to get the right info via shell
commands. We want to scan all paths in case of different ordering.

For crash_collector, update it to use SessionManager's dbus call to
query the active profiles. We select the first one and use that to
process crashes. This should be fine.

We also need to handle the edge case where no user is logged in (yet a
crash occurs with a program running as chronos uid; e.g. the login).
In the past, we just wrote to /home/chronos/user/crash/ even when there
wasn't a user home dir mounted there. With this change, we formalize
(and document) things a bit more by moving to /home/chronos/crash/. We
want this behavior rather than re-using the system path as our tests
specifically verify system vs user crashes.

BUG=chromium:221778
TEST=`cros_run_unit_tests --board=x86-alex -p crash-reporter` passes
TEST=logging_UserCrash autotest passes in a vm
CQ-DEPEND=CL:56112
CQ-DEPEND=CL:57067

Change-Id: If9f2ffd0740533537718b2a5e7d215200f5a41d6
Reviewed-on: https://gerrit.chromium.org/gerrit/55600
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
426fcc0bd579a87102ea50fb570dbf9834fa2962 03-May-2013 Albert Chaulk <achaulk@chromium.org> Handle Chrome crashes

Chrome will be modified to pass crashes to crash_reporter via a specially
formatted file, a TLV-style designed to be easily parsed, instead of
multipart/form-data. Extra attributes are added into the .meta file.

BUG=chromium:187808
TEST=new unit tests created

Change-Id: I0d65d118e0e348329d14bb4004c8f7bad5a44a97
Reviewed-on: https://gerrit.chromium.org/gerrit/49972
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Albert Chaulk <achaulk@chromium.org>
Tested-by: Albert Chaulk <achaulk@chromium.org>
/system/core/crash_reporter/crash_collector.cc
9f90acaa4d420530d7b4ddd37112518df68e373a 20-Feb-2013 Simon Que <sque@chromium.org> Replace FilePath declaration with file_path.h include

Fixes a clang error. Also use "base::FilePath" since FilePath has been
moved to the base namespace.

BUG=chromium-os:39046
TEST=The following command passes:
USE="chrome_internal" CFLAGS="-clang -print-cmdline"
CXXFLAGS="-clang -print-cmdline" emerge-x86-alex crash-reporter

Change-Id: I7da82093c5685b5b556cba971b1e1b14ac0f59c4
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43577
Reviewed-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
1a8780d309b980914a5e2403bf9addafe07386ec 15-Feb-2013 Mike Frysinger <vapier@chromium.org> update to libchrome 180609

Purely mechanical changes here.

BUG=chromium-os:38933
TEST=`cros_run_unit_tests --board=stumpy -p crash-reporter` passes
CQ-DEPEND=CL:43376

Change-Id: I62d5d12556517bedf48d36ada4c651ff1c671fe9
Reviewed-on: https://gerrit.chromium.org/gerrit/43378
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
acc7938ede0e3c07a2d1809f82b174b51f7ab7c5 05-May-2012 Simon Que <sque@chromium.org> Create separate udev collector class

Previously added a udev collector to CrashCollector. Now it's time to
put it in its own class.

BUG=chromium-os:30268
TEST=See "TEST=" under https://gerrit.chromium.org/gerrit/21498

Change-Id: I6a62826cb84ef7ccd42a512b00e127af6de3280d
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/25112
Reviewed-by: Michael Krebs <mkrebs@chromium.org>
/system/core/crash_reporter/crash_collector.cc
b8ff76914d8dfa4f09533ad769e6b7ec377fbc77 01-May-2012 Simon Que <sque@chromium.org> crash collector: compress udev crash logs

BUG=chrome-os-partner:6492
TEST=Run:
"crash_reporter --udev=ACTION=change:KERNEL=card0:SUBSYSTEM=drm"
Check that a card0-drm log.gz file has been created under /var/spool/crash
Check that the corresponding .meta file points to the log.gz file.

Change-Id: Id1ecc82b9fac118f8bf1e5edc40c3a2f61abd4c4
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21495
Reviewed-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/crash_collector.cc
57b261cf04f45d67b02f6bea8ad2c37734da86e0 11-Apr-2012 Mike Frysinger <vapier@chromium.org> update to newer libbase

BUG=chromium-os:25872
TEST=`emerge-x86-alex crash-reporter` works
TEST=`cros_run_unit_tests --board=x86-alex -p crash-reporter` passed

Change-Id: Iff428b1364f96533d2d2290272823c2c84c48933
Reviewed-on: https://gerrit.chromium.org/gerrit/20008
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
/system/core/crash_reporter/crash_collector.cc
f70060c5e610ed0aa648dcb6aaea5d859834b8ba 10-Apr-2012 Simon Que <sque@chromium.org> Add udev event-based crash reporting

This allows crash_reporter to handle nonfatal errors from the kernel
passed thru udev events. There is a udev .rules file for invoking crash
reporter. Currently it supports DRM error info logging.

BUG=chrome-os-partner:6492
TEST=Run:
"crash_reporter --udev=ACTION=change:KERNEL=card0:SUBSYSTEM=drm"
Check that a card0-drm log file has been created under /var/spool/crash

Change-Id: I05a1d508e5446988575b0c1924878b8e36ae46bb
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/10618
/system/core/crash_reporter/crash_collector.cc
65b4c1efb0bca77f3a73401499adc5c39d982c18 21-Sep-2011 Mike Frysinger <vapier@chromium.org> touch up 64bit build cleanliness

Some of the types being used happened to work on 32bit systems because
size_t is pretty much an unsigned int. But with a 64bit system, we see:

kernel_collector.cc: In member function
'virtual bool KernelCollector::LoadParameters()':
kernel_collector.cc:141: error: cannot convert 'size_t*' to 'unsigned int*'
for argument '2' to 'bool LoadValue(FilePath, unsigned int*)'

This is easy to fix by using the correct type in LoadValue().

Next up, we get a failure due to the assumption that int64 can be
displayed using the lld format string. But on 64bit systems, this
doesn't work:

crash_collector.cc: In member function
'void CrashCollector::WriteCrashMetaData(const FilePath&, const std::string&, const std::string&)':
crash_collector.cc:355: error:
format '%lld' expects type 'long long int', but argument 6 has type 'int64'

This takes a little bit more magic to make work. Since printf itself
does not provide a printf string to handle "64bit" types, use the macros
that POSIX provides in inttypes.h. The printf string is a little uglier,
but now should work for all targets.

BUG=chromium-os:20636
TEST=`emerge-amd64-generic crash-reporter` now works
TEST=`emerge-x86-generic crash-reporter` still works
TEST=build+booting x86-alex still works

Change-Id: I8401f2ad932223085dfbe54541590e9b65297783
Reviewed-on: http://gerrit.chromium.org/gerrit/8051
Reviewed-by: Ken Mixter <kmixter@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Michael Krebs <mkrebs@chromium.org>
/system/core/crash_reporter/crash_collector.cc
4fe30db1405498dd21162436eda081486f400fa8 05-Aug-2011 Michael Krebs <mkrebs@chromium.org> crash-reporter: Dump crashes outside of cryptohome during autotests.

If the file "/mnt/stateful_partition/etc/collect_chrome_crashes" exists on
the target, dump crashes to /var/spool/crash/ instead of
/home/chronos/user/crash/. This is so they are easily available even after
logout.

BUG=chromium-os:18637
TEST=Ran unit and remote tests.

Change-Id: I340bbb0c1772123192c8bb87872bcda53fae5524
Reviewed-on: http://gerrit.chromium.org/gerrit/5419
Reviewed-by: Ken Mixter <kmixter@chromium.org>
Tested-by: Michael Krebs <mkrebs@chromium.org>
/system/core/crash_reporter/crash_collector.cc
8a68c7cb30d053de2b3008bee20422258f5e6b3c 14-May-2011 Chris Masone <cmasone@chromium.org> [crash-reporter] bad merge broke the build

BUG=chromium-os:14304
TEST=build, features-test

Change-Id: I9c2c77c818b9277c506d5186d42677069b1f0704
Reviewed-on: http://gerrit.chromium.org/gerrit/905
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/core/crash_reporter/crash_collector.cc
3ba6c5b65778964fe3f643ca9df6a17b41181bf2 14-May-2011 Chris Masone <cmasone@chromium.org> [crash-reporter] rolling to libchrome 87480

BUG=chromium-os:14304
TEST=emerge with features=test

Change-Id: Ida7067b3578619bbb99c8b5c626fd6301cdccd8d
Reviewed-on: http://gerrit.chromium.org/gerrit/887
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/system/core/crash_reporter/crash_collector.cc
1652fb2cc2bc6d08ac3719fd3d90b43485d539fe 03-Mar-2011 Thieu Le <thieule@chromium.org> Modify crash-reporter to collect crash information for unofficial builds.

The original code review link is here: http://codereview.chromium.org/6559003/

BUG=chromium-os:12207
TESTS=logging_UserCrash, logging_CrashSender, manual test which involves
purposely crashing a test to determine if minidump information is properly collected

Change-Id: I20274050cd698434951c65612e246f510c8082cb

TEST=

Review URL: http://codereview.chromium.org/6615021
/system/core/crash_reporter/crash_collector.cc
a324932e066ccb7ed9d62db9c409ee2c10052554 03-Mar-2011 Ken Mixter <kmixter@google.com> crash-reporter: Use standard logging and new libchromeos Process code

Change-Id: Ie085d61d4d79c0df38e51debaa044d701a860c89

BUG=none
TEST=unit tests / UserCrash / CrashSender

Review URL: http://codereview.chromium.org/6517001
/system/core/crash_reporter/crash_collector.cc
f92f4caa8471f00f4004f438e51e1c8cc8ac5358 28-Feb-2011 Thieu Le <thieule@chromium.org> Revert "Modify crash-reporter to collect crash information for unofficial builds."

This reverts commit cb5a147e46dbfa454df9d56b4da23480742597c8.

BUG=None
TEST=

Review URL: http://codereview.chromium.org/6596045

Change-Id: If07530a743b19a76e9a15ef08825c45c38f9dd2b
/system/core/crash_reporter/crash_collector.cc
604f5c0d3dfdb60302d68f1c08c86728f82aae46 28-Feb-2011 Thieu Le <thieule@chromium.org> Modify crash-reporter to collect crash information for unofficial builds.

BUG=chromium-os:12207
TESTS=logging_UserCrash, logging_CrashSender, manual test which involves
purposely crashing a test to determine if minidump information is properly
collected

Change-Id: Id2195125289a695515b1722442116d6a6d9c4895

Review URL: http://codereview.chromium.org/6559003
/system/core/crash_reporter/crash_collector.cc
1b8fe015585c0b966d5240b8e22eba1af8c69e88 25-Jan-2011 Ken Mixter <kmixter@chromium.org> crash-reporter: Add diagnostics to help diagnose failures in the wild

We add logging messages that are generated during invocation of core2md, but we also enable sending arbitrary system info based on the configuration file. In this case we add the list of running processes, meminfo, and dmesg.

Change-Id: Ifdf29b89dd60d56349fa39095d2aa07f6b5e2de2

BUG=chromium-os:6299,chromium-os:9345
TEST=UserCrash, unit tests

Review URL: http://codereview.chromium.org/6297004
/system/core/crash_reporter/crash_collector.cc
c49dbd4775986f32b2f09659595f9f28ef7f6b44 15-Dec-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: Capture and send recent update_engine logs when it crashes

We also disallow more than 4 nested crashes. This way we know if core2md crashes for instance, but not if crash_reporter crashes while handling the core2md crash that came from crash_reporter. Note that the kernel does not know about parent/child process relationships, it just counts concurrent handling, so it is possible that some of many crashing processes will be discarded.

See crash report id 473c22ed428d33a9 for an example report with update_engine logs.

Change-Id: I9ff9f03a94dc87d2d42840511c2e5e42ee37cea8

BUG=9176
TEST=UserCrash,CrashSender,unit tests

Review URL: http://codereview.chromium.org/5814001
/system/core/crash_reporter/crash_collector.cc
9b346474538a255bc7144ae358bb0ee129163d58 07-Nov-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: Avoid writing through symlinks.

BUG=7987
TEST=bvts

Change-Id: I875adeb5073936e790beb93f6a223a1642131cbd

Review URL: http://codereview.chromium.org/4603001
/system/core/crash_reporter/crash_collector.cc
207694d3f491ef602a859c30cc1379584f2d61cf 29-Oct-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: write conversion failure diagnostics into fake dmp files

Change-Id: I9f1ca92def3e1d0fa43b3bef0f2a72d367953926

BUG=6299,7782
TEST=bvts

Review URL: http://codereview.chromium.org/4088003
/system/core/crash_reporter/crash_collector.cc
afcf80821c57a189b53b7a66f76d13855d63821e 26-Oct-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: Generate kernel crash signatures for server-side grouping of similar crashes

BUG=5868
TEST=KernelCrash, UserCrash, CrashSender, unittests, and manual inspection of sent report.

Change-Id: I31991895c9ac719ac1832d588ae3360500ef0c26

Review URL: http://codereview.chromium.org/4018008
/system/core/crash_reporter/crash_collector.cc
c909b6944602bd6c1eb6d3c54ec41b1a4fc57b07 18-Oct-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: send payload sizes to help diagnose corruption

Change-Id: Ia68990138ebcc3dd6d644fe30d0721dde41c567e

BUG=6299
TEST=UserCrash, CrashSender, KernelCrash

Review URL: http://codereview.chromium.org/3820004
/system/core/crash_reporter/crash_collector.cc
ee849c5ef4c416cb0321483fa10c92f8aada3179 01-Oct-2010 Ken Mixter <kmixter@chromium.org> Add meta files to crash directory, enabling OS version at crash time.

Adding meta files also:
1) ensures atomically added crash reports
2) allows us to remove orphaned crash report payload files
(such as core files)
3) gives us better control over the number of reports in
crash directory

While we're here, also made these minor changes
1) send board (x86-generic, x86-mario, etc) to crash server
2) send hwclass to crash server
3) Only record crash reports when metrics are enabled.
4) No longer allow crash reporting to staging server.

BUG=6100,5805,5624,6865
TEST=unit tests plus UserCrash,CrashSender,KernelCrash autotests

Change-Id: Ieea9bdc8e0680b379c65b91cc56ca0611dd0f31c

Review URL: http://codereview.chromium.org/3436029
/system/core/crash_reporter/crash_collector.cc
da5db7a8304e22af6c57733460516857e9211b32 17-Sep-2010 Ken Mixter <kmixter@chromium.org> Increase number of enqueued crash files, sending rate, and fix minor bug.

Up to 32 crashes per spool and 32 sends per day.

BUG=6355,6782

Change-Id: I99e86265c035ad62937aa135467681be8ef70f9a

TEST=UserCrash and CrashSender

Review URL: http://codereview.chromium.org/3414006
/system/core/crash_reporter/crash_collector.cc
04ec10fc93b08057657503559ecf511661b55c9f 27-Aug-2010 Ken Mixter <kmixter@google.com> Limit the number of crash reports to enqueue at once

BUG=5357

Change-Id: Ib21086cdd34c938def885d625a165ba2fa0879a4

Review URL: http://codereview.chromium.org/3209003
/system/core/crash_reporter/crash_collector.cc
0340316050044e0995b98fea87ed41ea77abb28b 19-Aug-2010 Ken Mixter <kmixter@google.com> Collect and send kernel crash diagnostics

BUG=1512,1914

Review URL: http://codereview.chromium.org/3179006
/system/core/crash_reporter/crash_collector.cc