Index: content/zygote/zygote_main_linux.cc |
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc |
index b6f7089e35cdfe1d46c9a010e7e9b8b90cc0351a..78636ee0407b53b54a285566d332121bdac42ba9 100644 |
--- a/content/zygote/zygote_main_linux.cc |
+++ b/content/zygote/zygote_main_linux.cc |
@@ -617,10 +617,15 @@ bool ZygoteMain( |
if (using_layer1_sandbox) { |
// Let the ZygoteHost know we're booting up. |
- CHECK(base::UnixDomainSocket::SendMsg(kZygoteSocketPairFd, |
- kZygoteBootMessage, |
- sizeof(kZygoteBootMessage), |
- std::vector<int>())); |
+ if (!base::UnixDomainSocket::SendMsg( |
+ kZygoteSocketPairFd, kZygoteBootMessage, sizeof(kZygoteBootMessage), |
+ std::vector<int>())) { |
+ // This is not a CHECK failure because the browser process could either |
+ // crash or quickly exit while the zygote is starting. In either case a |
+ // zygote crash is not useful. http://crbug.com/692227 |
+ PLOG(ERROR) << "Failed sending zygote boot message"; |
+ _exit(1); |
+ } |
} |
VLOG(1) << "ZygoteMain: initializing " << fork_delegates.size() |