mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
torerr: Try harder to flush raw assert messages before process termination
Some platforms (macOS, maybe others?) can swallow the last write before an abort. This issue is probably caused by a race condition between write buffer cache flushing, and process termination. So we write an extra newline, to make sure that the message always gets through. Fixes bug 31571; bugfix on 0.3.5.1-alpha.
This commit is contained in:
parent
65a1d86491
commit
c55591825f
7
changes/bug31571
Normal file
7
changes/bug31571
Normal file
@ -0,0 +1,7 @@
|
||||
o Minor bugfixes (error handling):
|
||||
- Report the tor version whenever an assertion fails. Previously, we only
|
||||
reported the Tor version on some crashes, and some non-fatal assertions.
|
||||
Fixes bug 31571; bugfix on 0.3.5.1-alpha.
|
||||
- On abort, try harder to flush the output buffers of log messages. On
|
||||
some platforms (macOS), log messages can be discarded when the process
|
||||
terminates. Fixes bug 31571; bugfix on 0.3.5.1-alpha.
|
@ -146,13 +146,19 @@ tor_raw_assertion_failed_msg_(const char *file, int line, const char *expr,
|
||||
format_dec_number_sigsafe(line, linebuf, sizeof(linebuf));
|
||||
tor_log_err_sigsafe("INTERNAL ERROR: Raw assertion failed in ",
|
||||
get_tor_backtrace_version(), " at ",
|
||||
file, ":", linebuf, ": ", expr, NULL);
|
||||
file, ":", linebuf, ": ", expr, "\n", NULL);
|
||||
if (msg) {
|
||||
tor_log_err_sigsafe_write(msg);
|
||||
tor_log_err_sigsafe_write("\n");
|
||||
}
|
||||
|
||||
dump_stack_symbols_to_error_fds();
|
||||
|
||||
/* Some platforms (macOS, maybe others?) can swallow the last write before an
|
||||
* abort. This issue is probably caused by a race condition between write
|
||||
* buffer cache flushing, and process termination. So we write an extra
|
||||
* newline, to make sure that the message always gets through. */
|
||||
tor_log_err_sigsafe_write("\n");
|
||||
}
|
||||
|
||||
/* As format_{hex,dex}_number_sigsafe, but takes a <b>radix</b> argument
|
||||
|
Loading…
Reference in New Issue
Block a user