History log of /system/core/crash_reporter/user_collector.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ea05ff9229163e6aacfb7f7dffdd76bff559673c 20-Jan-2016 Alex Vakulenko <avakulenko@google.com> crash_reporter/metricsd: Update libchrome APIs to r369476

The new libchrome has been ported from Chromium and some APIs have
changed. Make necessary changes at call sites.

Change-Id: I9e45975cdef43913270b82e3fca2c027e614a464
/system/core/crash_reporter/user_collector.cc
a76ba8578390fe67874f2d102489e6d5629cb999 12-Nov-2015 Steve Fung <stevefung@google.com> crash_reporter: Join AID_READPROC group

Access to /proc files are limited to processes with group
permissions for AID_READPROC, so add that group to the list
of supplemental groups that the user_collector joins.

Bug: 25598241
Change-Id: I26c77b052229346a3ac7150f38e03294f3641f96
/system/core/crash_reporter/user_collector.cc
72e3c828dcc8230a1ae94f0f814891d54b7c0b92 13-Oct-2015 Steve Fung <stevefung@google.com> crash_reporter: Update to use the os-release.d configs

The product_id and product_version has been moved into the
/etc/os-release.d key-value store, update crash_reporter to
use these values.

Bug: 22874192
Change-Id: I71886574d1aa4e0a3ac18e1c361ec65684af9b49
/system/core/crash_reporter/user_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/user_collector.cc
aa265b633b992a701e954fe39c780a90d377a42d 11-Oct-2015 Steve Fung <stevefung@google.com> crash_reporter: Report the bdk_version

Add the bdk_version to the crash report.

Bug: 24579018
Change-Id: I00ad1079ee3aacc5d0456f80d83f42c4d28045df
/system/core/crash_reporter/user_collector.cc
773fd3c42883b17b5918c71aead5690e16438248 10-Oct-2015 Steve Fung <stevefung@google.com> crash_reporter: Use the actual GID of the crashing process

Rather than assuming the UID and GID of crashing processes is
the same, report and use the actual GID that the process was
running as.

Bug: 24678424
Change-Id: I3cfc415be2feb2863a4f4b850bfd4a3267217a44
/system/core/crash_reporter/user_collector.cc
6db7cd78364b168f8b78170937b3ddf239c89a86 07-Oct-2015 Steve Fung <stevefung@google.com> crash_reporter: Support crashes from arbitrary users

In order to read the /proc/<pid> files from non-root users without
using CAP_SYS_PTRACE and CAP_DAC_OVERRIDE, use setresuid(..) and
setresgid(..) to switch to the process's user to copy off necessary
files for generating the breakpad minidump.

Bug: 24678424
Change-Id: I4a43583033587441394483ce678c40c4161808b9
/system/core/crash_reporter/user_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/user_collector.cc
b440e50b6f4af0f7c3c5bc01d975d48f93ae3741 21-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Run with supplemental groups

In order to use metrics_lib, crash_reporter needs to be run with
system group permissions. To use dbus, it needs dbus group
permissions.

Bug: 23406290
Change-Id: Ic679a057afa46aaadd59429aab0aea072c1973c5
/system/core/crash_reporter/user_collector.cc
f87f5f90c56923e88c2a6728d919dabaab0e4177 24-Aug-2015 Steve Fung <stevefung@google.com> Merge "crash_reporter: Fix tmp directory location"
da98133cc0b88e5a545c5f588ff5a7e6a6f75bef 24-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Fix tmp directory location

It is unsafe to use /data/local/tmp. Use our own temporary
directory under /data/misc/crash_reporter.

Bug: 23430484
Change-Id: I186ba6b146bd884064177a3bb29b18b8edcc0b62
/system/core/crash_reporter/user_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/user_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/user_collector.cc
8bafb3da8fe46993f995054ec84c75f82e6bb2d8 07-Aug-2015 Steve Fung <stevefung@google.com> crash_reporter: Fix initial compile issues with Android toolchain

Fix some issues to get crash_reporter to compile on Android.

C++ source:
* bits/wordsize.h is used for __WORDSIZE, but is unavailable for most
Android toolchain architectures. It instead is available in sys/cdefs.h

Flex source:
* The Flex compiler toolchain doesn't link against the default fl library
using -lfl. Thus there is no yywrap() function defined. Since the
default fl library implementation just returns 1 (true), instead add a
directive to disable yywrap.
* The index(..) function has been deprecated in favor of strchr(..)
* Add a directive to disable the "deprecated conversion from string constant
to 'char*'" warning in the generated code.
* Remove warning suppression for the input() function which doesn't get
generated with Flex v2.5.39 and the arguments passed in the build command.

Bug: 22874187
Change-Id: I6d7dcf5f801010aeae06db9f0628a6652ee269ee
/system/core/crash_reporter/user_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/user_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/user_collector.cc
d6169a2a4f775da37ffa8b8ba4d767efd0377343 12-Aug-2014 Steve Fung <stevefung@chromium.org> crash-reporter: remove gflags dependency

We are switching to using chromeos/flag_helper.h instead to standardize the
code everywhere.

BUG=chromium:402631
TEST=`FEATURES=test emerge-panther crash-reporter`
TEST=`test_that -b panther <ip> e:logging_.*`

Change-Id: I62b911a54f89d853235d0540460cbea119f66e9e
Reviewed-on: https://chromium-review.googlesource.com/212140
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
/system/core/crash_reporter/user_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/user_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/user_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/user_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/user_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/user_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/user_collector.cc
8fce2859059b27147ddd15f9a0e89a2816ed12ca 09-May-2014 Thiemo Nagel <tnagel@chromium.org> UserCollector: only create meta file if payload write succeeds

This avoids creating meta files that are referencing a non-existant payload
which can block crash sending.

BUG=chromium:338977
TEST=Running unit tests locally did succeed.

Change-Id: Ia7039e679150490571d57a0960e984590905ee52
Reviewed-on: https://chromium-review.googlesource.com/199060
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/user_collector.cc
bfdf4a8913c805bd74723aa1daf9eeeaa971e590 14-Mar-2014 Mike Frysinger <vapier@chromium.org> user_collector: use %P instead of %p

The latter will give us the PID as seen in the current PID namespace,
but since the crash handler always runs in the top most PID namespace,
that is meaningless to us. Instead, use the %P option so we see the
PID in the top most namespace.

BUG=chromium:351568
TEST=`cbuildbot amd64-generic-full` passes # linux-3.10
TEST=`cbuildbot x86-alex-release` passes # linux-3.4
TEST=`cbuildbot link-release` passes # linux-3.8
CQ-DEPEND=CL:190011
CQ-DEPEND=CL:190020
CQ-DEPEND=CL:190012
CQ-DEPEND=CL:190021

Change-Id: Ic619c4e7514e2824f7ba31b73cb9e11ec4092774
Reviewed-on: https://chromium-review.googlesource.com/190010
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/user_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/user_collector.cc
d2db5ff98889fbe0bb75bcf34c3ef31672bb38e4 09-Oct-2013 Mike Frysinger <vapier@chromium.org> crash_reporter: clarify chrome crash ignore message

We ignore Chrome crashes when it is the kernel that runs us. When Chrome
itself runs us, we will take their crashes. The log output here though
has long confused developers, so rephrase it slightly.

BUG=None
TEST=`cros_run_unit_tests -p crash-reporter --board x86-alex` passes
TEST=`cbuildbot {amd64,x86}-generic-full` passes (VMTests)

Change-Id: Ia13a766134f5a20a1cc4eaab74ac46633d3177eb
Reviewed-on: https://chromium-review.googlesource.com/172261
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/user_collector.cc
b3fe6c3a4e91e4843ff9c03098e3931bec23d447 31-May-2013 Chris Masone <cmasone@chromium.org> Replace some LOGs with PLOGs

PLOG automatically appends an error message appropriate
for errno, so use it when logging errors after operations
that would set errno meaningfully.

BUG=None
TEST=None

Change-Id: I63549e149bd699469293e5a7f0e48efa9e388162
Reviewed-on: https://gerrit.chromium.org/gerrit/57213
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Queue: Chris Masone <cmasone@chromium.org>
/system/core/crash_reporter/user_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/user_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/user_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/user_collector.cc
1c57e9e330bc4c6a44955fd649ee9a4badb9e1dc 26-Sep-2012 Michael Krebs <mkrebs@chromium.org> crash-reporter: Remove some dependency on /proc

Make the existence of a crashing process's /proc/<PID>/ directory optional
for all of crash_reporter, except for core2md. In particular, have the
kernel pass the UID of the crashing process to crash_reporter in case the
"status" file is unavailable.

BUG=chromium-os:34385
TEST=Ran unittests and autotests
CQ-DEPEND=I6048d3eb84f8188bee6a755eaa010510f5d2459b

Change-Id: I62df52cab44cf1febc7ed3e55b75bcffa0daf524
Reviewed-on: https://gerrit.chromium.org/gerrit/34078
Commit-Queue: David James <davidjames@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
/system/core/crash_reporter/user_collector.cc
b1b91a52dd821e0c94f2ad162f6a135c349f2e6b 26-Nov-2012 Michael Krebs <mkrebs@chromium.org> crash-reporter: Add a new Chrome thread to ignore

A bunch of "supplied_MediaPipeline" crashes are showing up for product
"Chrome_ChromeOS", so add "MediaPipeline" as a thread name to ignore as a
Chrome crash.

BUG=chrome-os-partner:16165
TEST=Ran unittests

Change-Id: Iadcba53400c63b1e7fe93d7f1e74c8dd5c37ebd9
Reviewed-on: https://gerrit.chromium.org/gerrit/38673
Commit-Ready: Michael Krebs <mkrebs@chromium.org>
Tested-by: Michael Krebs <mkrebs@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_collector.cc
a1cc38388b371e3af5622edf57cc0e2b4991a3cd 13-Sep-2012 Michael Krebs <mkrebs@chromium.org> crash-reporter: Add a missing Chrome thread to ignore

I somehow missed "AudioOutputDevice" as the name of a Chrome thread. It
showed up in crash reports.

BUG=chrome-os-partner:12045
TEST=Ran unittests

Change-Id: Ia29404aebfe806a81fceb6b45145434af6749822
Reviewed-on: https://gerrit.chromium.org/gerrit/33224
Commit-Ready: Michael Krebs <mkrebs@chromium.org>
Tested-by: Michael Krebs <mkrebs@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_collector.cc
2f3ed034f378e99f27bd733b6a452df47739117c 22-Aug-2012 Michael Krebs <mkrebs@chromium.org> crash-reporter: Also ignore renamed Chrome threads

At some point Chrome started naming its threads such that crashes report a
different executable name. We've been getting a *lot* of crash-reporter
errors with names like "supplied_Compositor" in particular, so consider
those to be Chrome crashes that should be ignored.

Unfortunately, the thread names can be arbitrary. With this CL we check the
entire range of possible names. Maybe someday someone can use the core file
to determine that a process was originally named "chrome".

BUG=chrome-os-partner:12045
TEST=Ran unittests

Change-Id: Ia82d619bd1ee4367129640dc6c7be5ce258a68bb
Reviewed-on: https://gerrit.chromium.org/gerrit/31084
Commit-Ready: Michael Krebs <mkrebs@chromium.org>
Tested-by: Michael Krebs <mkrebs@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_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/user_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/user_collector.cc
6e709a11031c80c96f47da50b3231074334f462c 29-Feb-2012 Ben Chan <benchan@chromium.org> Improve error diagnostics in UserCollector.

This CL makes the following changes to improve error diagnostics in
UserCollector:
1. Add an error type to describe why the crash reporter fails to
collects a user crash, which is reported to the crash server along
with the "crash_reporter-user-collection" error signature.
2. Perform some preliminary validations of the core file before
converting it to a minidump file using core2md.
3. Identify the case when a 32-bit core file is produced on a 64-bit
platform as core2md currently cannot handle 32-bit core files on
a 64-bit platform.

BUG=chromium-os:7871
TEST=Tested the following:
1. emerge-{x86,amd64,arm}-generic crash-reporter
2. FEATURES="test" emerge-{x86,amd64,arm}-generic crash-reporter
3. Run the following autotest tests on x86-mario and stumpy64:
- logging_CrashSender
- logging_UserCrash

Change-Id: Ib50b4cc81a91f7cd75f9440005200d4027ce1f6f
Reviewed-on: https://gerrit.chromium.org/gerrit/17166
Reviewed-by: Michael Krebs <mkrebs@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_collector.cc
ec7d7835a24884ed0e18317dc07af2fed2a50e64 09-Jan-2012 Ben Chan <benchan@chromium.org> crash-reporter: Read core from stdin even if proc files are unsuable.

This CL fixes commit c7c7914f49fbdef0d1f06c13854daabe176621ed such that
UserCollector continues to read the core file from stdin even if the proc
files are unusable.

BUG=chromium-os:24820
TEST=Tested the following:
1. Build crash-reporter and run unit tests.
2. Run the following autotest tests on a Cr48:
- logging_CrashSender
- logging_UserCrash

Change-Id: I04d09b15a80344b47f0512196c40e94384c5c323
Reviewed-on: https://gerrit.chromium.org/gerrit/13872
Reviewed-by: Ken Mixter <kmixter@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_collector.cc
f13bb58358b879258c5c0eb48c6e09895d394ef1 06-Jan-2012 Ben Chan <benchan@chromium.org> crash-reporter: Validate proc files and log the state of crashed process.

This CL makes the following changes to UserCollector:
1. Check if the maps file is empty after copying proc files to the
temporary container directory, which prevents the core-to-minidump
conversion failure due to unusable maps file.
2. Obtain and log the state of the crashed process, which helps
determine if the crashed process is in the zombie state.
3. Refactor the status file processing code.

BUG=chromium-os:24820
TEST=Tested the following:
1. Build crash-reporter and run unit tests.
2. Run the following autotest tests on a Cr48:
- logging_CrashSender
- logging_UserCrash
3. Check that the process state of a crashed process is logged in
/var/log/messages.

Change-Id: Iebaf9c36c18185c703c18e7028ee4673dd9ebc93
Reviewed-on: https://gerrit.chromium.org/gerrit/13826
Reviewed-by: Ken Mixter <kmixter@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_collector.cc
294d5d1eeed1634800e0a52fe1bcf7418ac5d958 05-Jan-2012 Ben Chan <benchan@chromium.org> crash-reporter: Change layout for the container directory of procfs files.

This CL modifies UserCollector to copy procfs files of a crashed process
into /tmp/crash_reporter/<pid> instead of /tmp/crash_reporter.<pid>.
The new directory layout makes it easier for autotest to archive
leftover files under /tmp/crash_reporter due to core2md failures.

BUG=chromium-os:24646
TEST=Tested the following:
1. Build crash-reporter and run unit tests.
2. Run the following autotest tests on a Cr48:
- logging_CrashSender
- logging_UserCrash

Change-Id: I435374eabc1574216881318ddacdfa9d1648c875
Reviewed-on: https://gerrit.chromium.org/gerrit/13697
Commit-Ready: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
/system/core/crash_reporter/user_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/user_collector.cc
538ecbf7d5f4011440c45b27e84902f5953b1f82 27-Jul-2011 Michael Krebs <mkrebs@chromium.org> Don't ignore chrome crashes when autotesting.

If the file "/mnt/stateful_partition/etc/collect_chrome_crashes" exists on
the target, allow chrome crashes to be reported by crash reporter. The
intention is that the autotest system will create this file. This is a
relatively temporary fix to help track down chrome problems, until the
crashes can be handled by crash reporter in the field as well.

BUG=chromium-os:17987, chromium-os:17898
TEST=Ran unit tests.

Change-Id: I68a584a0b861669117d8e97f5687b4c8fc876011
Reviewed-on: http://gerrit.chromium.org/gerrit/4861
Reviewed-by: Ken Mixter <kmixter@chromium.org>
Tested-by: Ken Mixter <kmixter@chromium.org>
/system/core/crash_reporter/user_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/user_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/user_collector.cc
5d3a1a2c3543db21913f67cf240bad6c137063c9 16-Mar-2011 Ken Mixter <kmixter@google.com> crash-reporter: keep ignoring chrome crashes even on dev builds

Change-Id: Idd8859958e626dc782e511f35fca5d45a2977f53

BUG=chromium-os:12911
TEST=unit tests and UserCrash

Review URL: http://codereview.chromium.org/6673002
/system/core/crash_reporter/user_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/user_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/user_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/user_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/user_collector.cc
d49d362f61c7e702d557e563055b1c541ead5b67 10-Feb-2011 Ken Mixter <kmixter@google.com> crash-reporter: when exe symlink read fails send diags and still ignore chrome crashes

Change-Id: I0f43d5f61936ebb6420c357e58df45761facd4d0

BUG=6299
TEST=unit tests and UserCrash/CrashSender

Review URL: http://codereview.chromium.org/6480009
/system/core/crash_reporter/user_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/user_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/user_collector.cc
2105b49796f2b753b44ccc792fd387dd0dddf54f 10-Nov-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: Ignore Chrome crashes, relying on Chrome breakpad

Change-Id: I08e44d2c8b6be839d18efd2fe6e8b612a61ae723

BUG=8841
TEST=bvts

Review URL: http://codereview.chromium.org/4499006
/system/core/crash_reporter/user_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/user_collector.cc
c6a58e0f73a2e21941bbcba863eb78bc1c1ae0fb 02-Nov-2010 Ken Mixter <kmixter@chromium.org> crash-reporter: add filtering to make crash tests resilient to crashy builds

BUG=8415
TEST=Run UserCrash and CrashSender while an unrelated process is crashing at about 10Hz

Change-Id: I7f86df8caec19278337ca463f09705e4fcd788f3

Review URL: http://codereview.chromium.org/4190014
/system/core/crash_reporter/user_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/user_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/user_collector.cc
2953c3a87a7b201bbf08555129f0640ede1d0cdb 18-Oct-2010 Ken Mixter <kmixter@google.com> crash-reporter: Avoid using system to invoke core2md

Change-Id: I1fc0b4dd6e4e84cb999ba61fedd43fc74a8fa1ba

BUG=6941
TEST=bvts

Review URL: http://codereview.chromium.org/3755011
/system/core/crash_reporter/user_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/user_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/user_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/user_collector.cc
7ac7a70a592a95624cdf01393474d786173e7bf8 14-Aug-2010 Ken Mixter <kmixter@google.com> Move leave_core where similar files exist

BUG=5696

Review URL: http://codereview.chromium.org/3121015
/system/core/crash_reporter/user_collector.cc
777484c41cc63e2f97f41a443d1d55f7e6037a5e 24-Jul-2010 Ken Mixter <kmixter@google.com> Start invoking core2md to implement full system crash reporting

BUG=4741

Review URL: http://codereview.chromium.org/3040013
/system/core/crash_reporter/user_collector.cc
522c061f831325e73e3d46ee2161238ad6fa8b22 18-Jun-2010 Chris Sosa <sosa@chromium.org> Change include paths to reflect new directory.

TEST=Tested with new ebuild.

Review URL: http://codereview.chromium.org/2819009
/system/core/crash_reporter/user_collector.cc
e4a86037f405415c460ace194fbf16cfd93d4c6f 17-Jun-2010 Chris Sosa <sosa@chromium.org> Initial commit of crash reporter repo
/system/core/crash_reporter/user_collector.cc