зеркало из https://github.com/mozilla/gecko-dev.git
334814f9c8
The pipe we use to communicate crash-time annotations to the main process is non-blocking. It's created using NSPR's `PR_CreatePipe()` which sets it in non-blocking mode by default but this code was originally writing to a file which had been opened in blocking mode. Because of this the writes to it assumed blocking behaviour and didn't check for EAGAIN. This could lead to crash annotations not being fully sent if they were too long for a single `write()` invocation. This affected both Linux and macOS. This patch trivially fixes the problem by repeatedly calling `write()` until the annotations are fully written out. This is not optimal but it's acceptable given that this code runs in an exception handler and I don't know if it would be safe to call `poll()` in such a context. Differential Revision: https://phabricator.services.mozilla.com/D98058 |
||
---|---|---|
.. | ||
actors | ||
components | ||
content | ||
crashreporter | ||
docs | ||
library | ||
locales | ||
modules | ||
mozapps | ||
pluginproblem | ||
profile | ||
system | ||
themes | ||
xre | ||
.eslintrc.js | ||
l10n-registry.manifest | ||
moz.build | ||
moz.configure | ||
toolkit.mozbuild |