Make stack depth check work with asan's use-after-return
От
Andres Freund
Тема
Make stack depth check work with asan's use-after-return
Дата
Msg-id
2kk4z4odvuyrg7qlwjd7ft4eron4cle4btb33v4qatgsdkayir@gj6e62rgsel4
Список
Дерево обсуждения
Make stack depth check work with asan's use-after-return Andres Freund <andres@anarazel.de>
Re: Make stack depth check work with asan's use-after-return Tom Lane <tgl@sss.pgh.pa.us>
Re: Make stack depth check work with asan's use-after-return Andres Freund <andres@anarazel.de>
Hi, When running asan without further options against the backend, random tests fail because the stack-depth check fails. One can work around that by putting detect_stack_use_after_return=0 into ASAN_OPTIONS (at least with gcc, clang still uses a lot of stack, but i think that's a separate issue). The reason for that breakage is that with the stack-use-after-return logic, stack variables are moved to heap allocations, to allow to detect references to the memory at a later time. That breaks our stack-depth check, which is why we had to disable detect_stack_use_after_return in CI. Luckily __builtin_frame_address() works correctly, even under asan, so use that. I think we should backpatch this. I'd be worried about using __builtin_frame_address(), but we already do, for the base address of the stack. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления