[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