| Name |
Last commit
|
Last update |
|---|---|---|
| bloat | ||
| crosstest | ||
| pydir | ||
| runtime | ||
| src | ||
| tests_lit | ||
| unittest | ||
| .gitignore | ||
| ALLOCATION.rst | ||
| CMakeLists.txt | ||
| LICENSE.TXT | ||
| LOWERING.rst | ||
| Makefile | ||
| Makefile.standalone | ||
| OWNERS | ||
| README.rst | ||
| codereview.settings |
The input object may be a QueueStreamer, which the compile server will still have a reference to (even though downstream the memory object API and parser API thinks it has a unique_ptr). Terminate the thread quickly on error, instead of free'ing and causing a use-after-free. Also set up a report_fatal_error handler which has access to the server's state. This allows the server to record the error and stop pushing bytes to the QueueStreamer. Otherwise the QueueStreamer can get full without a consumer still active to unblock. Unfortunately the fatal error handler only terminates the current thread, and not all worker threads. NaCl doesn't have support for signals or pthread_kill. E.g., with pthread_kill(std_thread.native_handle(), SIGABRT). So, other worker/emitter threads will have to hang waiting on more input or something. Random clang-format edits from 3.7. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4163 TEST= tbd: I manually ran the translator a dummy text file (invalid bitcode header), and observed that this no longer crashes. Instead the SRPC calls finish and I see: 3> [17812,4147750656:14:23:02.025382] Streaming file at 100000 bps [17812,4147750656:14:23:12.511574] RPC call failed: Rpc application returned an error. [17812,4147750656:14:23:12.511625] StreamChunk failed [17812,4147750656:14:23:12.511655] stream_file: SendDataChunk failed, but returning without failing. Expect call to StreamEnd.4> rpc call initiated StreamEnd::isss [17812,4147750656:14:23:12.511931] RPC call failed: Rpc application returned an error. rpc call complete StreamEnd::isss output 0: i(0) output 1: s("") output 2: s("") output 3: s("Invalid PNaCl bitcode header") [17812,4147750656:14:23:12.512102] Command [rpc] failed. R=kschimpf@google.com, stichnot@chromium.org Review URL: https://codereview.chromium.org/1168543002
| Name |
Last commit
|
Last update |
|---|---|---|
| bloat | Loading commit data... | |
| crosstest | Loading commit data... | |
| pydir | Loading commit data... | |
| runtime | Loading commit data... | |
| src | Loading commit data... | |
| tests_lit | Loading commit data... | |
| unittest | Loading commit data... | |
| .gitignore | Loading commit data... | |
| ALLOCATION.rst | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| LICENSE.TXT | Loading commit data... | |
| LOWERING.rst | Loading commit data... | |
| Makefile | Loading commit data... | |
| Makefile.standalone | Loading commit data... | |
| OWNERS | Loading commit data... | |
| README.rst | Loading commit data... | |
| codereview.settings | Loading commit data... |