mirror of
https://github.com/apache/impala.git
synced 2025-12-19 18:12:08 -05:00
Minidump stack resolution does not work on Redhat8 ARM64. Redhat8 ARM64 uses 64KB pages, and the Breakpad library does not properly handle collecting stacks for that configuration. Breakpad rounds off the stack pointer to the nearest page boundary below the stack pointer, then collects up to 32KB of stack memory. With a top-down stack, this means it is collecting some memory that is not used by the stack. With 64KB pages, the memory it collects usually doesn't contain any stack contents. This picks up a toolchain with Breakpad patched to fix this. The patch stops rounding the stack pointer to the nearest page. Instead, it adjusts the stack pointer to account for the red zone (128 bytes on x86_64) and then rounds to the nearest 1KB boundary below the stack pointer. Testing: - Produced and resolved minidumps on multiple build types for x86_64 and ARM64 (release, debug, asan, ubsan) Change-Id: I4fbd91abfbddfd8355d27ae9d9b86b70a9ce0409 Reviewed-on: http://gerrit.cloudera.org:8080/23465 Reviewed-by: Michael Smith <michael.smith@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>