New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 741712 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: Jul 2017
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Mojo: internal IPC errors don't result in crash reports

Project Member Reported by roc...@chromium.org, Jul 12 2017

Issue description

If a process sends bad data at the internal NodeChannel layer (as opposed to a message on a mojom interface pipe) the receiving channel is closed, but its embedder is not notified of this event.

We should instead invoke the optional ProcessErrorCallback -- provided by the embedder -- to notify them of the disconnection event. This will for example allow any NodeChannel error from renderer-to-browser to result in the browser killing the render process and sending a crash dump.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f49ca44248ccfab3068bdda70928fed34798f6b

commit 7f49ca44248ccfab3068bdda70928fed34798f6b
Author: Ken Rockot <rockot@chromium.org>
Date: Thu Jul 13 00:17:26 2017

Mojo EDK: Notify embedder of internal IPC failures

Introduces a Channel::Error enum so reported errors can have a little
more context (was the channel just disconnected, or did it read bad
data?)

Uses the existing optional ProcessErrorCallback on a NodeChannel to
notify embedders when bad data is received, either in BrokerHost,
specific NodeChannel messages, or Channel in general.

This means that any such failures will now get proper crash reports when
happening on renderer-to-browser connections.

BUG= 741712 
R=jcivelli@chromium.org

Change-Id: Ia9152207f32c4adff669fded68ca66f9240ffc1c
Reviewed-on: https://chromium-review.googlesource.com/568621
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486177}
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/broker_host.cc
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/broker_host.h
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/channel.cc
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/channel.h
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/channel_posix.cc
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/channel_unittest.cc
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/channel_win.cc
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/node_channel.cc
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/node_channel.h
[modify] https://crrev.com/7f49ca44248ccfab3068bdda70928fed34798f6b/mojo/edk/system/node_controller.cc

Comment 2 by roc...@chromium.org, Jul 13 2017

Status: Fixed (was: Started)

Sign in to add a comment