Браузер Chromium в ОС Linux при открытии особо нагруженных всяким "говном" страниц (например maps.google.com) может аварийно завершать работу с ошибкой "Received signal 7 BUS_ADRERR". Данную ошибку можно видеть предварительно запустив Chromium из консоли, а не через ярлык на рабочем столе.
$ chromium ...здесь открываем ущербную страницу... Received signal 7 BUS_ADRERR 00009dfce000 #0 0x000003478f2d <unknown> #1 0x0000033bbdd1 <unknown> #2 0x000003479404 <unknown> #3 0x000003479afe <unknown> #4 0x0000b776fcf0 ([vdso]+0xcef) #5 0x000000a11dbe <unknown> #6 0x000000a12470 <unknown> #7 0x000000a12a56 <unknown> #8 0x000000990eb2 <unknown> #9 0x0000009912bd <unknown> #10 0x00000099141a <unknown> #11 0x000000991493 <unknown> #12 0x0000009983ad <unknown> #13 0x000000a983a7 <unknown> #14 0x000000a9a120 <unknown> #15 0x00000099dc14 <unknown> #16 0x0000009ccab4 <unknown> #17 0x0000009921e3 <unknown> #18 0x0000009b48fe <unknown> #19 0x000000a3bb1f <unknown> #20 0x000004289af0 <unknown> #21 0x0000042861d2 <unknown> #22 0x00000428698f <unknown> #23 0x000004286ba6 <unknown> #24 0x0000072875c3 <unknown> #25 0x0000072877c9 <unknown> #26 0x00000728781a <unknown> #27 0x000007287878 <unknown> #28 0x00000344ae04 <unknown> #29 0x00000348ac04 <unknown> #30 0x0000b771f27a start_thread #31 0x0000b2479366 clone gs: 00000033 fs: 00000000 es: 0000007b ds: 0000007b edi: 9dfcd0a0 esi: 00000428 ebp: abafa438 esp: abafa42c ebx: 9d1431e0 edx: 9d147460 ecx: 9d145320 eax: 000003d8 trp: 0000000e err: 00000006 ip: 00a11dbe cs: 00000073 efl: 00010206 usp: abafa42c ss: 0000007b [end of stack trace] Calling _exit(1). Core file will not be generated.
В самом браузере "Ой-йо-йой! Что-то пошло не так при отображении этой веб-страницы" (Aw, Snap! Something went wrong while displaying this webpage.).
Ошибка как бы относительно старая и связана с малым размером раздела /dev/shm
:
- Issue 571394: Chromium crashes with "Bus Adrerr"
- Issue 522853: Linux: Chrome/Chromium SIGBUS/Aw, Snap! on small /dev/shm
Рецепты устранения сего недуга сводятся к увеличению размера /dev/shm
раздела, что не подходит в условиях нехватки РАМы.
Изменение пути к кэшу --disk-cache-dir=???
имеет смысл, но проблему не решает, в списке флагов для Chrome/Chromium "List of Chromium Command Line Switches « Peter Beverloo" не найдено флага, который бы отключал использование /dev/shm
раздела.
Поковырявшись в исходном коде удалось накопать волшебный флаг --disable-dev-shm-usage
из base_switches.cc - Code Search
Изменяем путь к директории с кэшем (/tmp/chromium will be created if not exist) и отключаем использование /dev/shm
раздела:
$ /usr/bin/chromium --disk-cache-dir=/tmp/chromium --disable-dev-shm-usage
В обезьяннике firejail
предпочтительнее будет запускать следующим образом:
$ firejail --name=chromium --private-tmp /usr/bin/chromium --disk-cache-dir=/tmp/chromium --disable-dev-shm-usage
Так кэш будет создан только в виртуальном контейнере по адресу file:///tmp/chromium/
, а на реальном диске /tmp/chromium/
не будет создан:
$ ls /tmp/chromium/ ls: невозможно получить доступ к '/tmp/chromium/': Нет такого файла или каталога