Skip to content

Commit 94041d1

Browse files
committed
Fix SIGSEGV due to CPU/Real profiler
The problem was due to incorrect unwinding due from signal handlers, which leads to incorrect DWARF (FDE/CIE) interpretation. After this patch I was not able to reproduce the crash for couple of hours, while before it was very stable (I've reduced the minimal threshold for query_profiler_real_time_period_ns), using simply: $ clickhouse-benchmark --port 19000 -q "SELECT * FROM remote('127.{1..10}', system, one)" --query_profiler_real_time_period_ns=1 Note, I'm using here remote() for fibers, that has stack with guard pages that helps with reproducing the crash more faster. P.S. I also have another implementation of this fix, without patching unwind and using info from signal context directly, and even though it is better, because you don't need to trip extra frames and you can use all the 45 frames for something useful, it is too complex, so let's go with a simpler patch first, and I think it could be even backported. Signed-off-by: Azat Khuzhin <[email protected]>
1 parent 00c8861 commit 94041d1

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

contrib/libunwind

0 commit comments

Comments
 (0)