[devel] rpm-build, AddressSanitizer failed to allocate 0xdfff0001000

Ilya Kurdyukov ilyakurdyukov на basealt.ru
Пт Апр 12 07:14:55 MSK 2024


На basalt у меня не работает санитайзер в hasher:

$ cat test.c
int main() {}
$ cc test.c -O2 -fsanitize=address && ./a.out
==2140439==ERROR: AddressSanitizer failed to allocate 0xdfff0001000 
(15392894357504) bytes at address 2008fff7000 (errno: 12)
==2140439==ReserveShadowMemoryRange failed while trying to map 
0xdfff0001000 bytes. Perhaps you're using ulimit -v
Aborted

Какое-то время назад санитайзер работал.

Не в hasher ошибки нет, но может потому, что машину давно не обновляли, 
за это время в санитайзер сломался в сизифе.

"AddressSanitizer failed to allocate 0xdfff0001000" гуглится, но решений 
не нашел.

Мне надо для проверки rpm-build (4.0.4.195-alt1). На e2k поймал такую 
ошибку при сборке MAKEDEV:

free(): invalid pointer

Program received signal SIGABRT, Aborted.
0x0000455555aa4308 in __pthread_kill_internal () from /lib64/libc.so.6
(gdb) bt 100
#0  0x0000455555aa4308 in __pthread_kill_internal () from /lib64/libc.so.6
#1  0x000045555593bc70 in raise () from /lib64/libc.so.6
#2  0x00004555559464c0 in abort () from /lib64/libc.so.6
#3  0x0000455555a5db78 in __libc_message () from /lib64/libc.so.6
#4  0x0000455555afe8f0 in malloc_printerr () from /lib64/libc.so.6
#5  0x0000455555af8e20 in _int_free () from /lib64/libc.so.6
#6  0x0000455555aea600 in free () from /lib64/libc.so.6
#7  0x000045555563a050 in freeHardLink () from /usr/lib64/librpm-4.0.4.so
#8  0x0000455555643960 in fsmStage () from /usr/lib64/librpm-4.0.4.so
#9  0x000045555563b180 in fsmSetup () from /usr/lib64/librpm-4.0.4.so
#10 0x0000455555854e00 in cpio_doio () from 
/usr/lib64/librpmbuild-4.0.4.1.so
#11 0x000045555585a458 in writeRPM () from 
/usr/lib64/librpmbuild-4.0.4.1.so
#12 0x000045555585caf0 in packageBinaries ()
    from /usr/lib64/librpmbuild-4.0.4.1.so
#13 0x000045555581c440 in buildSpec () from 
/usr/lib64/librpmbuild-4.0.4.1.so
#14 0x0000000000017910 in buildForTarget ()
#15 0x0000000000018440 in build ()
#16 0x000000000001b200 in main ()

Подозреваю что в rpm-build может быть выход за пределы буфера.

Но на e2k санитайзер сломался на rpm-build, но как-то по другому. 
Поэтому решил проверить на x86_64.



Подробная информация о списке рассылки Devel