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

Issue 280303002: Add sandbox support for AsanCoverage. (Closed)

Created:
6 years, 7 months ago by earthdok
Modified:
6 years, 6 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, jln+watch_chromium.org, piman+watch_chromium.org
Visibility:
Public.

Description

Add sandbox support for AsanCoverage. Support dumping coverage data generated by AsanCoverage from sandboxed processes. For the GPU process, we simply pre-open a file before engaging the sandbox. For the renderers, we use a helper process which we fork from the zygote. The helper process collects coverage data from renderers over a socket and writes it to a file. This allows an arbitrary number of renderers to share one output file. With this change, GPU and renderers will write coverage data to .sancov.packed files which may contain data from multiple modules/processes. Previously, we created one .sancov file per process per module (and still do so for other processes). Note that the new behavior takes effect regardless of whether the sandbox is actually enabled. BUG=336212 R=jln@chromium.org TBR=kbr@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=274248

Patch Set 1 #

Total comments: 44

Patch Set 2 : address most of jln@'s comments #

Total comments: 16

Patch Set 3 : address remaining comments #

Total comments: 6

Patch Set 4 : helper exits on 0 bytes received, zygote waits on it #

Total comments: 19

Patch Set 5 : address comments #

Patch Set 6 : change TODO owner #

Patch Set 7 : fix build error #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+194 lines, -18 lines) Patch
M content/common/sandbox_linux/sandbox_linux.h View 1 2 3 chunks +16 lines, -0 lines 0 comments Download
M content/common/sandbox_linux/sandbox_linux.cc View 1 2 3 4 3 chunks +13 lines, -6 lines 0 comments Download
M content/gpu/gpu_main.cc View 1 2 3 4 5 2 chunks +12 lines, -0 lines 0 comments Download
M content/zygote/zygote_linux.h View 1 2 3 4 2 chunks +14 lines, -1 line 0 comments Download
M content/zygote/zygote_linux.cc View 1 2 3 4 5 6 3 chunks +26 lines, -3 lines 0 comments Download
M content/zygote/zygote_main_linux.cc View 1 2 3 4 10 chunks +113 lines, -8 lines 2 comments Download

Messages

Total messages: 39 (0 generated)
earthdok
Julien, please take a look. Thanks. https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode439 content/zygote/zygote_main_linux.cc:439: //TODO: filename must ...
6 years, 7 months ago (2014-05-12 15:48:20 UTC) #1
jln (very slow on Chromium)
Sergey: the most important feedback is about the LinuxSandbox API (let me know what you ...
6 years, 7 months ago (2014-05-13 01:17:35 UTC) #2
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode457 content/zygote/zygote_main_linux.cc:457: int pid = fork(); pid_t
6 years, 7 months ago (2014-05-13 01:19:34 UTC) #3
mdempsky
https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode439 content/zygote/zygote_main_linux.cc:439: //TODO: filename must include real pid On 2014/05/13 01:17:35, ...
6 years, 7 months ago (2014-05-13 01:40:46 UTC) #4
earthdok
Julien: I've addressed most of the comments but there are still unresolved issues with the ...
6 years, 7 months ago (2014-05-14 17:00:26 UTC) #5
mdempsky
https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode439 content/zygote/zygote_main_linux.cc:439: //TODO: filename must include real pid On 2014/05/14 17:00:26, ...
6 years, 7 months ago (2014-05-14 17:11:28 UTC) #6
earthdok
On 2014/05/14 17:11:28, mdempsky wrote: > https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc > File content/zygote/zygote_main_linux.cc (right): > > https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode439 > ...
6 years, 7 months ago (2014-05-14 17:19:11 UTC) #7
mdempsky
On 2014/05/14 17:19:11, earthdok wrote: > Just to clarify, a zygote cannot die and be ...
6 years, 7 months ago (2014-05-14 17:23:20 UTC) #8
jln (very slow on Chromium)
On Wed, May 14, 2014 at 10:19 AM, <earthdok@chromium.org> wrote: > >> Just to clarify, ...
6 years, 7 months ago (2014-05-14 17:23:52 UTC) #9
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode501 content/zygote/zygote_main_linux.cc:501: int sancov_helper_fd = ForkSanitizerCoverageHelper(); On 2014/05/14 17:00:26, earthdok wrote: ...
6 years, 7 months ago (2014-05-14 17:49:40 UTC) #10
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode501 content/zygote/zygote_main_linux.cc:501: int sancov_helper_fd = ForkSanitizerCoverageHelper(); On 2014/05/14 17:00:26, earthdok wrote: ...
6 years, 7 months ago (2014-05-14 17:49:40 UTC) #11
earthdok
Some replies below, will follow up with changes tomorrow. https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode501 content/zygote/zygote_main_linux.cc:501: ...
6 years, 7 months ago (2014-05-14 19:21:47 UTC) #12
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/20001/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/20001/content/zygote/zygote_main_linux.cc#newcode449 content/zygote/zygote_main_linux.cc:449: PCHECK(written_size == received_size) You may want to loop here. ...
6 years, 7 months ago (2014-05-14 21:21:04 UTC) #13
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/20001/content/common/sandbox_linux/sandbox_linux.cc File content/common/sandbox_linux/sandbox_linux.cc (right): https://codereview.chromium.org/280303002/diff/20001/content/common/sandbox_linux/sandbox_linux.cc#newcode148 content/common/sandbox_linux/sandbox_linux.cc:148: __sanitizer_sandbox_on_notify(sanitizer_args()); On 2014/05/14 19:21:47, earthdok wrote: > On 2014/05/14 ...
6 years, 7 months ago (2014-05-14 23:26:30 UTC) #14
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/20001/content/common/sandbox_linux/sandbox_linux.cc File content/common/sandbox_linux/sandbox_linux.cc (right): https://codereview.chromium.org/280303002/diff/20001/content/common/sandbox_linux/sandbox_linux.cc#newcode148 content/common/sandbox_linux/sandbox_linux.cc:148: __sanitizer_sandbox_on_notify(sanitizer_args()); On 2014/05/14 23:26:30, jln wrote: > Ok. Let's ...
6 years, 7 months ago (2014-05-14 23:27:41 UTC) #15
jln (very slow on Chromium)
https://codereview.chromium.org/280303002/diff/20001/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/20001/content/zygote/zygote_main_linux.cc#newcode433 content/zygote/zygote_main_linux.cc:433: char buffer[kSanitizerMaxMessageLength]; This is very large, let's get it ...
6 years, 7 months ago (2014-05-14 23:42:24 UTC) #16
earthdok
https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/1/content/zygote/zygote_main_linux.cc#newcode501 content/zygote/zygote_main_linux.cc:501: int sancov_helper_fd = ForkSanitizerCoverageHelper(); On 2014/05/14 17:49:40, jln wrote: ...
6 years, 7 months ago (2014-05-20 16:53:56 UTC) #17
jln (very slow on Chromium)
This looks almost ready, outside of recv() returning EOF. We need to think carefully about ...
6 years, 7 months ago (2014-05-21 01:07:37 UTC) #18
earthdok
On 2014/05/21 01:07:37, jln wrote: > This looks almost ready, outside of recv() returning EOF. ...
6 years, 7 months ago (2014-05-21 14:38:38 UTC) #19
jln (very slow on Chromium)
On 2014/05/21 14:38:38, earthdok wrote: > On 2014/05/21 01:07:37, jln wrote: > > This looks ...
6 years, 7 months ago (2014-05-21 14:50:00 UTC) #20
jln (very slow on Chromium)
On 2014/05/21 14:50:00, jln wrote: > On 2014/05/21 14:38:38, earthdok wrote: > > On 2014/05/21 ...
6 years, 7 months ago (2014-05-21 15:49:58 UTC) #21
earthdok
On 2014/05/21 14:50:00, jln wrote: > On 2014/05/21 14:38:38, earthdok wrote: > > On 2014/05/21 ...
6 years, 7 months ago (2014-05-21 17:06:30 UTC) #22
jln (very slow on Chromium)
On 2014/05/21 17:06:30, earthdok wrote: > Right, so the helper could be killed at a ...
6 years, 7 months ago (2014-05-22 20:51:34 UTC) #23
earthdok
On 2014/05/22 20:51:34, jln wrote: > On 2014/05/21 17:06:30, earthdok wrote: > > Right, so ...
6 years, 7 months ago (2014-05-26 19:09:22 UTC) #24
earthdok
https://codereview.chromium.org/280303002/diff/90001/content/zygote/zygote_linux.cc File content/zygote/zygote_linux.cc (left): https://codereview.chromium.org/280303002/diff/90001/content/zygote/zygote_linux.cc#oldcode149 content/zygote/zygote_linux.cc:149: // EOF from the browser. We should die. Note ...
6 years, 7 months ago (2014-05-27 12:50:11 UTC) #25
jln (very slow on Chromium)
https://chromiumcodereview.appspot.com/280303002/diff/90001/content/zygote/zygote_linux.cc File content/zygote/zygote_linux.cc (right): https://chromiumcodereview.appspot.com/280303002/diff/90001/content/zygote/zygote_linux.cc#newcode153 content/zygote/zygote_linux.cc:153: for (std::vector<int>::iterator it = extra_fds_.begin(); Would you mind adding ...
6 years, 7 months ago (2014-05-27 23:15:00 UTC) #26
earthdok
https://codereview.chromium.org/280303002/diff/90001/content/zygote/zygote_linux.cc File content/zygote/zygote_linux.cc (right): https://codereview.chromium.org/280303002/diff/90001/content/zygote/zygote_linux.cc#newcode153 content/zygote/zygote_linux.cc:153: for (std::vector<int>::iterator it = extra_fds_.begin(); On 2014/05/27 23:15:00, jln ...
6 years, 6 months ago (2014-05-28 16:44:51 UTC) #27
jln (very slow on Chromium)
lgtm https://chromiumcodereview.appspot.com/280303002/diff/90001/content/zygote/zygote_linux.cc File content/zygote/zygote_linux.cc (right): https://chromiumcodereview.appspot.com/280303002/diff/90001/content/zygote/zygote_linux.cc#newcode153 content/zygote/zygote_linux.cc:153: for (std::vector<int>::iterator it = extra_fds_.begin(); On 2014/05/28 16:44:51, ...
6 years, 6 months ago (2014-05-29 23:29:18 UTC) #28
jln (very slow on Chromium)
Don't forget to change your commit message please!
6 years, 6 months ago (2014-05-29 23:30:00 UTC) #29
earthdok
The CQ bit was checked by earthdok@chromium.org
6 years, 6 months ago (2014-06-02 11:36:16 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/earthdok@chromium.org/280303002/130001
6 years, 6 months ago (2014-06-02 11:36:47 UTC) #31
earthdok
The CQ bit was checked by earthdok@chromium.org
6 years, 6 months ago (2014-06-02 13:26:30 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/earthdok@chromium.org/280303002/150001
6 years, 6 months ago (2014-06-02 13:27:28 UTC) #33
earthdok
+kbr@ for content/gpu/ review
6 years, 6 months ago (2014-06-02 14:23:42 UTC) #34
earthdok
The CQ bit was unchecked by earthdok@chromium.org
6 years, 6 months ago (2014-06-02 15:21:52 UTC) #35
earthdok
Committed patchset #7 manually as r274248 (presubmit successful).
6 years, 6 months ago (2014-06-02 15:24:01 UTC) #36
Ken Russell (switch to Gerrit)
content/gpu lgtm
6 years, 6 months ago (2014-06-02 15:56:43 UTC) #37
Alexander Potapenko
https://codereview.chromium.org/280303002/diff/150001/content/zygote/zygote_main_linux.cc File content/zygote/zygote_main_linux.cc (right): https://codereview.chromium.org/280303002/diff/150001/content/zygote/zygote_main_linux.cc#newcode439 content/zygote/zygote_main_linux.cc:439: PCHECK(0 == socketpair(AF_UNIX, SOCK_SEQPACKET, 0, fds)); BTW have you ...
6 years, 6 months ago (2014-06-06 10:22:23 UTC) #38
Alexander Potapenko
6 years, 6 months ago (2014-06-06 12:40:43 UTC) #39
Message was sent while issue was closed.
https://codereview.chromium.org/280303002/diff/150001/content/zygote/zygote_m...
File content/zygote/zygote_main_linux.cc (right):

https://codereview.chromium.org/280303002/diff/150001/content/zygote/zygote_m...
content/zygote/zygote_main_linux.cc:439: PCHECK(0 == socketpair(AF_UNIX,
SOCK_SEQPACKET, 0, fds));
Or, better, base::UnixDomainSocket.

Powered by Google App Engine
This is Rietveld 408576698