7

Важный:

Несколько постоянных пользователей SuperUser в настоящее время пытаются сузить сферу и причину этой проблемы. В настоящее время мы ищем желающих добровольцев заполнить форму здесь после выполнения следующего теста:

  1. Установите или запустите последнюю версию Firefox (скажем, 24.x или 25.x; бета тоже будет интересна).

  2. Следите за использованием памяти и процессора, используя эквивалентный диспетчеру задач Windows вашей платформы. Вы должны открыть соответствующий диспетчер задач, прежде чем открыть ссылку ниже.

  3. Сохраните любую незаконченную работу в браузере Firefox, так как она может привести к сбою. Мы не несем ответственности за любую потерянную информацию.

  4. Откройте следующую ссылку в новой вкладке: http://openclipart.org/people/GR8DAN/showbizframe.svg

  5. Наблюдайте за изменениями использования ЦП и памяти процесса Firefox до и после загрузки образа. Если разница между использованием памяти Firefox до и после открытия вышеуказанной вкладки очень значительна (1 ГБ или более), или если Firefox зависает / падает, или если вы видите устойчивую высокую загрузку ЦП, ваша система имеет ошибку. В противном случае у вас нет ошибки. В любом случае, заполните форму соответственно.

Мы пытаемся сузить симптомы и причины, чтобы обновить ошибку на баг-трекере Mozilla, чтобы разработчики Mozilla могли решить эту проблему. Мы делаем это специально, потому что это потенциально широкомасштабный, высокоприоритетный вопрос; любые веб-сайты, которые разрешают встраивание изображений, могут быть уязвимы для атаки типа «отказ в обслуживании», направленной против значительной части пользователей, посещающих страницу, если они начинают использоваться злонамеренно.

Обновление 29.11.2013: ошибка была изолирована до следующего:

  • Это не зависит от платформы. Ошибка была воспроизведена на Linux, Mac и Windows.

  • Проблема была воспроизведена с видеокартами AMD, Intel и Nvidia.

  • Это происходит только на Firefox и производных. Chrome, IE, Opera не влияют.

  • Эта проблема возникла в Firefox 25.0.1, Firefox 26 Beta, Firefox 27 Alpha и сборке магистрали Nightly по состоянию на 28.11.2013.

  • Не все пользователи испытывают сбой Firefox или общесистемную нехватку памяти (OOM). Такое поведение ограничено системами GNU/Linux с 4 ГБ ОЗУ или менее.

  • В Firefox 27 Alpha и Nightly поведение немного отличается от Firefox 25 и 26 Beta: в более новых двух версиях высокое потребление ресурсов процессора и памяти в конечном итоге уменьшится, если вы позволите изображению загружаться в течение длительного периода времени (от 10 до 20 секунд). на большинстве систем). Как только он "установился", память и состояние процессора возвращаются в нормальное состояние. Но в более старых двух выпусках состояние ЦП и памяти сохраняется до тех пор, пока вы переключаетесь на вкладку с отображением поврежденного изображения, или пока вы полностью не уничтожите Firefox или не закроете вкладку.

  • Почти все системы с новейшими графическими драйверами могут воспроизводить его. У нас есть только одна система, которая не имеет никаких симптомов, и она использует очень старый графический драйвер (около 3 лет). Это указывает на то, что это не какое-то конкретное оборудование, а скорее есть ошибка в очень старом используемом драйвере, который, как ни странно, предотвращает появление неисправного поведения.

Оригинальный вопрос:

Я использую Firefox firefox-25.0-3.fc19.x86_64 на Fedora 19 (ядро 3.11.9-200.fc19.x86_64). Если я открою эту ссылку с помощью Firefox, моя система перестает отвечать на запросы. Запуск htop на втором мониторе демонстрирует значительный всплеск использования памяти, мои 3954 МБ оперативной памяти сразу же полностью израсходуются, затем подкачка медленно заполняется, загрузка одного процессора возрастает до 100%, затем система перестает отвечать на запросы, мышь замедляется, htop требуется десятки секунд для обновления и т. д. Если я убью процесс FF, все вернется в нормальное состояние.

Даже если перезапуск FF в безопасном режиме с отключенными плагинами, поведение остается прежним. Я попробовал компьютер моего коллеги, и он имеет ~ 8000 МБ ОЗУ, то же самое происходит (высокая загрузка памяти и 1 процессор достигает 100%), когда он достигает ~ 4096 МБ, появляется диалоговое окно с просьбой убить Firefox (возможно, Firefox жестко закодирован для использовать только 4096 МБ?).

Если я использую плагин (quickjava) для отключения javascript, я могу открыть ссылку без проблем. Однако на компьютере моего коллеги это не сработает: я пробовал другие сайты, чтобы убедиться, что JS отключен, но проблема остается.

Что вызывает это?

ОБНОВЛЕНИЕ: проблема возникает при просмотре этого SVG.

1 ответ1

3
  1. Это не JavaScript; Дело в том, что существует много сложных файлов масштабируемой векторной графики (SVG), которые отображаются по указанной вами ссылке.
  2. Графический стек Fedora с аппаратным ускорением общеизвестно глючит, поэтому вполне возможно, что использование графического стека Firefox вызывает ошибку в графическом стеке (в Mesa, Xorg DDX или ядре).
  3. Также возможно, что SVG визуализируются фактически в программном обеспечении, и программный рендерер все еще глючит.

Давайте разделим и победим

Отключить аппаратное ускорение

В FF перейдите в Edit -> Preferences, нажмите Advanced, затем на вкладке General в разделе Browsing снимите флажок «Использовать аппаратное ускорение, когда доступно».

Теперь попробуйте тот же сайт снова. Если вы не получаете перегрузку ЦП / памяти, то мы знаем, что проблема заключается либо в ускорении 2D Canvas GPU (либо в использовании Firefox, либо в графическом стеке бэкенда), либо в рендере SVG.

Если вы получаете ту же перегрузку CPU/ памяти с аппаратными средствами разгона отключена, то это может быть ошибка в SVG синтаксического анализа, который, вероятно , сделано в чистом программном обеспечении. Хотя, в этом случае, мы, вероятно, столкнемся с проблемой и в Windows, но это не так (тестирование на FF 24.1.0 в Windows было медленным, но не потребляло весь процессор и оперативную память, как у вас).

Я подозреваю какую-то утечку памяти в Mesa.

Еще несколько вещей, чтобы попробовать

  1. Зайдите в about:support в Firefox, нажмите "Копировать текст в буфер обмена" и опубликуйте это здесь (pastebin или около того). Это поможет тем из нас, кто знаком с проблемным пространством, определить ситуацию с вашим оборудованием и вашим графическим стеком.
  2. Зайдите в about:memory в Firefox, установите флажок "Verbose", затем нажмите "Measure". Было бы замечательно, если бы вы могли сделать это сразу после перехода на страницу, где вас обидели, - если бы вы могли заставить FF что-то сделать в это время.
  3. Запустите Firefox из терминала следующим образом: LIBGL_DEBUG=verbose firefox -safe-mode . Перейдите прямо на сайт, который OOMs. Дайте ему поработать всего несколько секунд (этого достаточно, чтобы четко запустить проблему, но не позволяйте ей перегружать вашу систему), а затем убейте ее. Разместите вывод здесь вместе с выводом dmesg .

Эти вещи дадут нам больше отладочной информации, чтобы понять, где именно проблема, но большинство из этих шагов сосредоточены вокруг предположения, что проблема в графическом стеке. Если это не так, большая часть этого не будет полезна.

Обновление: я создал необработанную ссылку на github , в которой нет ни JavaScript, ни какого-либо дурачества; это просто список прачечной SVG. Это должно произойти сбой, если у вас есть дефектное поведение, и это устраняет все другие возможные источники проблемы.

Обновление 2: OP изолировал проблему для этого конкретного изображения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .