Chromium crash received signal 7 bus adrerr

archive view archive save

google_chrome Браузер 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:

Рецепты устранения сего недуга сводятся к увеличению размера /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/': Нет такого файла или каталога

Комментарии в блоге
Новое на форуме