Firefox congelando com 100% de uso da CPU por 30 segundos ao iniciar o Chromium

22

Recentemente, comecei a observar esse comportamento muito confuso e irritante, para não dizer preocupante ao abrir o Firefox e depois iniciar o Chromium:

Por cerca de 30 segundos, os processos filhos do Firefox consumiriam todos os recursos de CPU disponíveis, fazendo com que os sites parassem de renderizar (a página já exibida congela, novas páginas mostram uma página branca com um círculo giratório cinza) enquanto a janela geral ainda responde (menus, rolagem de página , alternar guias, até páginas internas como about: config ou about: preferências funcionam ...). O próprio cromo não mostra nenhum sintoma. A interrupção do Chromium novamente imediatamente, enquanto o Firefox está girando, não interrompe o comportamento mais rapidamente.

O mesmo acontece com o meu perfil normal do Firefox, um novo e intocado perfil do Firefox, sem complementos, etc. Semelhante ao Chromium, posso iniciá-lo com meu perfil normal, no modo de navegação anônima ou com um perfil temporário, sempre gerando os mesmos resultados.

Não há nada estranho acontecendo quando o Chromium está sendo executado e eu abro o Firefox.

Ao iniciar o Firefox a partir de um terminal, às vezes recebo mensagens como estas quando o encerro enquanto ele gira (observe a linha de erro do pipe mencionando algum chromium ipc ...):

ExceptionHandler::GenerateDump cloned child 32165
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
[Parent 26520, Gecko_IOThread] WARNING: pipe error (52): Connection reset by peer: file /build/firefox-8oo9jx/firefox-62.0+build2/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 353
ExceptionHandler::GenerateDump cloned child 32274
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
ExceptionHandler::SendContinueSignalToChild sent continue signal to child

Estranhamente, não consegui reproduzir esse comportamento em uma conta de convidado ou em uma conta regular (admin) recém-criada.

Algumas especificações do sistema (atualizadas):

  • Ubuntu 16.04 (64 bits)
  • Raposa de fogo 62.0 + build2-0ubuntu0.16.04.5 63.0 + build2-0ubuntu0.16.04.2
  • Crómio 69.0.3497.81-0ubuntu0.16.04.1 70.0.3538.77-0ubuntu0.16.04.1
  • fontconfig 2.11.94-0ubuntu1.1
  • Hardware gráfico: Placa gráfica integrada Intel SkyLake (i5-6200U) + Nvidia GeForce 940M
    Atualmente, tenho o nvidia-410driver instalado, mas mudei para o perfil principal da Intel. Como posso solucionar ainda mais e corrigir esse problema?

Criei um perfil de desempenho com a extensão Gecko Profiler, instalada em um perfil limpo do Firefox na minha conta normal do Ubuntu. Pode ser encontrado aqui: https://perfht.ml/2zpTWsh - O período de tempo de resposta com 100% de uso da CPU deve corresponder aproximadamente à área destacada nas linhas de tempo do Content Proc, de aproximadamente 18s a 56s.

Criei um relatório de bug do Mozilla para este problema: https://bugzilla.mozilla.org/show_bug.cgi?id=1504461

Atualização importante: Aparentemente, meu relatório de erros foi uma duplicata de https://bugzilla.mozilla.org/show_bug.cgi?id=1495900 , que aponta fontconfigcomo o culpado. Parece que iniciar o Chromium está fazendo uma alteração na configuração da fonte, o que desencadeia uma recarga completa no Firefox. Isso se encaixa no relatório de perfil de desempenho e também se alinha com o modo como as atualizações anteriores dos pacotes de fontes acionaram o mesmo tipo de congelamento.

Alguma idéia de como eu posso fazer com que os três (Firefox, Chromium, fontconfig) se comportem bem entre si?

Byte Commander
fonte
Tudo o que estou encontrando na linha 353 do ipc_channel_posix.cc é uma declaração true de retorno. É claro que a conexão descansa por um par ser fatal nunca é um bom presságio. Infelizmente não consigo reproduzir esse problema. Eu gostaria de poder ser de mais ajuda.
Elder Geek
Eu também tive problemas esporádicos com cpu alta no ubuntu, mas não sei dizer o que causou ou o resolveu. Havia vários problemas em aberto que eu rastreava relacionados ao alto uso da CPU - então, eu atualizaria e esperaria. No momento, não estou tendo nenhum problema (ou, se houver, é uma guia específica; portanto, reiniciar o navegador ou fechar a guia o resolve). É possível atualizar de 16.04 para 18.10 (como, é claro, 16.04 é de 4/2016 e 18.10 é de 8/2018) ...? E, fwiw, eu também mudei para o kubuntu, que parece me dar menos dores de cabeça. (Se possível, arrancar a partir de USB e experiência w / ambos.)
michael
Às vezes, tenho o Firefox em execução e, em seguida, abro o Chrome (sei que é um pouco diferente) e não percebi nenhum alto uso da CPU. Talvez um pico de 5 segundos de 18% da CPU para 30% da CPU em 8 CPUs virtuais.
WinEunuuchs2Unix

Respostas:

17

TL; DR: é um problema fontconfiganterior à versão 2.13. Pode ser corrigido atualizando o pacote para 2.13 ou superior (embora eu não tenha conseguido encontrar um provedor adequado). Como alternativa, examine todas as suas pastas e arquivos de configuração relacionados a fontes no diretório inicial e teste se a remoção de alguma delas resolve o seu problema. Para mim, renomear ~/.fontsfez o truque.


Depois de aprender sobre os relatórios de erros https://bugzilla.mozilla.org/show_bug.cgi?id=1495900 e https://bugzilla.mozilla.org/show_bug.cgi?id=1411338 , fica bastante claro que o problema deve ser causado por fontconfig.

De alguma forma, quando o Chromium é iniciado, ele aciona uma alteração no banco de dados de fontes (???), que faz com que o Firefox - se estiver em execução no momento - verifique novamente o sistema de arquivos em busca de fontes, resultando no uso da CPU e no congelamento temporário.

Aparentemente, a atualização do fontconfigpacote da versão 2.11 para a 2.13 (a versão fornecida, por exemplo, no Ubuntu 18.10) deve corrigir o problema, mas não encontrei uma maneira fácil de obter essa versão no 16.04, sem quebrar as dependências de muitos outros pacotes que instalei.

Portanto, como o problema é limitado à minha conta de usuário, examinei a configuração e as pastas de fontes locais do meu usuário. Há uma grande bagunça de diferentes diretórios de fontes relacionadas para ser honesto, incluindo ~/.fonts, ~/.local/share/fonts, ~/.local/share-font-manager, ~/.config/font-manager, ~/.cache/font-manager, ~/.cache/fontconfige alguns arquivos de configuração mais e outras coisas fonte específica da aplicação.

Comecei removendo (renomeando) a ~/.fontspasta, pois ela não parecia conter nada útil, e um simples touch ~/.fonts/Library/antes disso desencadeou o mau comportamento do Firefox. Depois que essa pasta foi removida, o problema ocorreu ao iniciar o Chromium. \ o /

Byte Commander
fonte
Faz sentido, pois não tenho ~/.fontsdiretório. Todas as fontes estão em um diretório amplo do sistema.
WinEunuuchs2Unix 4/11/18
Aparentemente, um bug semelhante ou mesmo o mesmo pode ser disparado no 18.04, iniciando também uma janela do terminal raiz. strace indica alguma E / S de arquivo grave em relação aos arquivos de fonte. Curiosamente, este não é apenas um problema apenas do firefox, mas também de outras aplicações do xorg, então presumo que haja um problema no xorg também. Infelizmente, excluir os diretórios em questão não ajudou.
stefanct
1
No entanto, a atualização fontconfigpara 2.13.0-5ubuntu3cosmic / 18.10 resolveu o problema AFAICT. Este foi o bug mais estranho de todos os tempos ... obrigado pelas dicas.
stefanct
@stefanct como você conseguiu instalá-lo sem quebrar coisas, tentei forçar o fontconfig e o libfontconfig1 2.13 e o apt queria remover todo o meu DE, executando 18.04 #
GM-Script-Writer-62850/01/
@ GM-Script-Writer-62850 Não tenho nenhuma lembrança de lidar libfontconfig1especificamente. Em geral, adicionei os espelhos biônicos à aptlista e apliquei o apt pinning para evitar a instalação de qualquer um de seus pacotes sem a indicação específica. Então eu usei simplesmente apt's -topção assim: apt install fontconfig -tcosmic. Estou usando o mate como DE… talvez não funcione tão facilmente com outros DEs.
stefanct
3

fundo

Foi proposto este Firefox Bug 1492360: Alto uso da CPU quando o Firefox é aberto antes do Chrome / Chromium . Ou seja, é uma duplicata do Bug 1495900: Iniciar o Chrome faz com que os processos de conteúdo do Firefox travem por cerca de dois minutos, devido à nova verificação de fonte FontConfig (FcInitReinitialize) , é o culpado.

Mas eu também estou no Firefox:

Firefox version.png

E quando eu abro o Chrome:

Chrome version.png

Não vejo nenhum desempenho atingido nas CPUs.

Pode ser contra a sua moral, mas talvez você possa tentar instalar google-chrome-stablecomo eu. Então faça o teste novamente. Se não houver um pico de uso da CPU em 100%, um relatório de erro poderá ser apresentado entre o Chromium e o Chrome.

Estou no Ubuntu 16.04.5 LTS. Embora o kernel seja atualmente uma 4.14.78cadeia LTS, não acho que tenha algo a ver com isso, pois também não notei hits da CPU nos kernels anteriores.

A única vez em que vejo todas as CPUs a 100% é durante update-initramfs.


fontconfig verson

No relatório de erros, é revelado:

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.12.6-0ubuntu2 amd64        generic font configuration library - support binaries
ii  fontconfig-config 2.12.6-0ubuntu2 all          generic font configuration library - configuration

Na minha versão sem erros (pode ser por causa de nenhuma fonte local):

$ dpkg -l 'fontconfig*' | grep "^ii"
ii  fontconfig        2.11.94-0ubuntu1.1 amd64        generic font configuration library - support binaries
ii  fontconfig-config 2.11.94-0ubuntu1.1 all          generic font configuration library - configuration

Estou na 2.11.94versão anterior à versão do relatório de erros 2.12. No relatório de erros, atualizar para 2.13é uma solução recomendada, mas o OP mencionado nos comentários não é possível. Como tal, 2.11.94 pode ser uma opção.

WinEunuuchs2Unix
fonte
Bem, não, não pretendo instalar o Chrome. No entanto, eu descobri que o culpado é fontconfigagora. Provavelmente você tem fontes locais diferentes (ou não) instaladas na sua conta de usuário. Encontrei uma solução alternativa para remover (renomear) a ~/.fontspasta, que corrige o problema. Aparentemente, a atualização para fontconfig> = versão 2.13 deve corrigi-lo, mas não posso fazer isso no 16.04.
Byte Commander
Sim, as únicas fontes que eu instalei são para códigos de barras (código 3 de 9) que são ttfusados ​​em processadores de texto / planilhas. Infelizmente, você teve que resolver sua própria questão de recompensa, mas se é algum consolo o mesmo aconteceu comigo no passado.
WinEunuuchs2Unix
Eu adicionei o downgrade fontconfigcomo uma opção para corresponder à minha versão, mas essa é uma "fraca esperança", pois você pode ter vindo de lá. Se você tiver um link para instalar fontes locais, tentarei confirmar / negar o efeito da fontconfigversão anterior .
WinEunuuchs2Unix
Minha versão também fontconfigé 2.11.94-0ubuntu1.1, essa não está livre de bugs. Deve ser uma combinação das fontes instaladas, configuração de fonte personalizada e magia negra, eu acho. Veja minha resposta. :)
Byte Commander
1

A julgar pelo log, parece que o Firefox está usando IPC síncrono (comunicação entre processos) por algum motivo. Existem sinalizadores no Firefox para ativar o IPC síncrono explicitamente (por exemplo: network.cookie.ipc.sync). Um deles pode estar ativado. Você pode acessar estes a partir do about: config página

O atraso seria o resultado da espera do firefox na resposta. Como não há carga quando o Chromium termina a inicialização ou não está em execução ativa, há uma resposta imediata.

Relacionado: https://bugzilla.mozilla.org/show_bug.cgi?id=1331680

Aswin B
fonte
Alternei o valor dessa network.cookie.ipc.syncconfiguração de falso para verdadeiro e vice-versa, reiniciando o Firefox após cada alteração, mas continuo com o mesmo comportamento :( Ainda não entendo por que o Firefox e o Chromium se comunicariam em primeiro lugar, eles deveriam se importar negócio cada.
Byte Commander
1
Eu tinha excluído isso desde que você achou o motivo real não relacionado, mas acho que devo deixar isso aqui como causa provável?
Aswin B
0

Não sei se a sugestão a seguir funcionará ou não. Você pode tentar. Tente remover completamente o cromo e o firefox (mantenha os arquivos .deb, é claro) usando o Synaptic Package Manager. Depois disso, verifique se há alguma dependência quebrada. Corrija-os usando sináptico (se houver). Agora verifique o uso da CPU (eu uso o Powertop). Finalmente, faça uma nova reinstalação dos navegadores.

Nota: Essas coisas geralmente são o que eu faço em caso de anormalidades específicas. Lembro-me de enfrentar um problema um pouco semelhante há um ano. Foi resolvido dessa maneira.

Hirak
fonte
Não, limpar e reinstalar todos os pacotes firefox * e chromium * não mudou nada.
Byte Commander
os widgets de estatísticas inativas e estatísticas de frequência do powertop mostram 100% de uso ao iniciar o cromo?
Hirak #
Sim, mostra cerca de 112% para "C0 ativo" em todos os núcleos nas estatísticas de inatividade, e as estatísticas de frequência relatam a frequência máxima (2,7 GHz) e 0% de ociosidade em cada núcleo. A guia Visão geral exibe todos os processos do Firefox no topo da lista, com aproximadamente 600-900ms / s de tempo de computação cada, mas zero eventos / s.
Byte Commander
0

No Ubuntu 16.04, excluir a pasta vazia ~/.local/share/fontsresolveu no meu caso.

Djalal M.
fonte