Commit 8ebba850 authored by Daniel Black's avatar Daniel Black Committed by Yuchen Pei

MDEV-34099: AddressSanitizer running out of memory regardless of stack_thread size

Address Sanitizer's know how to detect stack overrun, so there's
no point in us doing it.

As evidenced by perfschema tests where signficant test failures
because this function failed under ASAN (MDEV-33210).

Also, so since clang-16, we cannot assume much about how local
variables are allocated on the stack (MDEV-31605).

Disabling check idea thanks to Sanja.
parent 2ee061c2
...@@ -7282,6 +7282,7 @@ __attribute__((optimize("-O0"))) ...@@ -7282,6 +7282,7 @@ __attribute__((optimize("-O0")))
#endif #endif
check_stack_overrun(THD *thd, long margin, uchar *buf __attribute__((unused))) check_stack_overrun(THD *thd, long margin, uchar *buf __attribute__((unused)))
{ {
#ifndef __SANITIZE_ADDRESS__
long stack_used; long stack_used;
DBUG_ASSERT(thd == current_thd); DBUG_ASSERT(thd == current_thd);
if ((stack_used= available_stack_size(thd->thread_stack, &stack_used)) >= if ((stack_used= available_stack_size(thd->thread_stack, &stack_used)) >=
...@@ -7304,6 +7305,7 @@ check_stack_overrun(THD *thd, long margin, uchar *buf __attribute__((unused))) ...@@ -7304,6 +7305,7 @@ check_stack_overrun(THD *thd, long margin, uchar *buf __attribute__((unused)))
#ifndef DBUG_OFF #ifndef DBUG_OFF
max_stack_used= MY_MAX(max_stack_used, stack_used); max_stack_used= MY_MAX(max_stack_used, stack_used);
#endif #endif
#endif /* __SANITIZE_ADDRESS__ */
return 0; return 0;
} }
......
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