Hello! On Tue, Apr 20, 2021 at 04:43:58PM +0500, Илья Шипицин wrote:
> привет! > > занимаюсь тестированием 3rd parties модулей. > один из вариантов тестирования - штатные тесты > https://github.com/nginx/nginx-tests > > хотелось бы в том числе запускать их с ASAN. > > но на nginx без модулей сейчас получается вот так (половина тестов > разваливается) > > ==3669==ERROR: LeakSanitizer: detected memory leaks > > Indirect leak of 221184 byte(s) in 3 object(s) allocated from: > #0 0x5049a6 in __interceptor_malloc > (/home/ilia/nginx-1.19.10/objs/nginx+0x5049a6) > #1 0x5a11ff in ngx_alloc > /home/ilia/nginx-1.19.10/src/os/unix/ngx_alloc.c:22:9 > #2 0x5b0104 in ngx_worker_process_init > /home/ilia/nginx-1.19.10/src/os/unix/ngx_process_cycle.c:900:17 > #3 0x5af2c3 in ngx_worker_process_cycle > /home/ilia/nginx-1.19.10/src/os/unix/ngx_process_cycle.c:704:5 > #4 0x5ad797 in ngx_start_worker_processes > /home/ilia/nginx-1.19.10/src/os/unix/ngx_process_cycle.c:344:9 > #5 0x53866d in main /home/ilia/nginx-1.19.10/src/core/nginx.c:383:9 > #6 0x7f1ec30db554 in __libc_start_main (/lib64/libc.so.6+0x22554) > > SUMMARY: AddressSanitizer: 221184 byte(s) leaked in 3 allocation(s). > > > скажите, у вас есть практика запуска с asan ? Практика есть, но конкретно leak sanitizer бесполезен примерно полностью: реальных утечек в nginx'е он не ловит, так как используются pool allocator'ы, но при этом ругается на любыые аллокации, не освобождённые явно перед выходом. Что делать всегда не обязательно (при выходе процесса вся выделенная память освобождается автоматически), а в некоторых случаях и вообще невозможно (скажем, память, выделенную под какой-нибудь environ, освобождать нельзя, она используется при выходе). Хорошее решение - выключить leak sanitizer и забыть. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru