Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Issue 1525023003: Distinguish in the browser between renderer crashes and kills (Closed)

Created:
5 years ago by mnaganov (inactive)
Modified:
4 years, 11 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, android-webview-reviews_chromium.org, sadrul, kalyank, Peter Wen, Yaron
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Distinguish in the browser between renderer crashes and kills Use a pipe between a browser and a renderer, where the renderer writes something in case of a termination from a catchable signal. In case when the renderer is killed by the low memory killer, nothing gets written into the pipe. The browser then terminates itself in a fashion similar to the renderer. BUG=546009 Committed: https://crrev.com/f322c8fea0852d346caba09574a6b0774721f7ca Cr-Commit-Position: refs/heads/master@{#368251}

Patch Set 1 #

Patch Set 2 : Finalized, RFC #

Total comments: 8

Patch Set 3 : Comments addressed #

Patch Set 4 : Add kDisableRendererBackgrounding flag #

Patch Set 5 : Implemented detection of a volunatry renderer exit #

Total comments: 12

Patch Set 6 : Comments addressed #

Total comments: 2

Patch Set 7 : Sort out the case of wrong context size #

Total comments: 2

Patch Set 8 : Torne's comment addressed #

Total comments: 4

Patch Set 9 : Use base::SyncSocket #

Total comments: 6

Patch Set 10 : Comments addressed #

Patch Set 11 : Remove std::move for a value in return #

Unified diffs Side-by-side diffs Delta from patch set Stats (+276 lines, -10 lines) Patch
M android_webview/browser/DEPS View 1 chunk +1 line, -0 lines 0 comments Download
M android_webview/browser/aw_browser_main_parts.cc View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -0 lines 0 comments Download
M android_webview/browser/aw_content_browser_client.cc View 1 2 3 4 5 6 7 8 3 chunks +19 lines, -3 lines 0 comments Download
M android_webview/common/aw_descriptors.h View 1 chunk +1 line, -0 lines 0 comments Download
M android_webview/crash_reporter/aw_microdump_crash_reporter.h View 1 chunk +2 lines, -1 line 0 comments Download
M android_webview/crash_reporter/aw_microdump_crash_reporter.cc View 1 5 chunks +12 lines, -2 lines 0 comments Download
M android_webview/lib/main/aw_main_delegate.cc View 1 2 3 4 chunks +5 lines, -1 line 0 comments Download
M components/crash.gypi View 1 2 3 4 5 6 1 chunk +2 lines, -0 lines 0 comments Download
M components/crash/content/app/breakpad_linux.cc View 1 2 3 4 5 6 7 5 chunks +28 lines, -3 lines 0 comments Download
M components/crash/content/browser/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments Download
A components/crash/content/browser/crash_micro_dump_manager_android.h View 1 2 3 4 5 6 7 8 9 1 chunk +69 lines, -0 lines 0 comments Download
A components/crash/content/browser/crash_micro_dump_manager_android.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +129 lines, -0 lines 0 comments Download

Messages

Total messages: 55 (18 generated)
mnaganov (inactive)
This is a working prototype (modulo actual browser process termination code) for determining whether a ...
5 years ago (2015-12-15 01:31:54 UTC) #2
mnaganov (inactive)
torne@: Please take a look.
5 years ago (2015-12-16 01:40:27 UTC) #4
Torne
https://codereview.chromium.org/1525023003/diff/20001/android_webview/browser/aw_content_browser_client.cc File android_webview/browser/aw_content_browser_client.cc (right): https://codereview.chromium.org/1525023003/diff/20001/android_webview/browser/aw_content_browser_client.cc#newcode494 android_webview/browser/aw_content_browser_client.cc:494: if (crash_signal_file.IsValid()) { Is this ever expected to not ...
5 years ago (2015-12-16 14:48:35 UTC) #5
mnaganov (inactive)
https://codereview.chromium.org/1525023003/diff/20001/android_webview/browser/aw_content_browser_client.cc File android_webview/browser/aw_content_browser_client.cc (right): https://codereview.chromium.org/1525023003/diff/20001/android_webview/browser/aw_content_browser_client.cc#newcode494 android_webview/browser/aw_content_browser_client.cc:494: if (crash_signal_file.IsValid()) { On 2015/12/16 14:48:35, Torne wrote: > ...
5 years ago (2015-12-16 19:10:13 UTC) #9
mnaganov (inactive)
Ugh -- it seems that when we destroy the last WebView, as some tests do, ...
5 years ago (2015-12-17 00:25:42 UTC) #10
mnaganov (inactive)
Copied a bit more code from CrashDumpManager, the tests should be good now.
5 years ago (2015-12-17 01:15:52 UTC) #11
Peter Wen
On 2015/12/17 01:15:52, mnaganov wrote: > Copied a bit more code from CrashDumpManager, the tests ...
5 years ago (2015-12-17 16:15:06 UTC) #12
Peter Wen
On 2015/12/17 16:15:06, Peter Wen wrote: > On 2015/12/17 01:15:52, mnaganov wrote: > > Copied ...
5 years ago (2015-12-17 16:15:14 UTC) #13
Peter Wen
Sorry, my rietveld interface just spasmed. Seems like you're working from an older version of ...
5 years ago (2015-12-17 16:16:29 UTC) #15
mnaganov (inactive)
On 2015/12/17 16:16:29, Peter Wen wrote: > Sorry, my rietveld interface just spasmed. > > ...
5 years ago (2015-12-17 16:26:50 UTC) #16
Peter Wen
This can be very useful for chrome as well. Do you think it can be ...
5 years ago (2015-12-17 16:27:06 UTC) #17
mnaganov (inactive)
On 2015/12/17 16:27:06, Peter Wen wrote: > This can be very useful for chrome as ...
5 years ago (2015-12-17 16:44:37 UTC) #19
Peter Wen
Chatted offline with Mikhail. Webview plans to use this new crash dump manager which only ...
5 years ago (2015-12-17 16:47:10 UTC) #21
mnaganov (inactive)
Thanks, Peter! > @mnaganov - Are you planning to add stats to see how this ...
5 years ago (2015-12-17 17:30:30 UTC) #22
mnaganov (inactive)
torne@, wnwen@: Are you happy with this change, or do you have any concerns?
5 years ago (2015-12-18 16:50:56 UTC) #23
Peter Wen
lgtm %question. https://codereview.chromium.org/1525023003/diff/100001/components/crash/content/app/breakpad_linux.cc File components/crash/content/app/breakpad_linux.cc (right): https://codereview.chromium.org/1525023003/diff/100001/components/crash/content/app/breakpad_linux.cc#newcode749 components/crash/content/app/breakpad_linux.cc:749: return false; If context size is wrong, ...
5 years ago (2015-12-21 14:49:24 UTC) #24
mnaganov (inactive)
https://codereview.chromium.org/1525023003/diff/100001/components/crash/content/app/breakpad_linux.cc File components/crash/content/app/breakpad_linux.cc (right): https://codereview.chromium.org/1525023003/diff/100001/components/crash/content/app/breakpad_linux.cc#newcode749 components/crash/content/app/breakpad_linux.cc:749: return false; On 2015/12/21 14:49:24, Peter Wen wrote: > ...
5 years ago (2015-12-21 17:24:44 UTC) #25
Torne
LGTM in general, just one minor question https://codereview.chromium.org/1525023003/diff/120001/components/crash/content/app/breakpad_linux.cc File components/crash/content/app/breakpad_linux.cc (right): https://codereview.chromium.org/1525023003/diff/120001/components/crash/content/app/breakpad_linux.cc#newcode749 components/crash/content/app/breakpad_linux.cc:749: int signo ...
4 years, 11 months ago (2016-01-04 11:28:51 UTC) #26
mnaganov (inactive)
rsesek@: Can you please look at components/crash/ ? https://codereview.chromium.org/1525023003/diff/120001/components/crash/content/app/breakpad_linux.cc File components/crash/content/app/breakpad_linux.cc (right): https://codereview.chromium.org/1525023003/diff/120001/components/crash/content/app/breakpad_linux.cc#newcode749 components/crash/content/app/breakpad_linux.cc:749: int ...
4 years, 11 months ago (2016-01-04 17:17:20 UTC) #27
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1525023003/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1525023003/140001
4 years, 11 months ago (2016-01-04 17:19:22 UTC) #29
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/132224)
4 years, 11 months ago (2016-01-04 17:28:58 UTC) #31
Yaron
https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.h File components/crash/content/browser/crash_micro_dump_manager_android.h (right): https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.h#newcode26 components/crash/content/browser/crash_micro_dump_manager_android.h:26: class CrashMicroDumpManager : public content::NotificationObserver { should this be ...
4 years, 11 months ago (2016-01-04 22:03:56 UTC) #33
mnaganov (inactive)
https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.h File components/crash/content/browser/crash_micro_dump_manager_android.h (right): https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.h#newcode26 components/crash/content/browser/crash_micro_dump_manager_android.h:26: class CrashMicroDumpManager : public content::NotificationObserver { On 2016/01/04 22:03:56, ...
4 years, 11 months ago (2016-01-05 00:06:08 UTC) #34
Robert Sesek
https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.cc File components/crash/content/browser/crash_micro_dump_manager_android.cc (right): https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.cc#newcode66 components/crash/content/browser/crash_micro_dump_manager_android.cc:66: if (!IPC::SocketPair(&local_pipe_fd, &child_pipe_fd)) { Can you use base::SyncSocket instead ...
4 years, 11 months ago (2016-01-05 15:58:45 UTC) #35
mnaganov (inactive)
https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.cc File components/crash/content/browser/crash_micro_dump_manager_android.cc (right): https://codereview.chromium.org/1525023003/diff/140001/components/crash/content/browser/crash_micro_dump_manager_android.cc#newcode66 components/crash/content/browser/crash_micro_dump_manager_android.cc:66: if (!IPC::SocketPair(&local_pipe_fd, &child_pipe_fd)) { On 2016/01/05 15:58:45, Robert Sesek ...
4 years, 11 months ago (2016-01-05 16:22:02 UTC) #36
Yaron
lgtm
4 years, 11 months ago (2016-01-05 16:41:02 UTC) #37
mnaganov (inactive)
rsesek@: Robert, are you insisting on implementing your proposal for using IPC::SocketPair and base::File, or ...
4 years, 11 months ago (2016-01-06 21:08:44 UTC) #38
Robert Sesek
On 2016/01/06 21:08:44, mnaganov wrote: > rsesek@: Robert, are you insisting on implementing your proposal ...
4 years, 11 months ago (2016-01-06 21:31:10 UTC) #39
mnaganov (inactive)
On 2016/01/06 21:31:10, Robert Sesek wrote: > On 2016/01/06 21:08:44, mnaganov wrote: > > rsesek@: ...
4 years, 11 months ago (2016-01-07 18:34:52 UTC) #40
Robert Sesek
Thanks for removing the //ipc dependency! https://codereview.chromium.org/1525023003/diff/160001/components/crash/content/browser/crash_micro_dump_manager_android.cc File components/crash/content/browser/crash_micro_dump_manager_android.cc (right): https://codereview.chromium.org/1525023003/diff/160001/components/crash/content/browser/crash_micro_dump_manager_android.cc#newcode26 components/crash/content/browser/crash_micro_dump_manager_android.cc:26: CrashMicroDumpManager* CrashMicroDumpManager::GetInstance() { ...
4 years, 11 months ago (2016-01-07 20:02:22 UTC) #41
mnaganov (inactive)
https://codereview.chromium.org/1525023003/diff/160001/components/crash/content/browser/crash_micro_dump_manager_android.cc File components/crash/content/browser/crash_micro_dump_manager_android.cc (right): https://codereview.chromium.org/1525023003/diff/160001/components/crash/content/browser/crash_micro_dump_manager_android.cc#newcode26 components/crash/content/browser/crash_micro_dump_manager_android.cc:26: CrashMicroDumpManager* CrashMicroDumpManager::GetInstance() { On 2016/01/07 20:02:22, Robert Sesek wrote: ...
4 years, 11 months ago (2016-01-07 21:39:50 UTC) #42
Robert Sesek
LGTM
4 years, 11 months ago (2016-01-07 21:50:08 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1525023003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1525023003/180001
4 years, 11 months ago (2016-01-07 23:30:13 UTC) #46
commit-bot: I haz the power
Try jobs failed on following builders: android_clang_dbg_recipe on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_clang_dbg_recipe/builds/5348)
4 years, 11 months ago (2016-01-08 00:44:16 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1525023003/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1525023003/200001
4 years, 11 months ago (2016-01-08 01:04:02 UTC) #51
commit-bot: I haz the power
Committed patchset #11 (id:200001)
4 years, 11 months ago (2016-01-08 02:49:41 UTC) #53
commit-bot: I haz the power
4 years, 11 months ago (2016-01-08 02:50:54 UTC) #55
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/f322c8fea0852d346caba09574a6b0774721f7ca
Cr-Commit-Position: refs/heads/master@{#368251}

Powered by Google App Engine
This is Rietveld 408576698