Firefox: visualizar um arquivo SVG específico faz com que o sistema pare de responder

Firefox: visualizar um arquivo SVG específico faz com que o sistema pare de responder

Importante:

Vários usuários regulares do SuperUser estão atualmente tentando restringir o escopo e a causa desse problema.No momento, estamos procurando voluntários dispostospara preencher o formulárioaquidepois de realizar o seguinte teste:

  1. Instale ou inicie uma versão recente do Firefox (digamos, 24.x ou 25.x; beta também seria interessante).

  2. Observe o uso da memória e da CPU usando o equivalente da sua plataforma ao Gerenciador de Tarefas do Windows. Você deve ter o gerenciador de tarefas apropriado abertoantesvocê abre o link abaixo.

  3. Salve qualquer trabalho inacabado no navegador Firefox, pois ele pode travar. Não nos responsabilizamos por qualquer informação perdida.

  4. Abra o seguinte link em uma nova guia:http://openclipart.org/people/GR8DAN/showbizframe.svg

  5. Observe as mudanças no uso de CPU e memória do processo do Firefox antes e depois de carregar a imagem. Se a diferença entre o uso de memória do Firefoxantes e depoisabrir a guia acima é muito significativo (1 GB ou mais),ouse o Firefox congelar/travar,ouse você observar um alto uso sustentado da CPU,seu sistema tem o bug. Caso contrário, você não tem o bug. Em ambos os casos, preencha o formulário adequadamente.

Estamos tentando restringir os sintomas e a causa para atualizar um bug noRastreador de bugs Mozillapara que os desenvolvedores do Mozilla possam resolver o problema. Estamos fazendo isso especificamente porque esta é uma questão potencialmente abrangente e de alta prioridade; quaisquer sites que permitam a incorporação de imagens podem ficar vulneráveis ​​a um ataque de negação de serviço contra um subconjunto significativo de usuários que visitam a página, se esta começar a ser usada de forma maliciosa.

Atualização 29/11/2013: O bug foi isolado no seguinte:

  • É independente de plataforma. O bug foi reproduzido em Linux, Mac e Windows.

  • O problema foi reproduzido com placas gráficas AMD, Intel e Nvidia.

  • Ocorre apenas no Firefox e derivados. Chrome, IE, Opera não são afetados.

  • O problema foi produzido no Firefox 25.0.1, Firefox 26 Beta, Firefox 27 Alpha e na versão Nightly do trunk em 28/11/2013.

  • Nem todos os usuários estão enfrentando uma falha no Firefox ou uma situação de falta de memória (OOM) em todo o sistema. Este comportamento parece limitado a sistemas GNU/Linux com 4 GB de RAM ou menos.

  • No Firefox 27 Alpha e Nightly, o comportamento difere um pouco do Firefox 25 e 26 Beta: nas duas versões mais recentes, o alto consumo de CPU e memória acabará se estabilizando se você deixar a imagem carregar por um longo período de tempo (10 a 20 segundos na maioria dos sistemas). Depois de "resolvido", as condições da memória e da CPU voltam ao normal. Mas nas duas versões mais antigas, as condições de CPU e memória persistem enquanto você muda para a guia com a imagem ofensiva sendo renderizada, ou até que você elimine completamente o Firefox ou feche a guia.

  • Quase todos os sistemas com drivers gráficos recentes podem reproduzi-lo. Temos apenas um sistema registrado que não apresentaqualquerqualquer sintoma e está usando um driver gráfico extremamente antigo (cerca de 3 anos). Isso indica que não se trata de nenhum hardware específico, mas sim de um bug no driver muito antigo usado que, curiosamente, impede a ocorrência do comportamento defeituoso.

Pergunta original:

Estou usando o Firefox firefox-25.0-3.fc19.x86_64 no Fedora 19 (kernel 3.11.9-200.fc19.x86_64). Se eu abriresse linkusando o Firefox, meu sistema não responde. A execução htopem um segundo monitor mostra um grande aumento no uso de memória, meus 3.954 MB de RAM são consumidos imediatamente, então o swap é preenchido lentamente, o uso de um processador sobe para 100%, então o sistema não responde, o mouse fica lento, htopleva dezenas de segundos para atualizar, etc. Se eu encerrar o processo FF, tudo voltará ao normal.

Mesmo reiniciando o FF em modo de segurança com plugins desabilitados, o comportamento é o mesmo. Eu tentei a máquina do meu colega de trabalho e ela tem ~ 8.000 MB de RAM, o mesmo acontece (alto uso de memória e 1 processador chega a 100%), quando atinge ~ 4.096 MB de uso, uma caixa de diálogo aparece pedindo para matar o firefox (talvez o firefox esteja codificado para usar apenas 4.096 MB?).

Se eu usar um plugin (quickjava) para desabilitar o javascript, posso abrir o link sem problemas. No entanto, na máquina do meu colega de trabalho isso não funciona: tentei outros sites para garantir que o JS estava desativado, mas o problema persiste.

O que está causando isso?

ATUALIZAR: O problema surge ao visualizareste SVG.

Responder1

  1. Não é JavaScript; é o fato de que existem muitos arquivos SVG (Scalable Vector Graphics) complexos sendo renderizados pelo link que você postou.
  2. A pilha gráfica acelerada por hardware do Fedora é notoriamente problemática, então é bem possível que o uso da pilha gráfica pelo Firefox esteja causando um bug na pilha gráfica (no Mesa, no Xorg DDX ou no kernel).
  3. Também é possível que os SVGs estejam sendo renderizados emProgramase o renderizador de software ainda apresenta erros.

Vamos dividir e conquistar:

Desabilitar aceleração de hardware

No FF, vá em Editar -> Preferências, clique em Avançado e, na guia Geral, na seção Navegação, desmarque "Usar aceleração de hardware quando disponível".

Agora tente o mesmo site novamente. Se vocênãoSe houver sobrecarga de CPU/memória, saberemos que o problema está na aceleração da GPU do 2D Canvas (seja no uso do Firefox ou na pilha de gráficos de back-end) ou no renderizador SVG.

Se vocêfazerobter a mesma sobrecarga de CPU/memória com aceleração de hardware desabilitada, então pode ser um bug no analisador SVG, o que provavelmente é feito em software puro. Embora, nesse caso, provavelmente teríamos o problema também no Windows, mas não estamos (testado no FF 24.1.0 no Windows e era lento, mas não consumia toda a CPU e RAM como o seu).

Suspeito de algum tipo de vazamento de memória no Mesa.

Mais algumas coisas para tentar

  1. Vá para about:supporto Firefox, clique em "Copiar texto para a área de transferência" e poste aqui (pastebin ou algo assim). Isso ajudará aqueles de nós familiarizados com o espaço do problema a determinar qual é a situação do seu hardware e da sua pilha gráfica.
  2. Vá para about:memoryo Firefox, marque a caixa de seleção "Detalhado" e clique em "Medir". Seria incrível se você pudesse fazer issologo apósvocê vai para a página ofensiva - se conseguir que o FF faça alguma coisa naquele momento.
  3. Execute o Firefox a partir do terminal da seguinte maneira: LIBGL_DEBUG=verbose firefox -safe-mode. Navegue direto para o site do OOMs. Deixe-o funcionar por apenas alguns segundos (o suficiente para iniciar claramente o problema, mas não deixe que ele sobrecarregue seu sistema) e depois elimine-o. Poste a saída aqui, junto com a saída do dmesg.

Essas coisas nos darão mais informações de depuração para entender exatamente onde está o problema, mas a maioria dessas etapas se concentra na suposição de que o problema está na pilha de gráficos. Se não for, a maior parte disso não será útil.

Atualizar:Eu criei umlink bruto do githubque não tem javascript ou qualquer tolice; é apenas uma longa lista de SVGs. Ele deve travar se você tiver um comportamento defeituoso e eliminar todas as outras fontes possíveis do problema.

Atualização 2:O OP isolou o problema paraesta imagem específica.

informação relacionada