Commit 291ec754 authored by Danil Chapovalov's avatar Danil Chapovalov Committed by Commit Bot

Remove static initializer from generic absl stack trace implementation

This is a temporary solution. pending on help from abseil team
to resolve this SI properly
As side effect it disables absl's stack traces for mac.

Bug: 1127002
Change-Id: I7be2c1d15af50ba50c7a9df2d56ae00939c4aa12
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2409693Reviewed-by: default avatarMirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Danil Chapovalov <danilchap@chromium.org>
Cr-Commit-Position: refs/heads/master@{#807416}
parent abb78ea0
...@@ -43,17 +43,6 @@ static __thread int recursive = 0; ...@@ -43,17 +43,6 @@ static __thread int recursive = 0;
// glibc implementation itself will trigger malloc the first time it is called. // glibc implementation itself will trigger malloc the first time it is called.
// As such, we suppress usage of backtrace during this early stage of execution. // As such, we suppress usage of backtrace during this early stage of execution.
static std::atomic<bool> disable_stacktraces(true); // Disabled until healthy. static std::atomic<bool> disable_stacktraces(true); // Disabled until healthy.
// Waiting until static initializers run seems to be late enough.
// This file is included into stacktrace.cc so this will only run once.
ABSL_ATTRIBUTE_UNUSED static int stacktraces_enabler = []() {
void* unused_stack[1];
// Force the first backtrace to happen early to get the one-time shared lib
// loading (allocation) out of the way. After the first call it is much safer
// to use backtrace from a signal handler if we crash somewhere later.
backtrace(unused_stack, 1);
disable_stacktraces.store(false, std::memory_order_relaxed);
return 0;
}();
template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT> template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT>
static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count, static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count,
...@@ -99,7 +88,7 @@ namespace absl { ...@@ -99,7 +88,7 @@ namespace absl {
ABSL_NAMESPACE_BEGIN ABSL_NAMESPACE_BEGIN
namespace debugging_internal { namespace debugging_internal {
bool StackTraceWorksForTest() { bool StackTraceWorksForTest() {
return true; return false;
} }
} // namespace debugging_internal } // namespace debugging_internal
ABSL_NAMESPACE_END ABSL_NAMESPACE_END
......
diff --git a/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc b/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc
index b2792a1f3ada..b94c61233ba3 100644
--- a/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc
+++ b/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc
@@ -43,17 +43,6 @@ static __thread int recursive = 0;
// glibc implementation itself will trigger malloc the first time it is called.
// As such, we suppress usage of backtrace during this early stage of execution.
static std::atomic<bool> disable_stacktraces(true); // Disabled until healthy.
-// Waiting until static initializers run seems to be late enough.
-// This file is included into stacktrace.cc so this will only run once.
-ABSL_ATTRIBUTE_UNUSED static int stacktraces_enabler = []() {
- void* unused_stack[1];
- // Force the first backtrace to happen early to get the one-time shared lib
- // loading (allocation) out of the way. After the first call it is much safer
- // to use backtrace from a signal handler if we crash somewhere later.
- backtrace(unused_stack, 1);
- disable_stacktraces.store(false, std::memory_order_relaxed);
- return 0;
-}();
template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT>
static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count,
@@ -99,7 +88,7 @@ namespace absl {
ABSL_NAMESPACE_BEGIN
namespace debugging_internal {
bool StackTraceWorksForTest() {
- return true;
+ return false;
}
} // namespace debugging_internal
ABSL_NAMESPACE_END
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment