Gedit causa falha do sistema operacional [fechado]

3

Estou executando o 12.04 em uma área de trabalho Dell (que originalmente veio com apenas 10.04 instalado) e quando tento arrastar uma guia Gedit de uma janela para outra, o sistema inteiro congela, solucionável apenas com uma reinicialização difícil. Não tenho certeza de como posso obter um arquivo .crash e precisar de assistência adicional porque:

  1. Eu estou no meio das finais e não tenho a chance agora de ver isso
  2. a única coisa que posso fazer quando o acidente acontece é mudar espaços de trabalho e abrir um terminal com comandos de teclado (embora no terminal os caracteres alfanuméricos sejam tudo o que funciona - a barra de espaço não faz nada e nem entra.

Alguém mais viu esse problema? Uma pesquisa rápida não retornou nada.

    
por Harris Karsch 09.05.2012 / 16:49

2 respostas

4

Evitando reinicializações rígidas

As reinicializações difíceis quase nunca são necessárias. Se você está sempre em uma situação em que acha que pode precisar fazer uma reinicialização difícil, tente primeiro estas alternativas, nesta ordem:

  1. Pressione Ctrl + Alt + F1 . Em seguida, pressione Ctrl + Alt + Apagar . Isso normalmente será encerrado e reinicializado de maneira limpa.

  2. Se isso falhar, você pode fazer algo que é quase tão poderoso quanto uma reinicialização difícil, mas que diminui o risco de perda de dados e outros possíveis resultados negativos da reinicialização rígida. Mantenha pressionados Alt e SysRq e, em ordem, pressione R E I < kbd> S U B . (Mantenha pressionado Alt e SysRq o tempo todo, mas libere cada tecla da letra antes de pressionar a próxima.) esta página para uma explicação simples do que isso faz, e este artigo da Wikipedia para obter informações mais detalhadas.

No entanto, na situação que você encontrou e descreveu em sua pergunta, provavelmente não é necessário reinicializar . Existe uma técnica que provavelmente funcionará para finalizar gedit , mas deixará todo o resto intacto e funcionando plenamente. Você pode até mesmo relatar o bug, mas como não é realmente uma falha, ele não estará com um arquivo .crash.

Recuperando sem reinicializar

Como a mudança de espaços de trabalho é possível, o sistema não está totalmente bloqueado. Quando isso acontece, você deve recuperar o controle completo do sistema fazendo o seguinte:

  1. Pressione Ctrl + Alt + F1 para alternar da GUI para um console virtual.

  2. Faça login com seu nome de usuário e senha. Você não verá nada na tela quando digitar sua senha. Tudo bem.

  3. Agora que você tem um prompt de shell (como no aplicativo GUI do Terminal), finalize todos os gedit processos com killall gedit . Observe que você perderá qualquer trabalho não salvo em qualquer gedit janelas / guias.

  4. Execute killall gedit novamente para ver se funcionou na primeira vez. Se ele diz gedit: no process found , isso significa que você encerrou com sucesso gedit . Se isso não for dito, então gedit não responderá ao SIGTERM (a maneira "legal" de solicitar que um processo termine). Neste caso, termine com SIGKILL executando killall -KILL gedit . Ocasionalmente, um processo está em suspensão ininterrupta, o que significa que ele está aguardando uma operação de E / S do kernel e não pode ser terminado dessa maneira. Para verificar isso, execute killall -KILL gedit novamente.

  5. Pressione Ctrl + Alt + F7 para voltar para a GUI, que agora deve estar totalmente funcional.

Supondo que a GUI é totalmente funcional, o problema está na interação entre gedit e algum componente da GUI - pode ser o próprio X11, ou pode ser o seu gerenciador de janelas (que pode ser compiz , metacity , openbox ou outra coisa, dependendo de qual interface gráfica você usa). Isso pode ser devido a um bug no gedit ou no gerenciador de janelas (ou X11). Antes de relatar o bug, seria melhor investigar isso. Sean Davis 's conselho é bom. Você deve descobrir qual gerenciador de janelas você usa. Esta questão pode ajudá-lo com isso. Em versões recentes do Ubuntu, o 3D Unity usa compiz e o Unity 2D usa metacity . Você pode usar o comando ps e grep para ver se um processo está em execução, se souber seu nome. Por exemplo, você pode usar ps x | grep compiz para ver se está executando compiz ou ps x | grep metacity para ver se está executando a meta. Como diz Sean Davis, se você estiver executando o Unity, experimente o Unity 2D (ou seja, clique no ícone de roda dentada na tela de login e selecione Ubuntu 2D ) e veja se o problema ainda ocorre.

Iniciando o processo de geração de relatórios de erros

Depois de coletar essas informações, vá em frente e informe o bug. Uma falha é quando um programa termina de forma anormal. Esse bug não é um travamento, portanto não haverá arquivo .crash e o Apport não poderá ser executado automaticamente para coletar dados. Mas você ainda pode usar o Apport para coletar alguns dados relevantes para relatar o bug. Existem duas maneiras razoáveis de fazer isso.

Uma opção é executar ubuntu-bug , passando um nome de pacote como argumento. Isso reunirá dados sobre a maneira como o pacote é instalado e configurado em seu sistema e o anexará ao seu relatório de erros. Você deve especificar o pacote que provavelmente está causando o problema.Se o problema ocorrer no 3D Unity (tipo de sessão "Ubuntu"), mas não no Unity 2D (tipo de sessão "Ubuntu 2D"), então provavelmente é em compiz , então execute ubuntu-bug compiz . (Da mesma forma, se o problema ocorrer apenas com o Unity 2D, você poderá executar ubuntu-bug metacity .) Caso contrário, vá em frente e relate-o contra gedit com ubuntu-bug gedit .

A execução de ubuntu-bug compiz inclui muitas informações sobre compiz , mas ubuntu-bug gedit inclui menos informações sobre gedit . Portanto, se você acha que o bug está em gedit e está disposto a ir além, convém chamar o Apport enquanto gedit estiver realmente em execução, para incluir informações sobre o processo gedit em execução. Como sua GUI não funciona quando o bug está acontecendo, você teria que fazer isso no console virtual, entre as etapas 2 e 3 acima. Veja como:

  1. Reproduza o bug arrastando uma guia de uma janela gedit para outra.

  2. Execute as etapas 1 e 2 nas instruções acima.

  3. Determine o ID do processo de execução do processo gedit executando o comando pidof gedit . Isso fornecerá um número, o PID do processo gedit em execução.

  4. Digite script e pressione Enter. Isso registra todo o texto no console.

  5. Execute apport-cli $PID , mas substitua $PID pelo ID do processo de edição em execução, conforme determinado na etapa 3.

  6. Forneça qualquer informação que o Apport solicite na linha de comando. Você deve obter um URL. Será longo e de aparência aleatória e, portanto, muito difícil de lembrar. É por isso que você executou script para gravar tudo.

  7. Execute exit (para sair de script ).

  8. Mate gedit e volte para a GUI executando as etapas 3, 4 e 5 nas instruções acima.

  9. script criou um arquivo chamado typescript , localizado em seu diretório pessoal. Encontre este arquivo e abra-o com gedit ou outro editor de texto. Copie o URL dele e abra-o no seu navegador da Web.

  10. Você terá a oportunidade de escrever um relatório de erros no seu navegador da Web.

Escrevendo e enviando seu relatório de erros

No entanto, ao reportar o bug, você estará escrevendo um relatório no seu navegador da web e enviando-o. O relatório deve ser o mais detalhado possível. Ele deve descrever como produzir o bug, a versão do pacote para gedit e qualquer pacote que forneça seu gerenciador de janelas (por exemplo, compiz ou metacity ) e uma explicação de quais condições são necessárias para o erro ocorrer exemplo, ocorre em todas as interfaces, ou apenas Unity 3D, ou qualquer outra coisa).

Antes de enviar seu relatório de bug, você deve ler com atenção esta página se ainda não o fez.

Depois de enviar o seu relatório de erros, é aconselhável adicionar quaisquer pacotes adicionais que você acha que possam ser afetados. Normalmente, fica claro qual pacote é afetado por um bug, mas, neste caso, não está completamente claro. Mesmo que o problema ocorra com compiz e não metacity , ainda pode haver um problema em gedit contribuindo para o bug.

Se você reportou o bug contra compiz (ou metacity ou algum outro gerenciador de janelas), você pode adicionar o pacote gedit como afetado. Se você reportou isto contra o pacote gedit porque você foi capaz de produzir o bug com pelo menos dois gerenciadores de janela diferentes, então você não deve adicionar nenhum gerenciador de janelas como afetado (a menos que haja algum gerenciador de janelas com o qual você tenha encontrado o bug não ocorre). Em vez disso, você pode adicionar o pacote xorg .

Para adicionar outro pacote além daquele contra o qual você reportou inicialmente o bug, vá para a página de bug no Launchpad (se você ainda não estiver lá) e clique em Also affects distribution . Especifique Ubuntu como a distribuição (já que você está dizendo que afeta outro pacote no Ubuntu ). Em seguida, especifique o nome do pacote adicional que você acha que pode ser afetado, como o nome do pacote.

Com mais de um pacote listado para o bug, é provável (embora não certo) que todos, exceto um, sejam considerados incorretos e marcados como Invalid. Isso está ok. Mas reportando o bug contra todos os pacotes que parecem ser afetados, você está dando aos triadores de bugs e desenvolvedores para aqueles pacotes a oportunidade de rever seu bug e determinar se eles acham que está afetando o pacote deles. (Mas eu enfatizo que geralmente você não deve fazer isso, porque geralmente é possível descobrir, talvez com ajuda da comunidade, em qual pacote está um bug antes de reportá-lo.)

    
por Eliah Kagan 09.05.2012 / 18:16
0

Qual ambiente você está usando? Pode estar relacionado ao compositor se você estiver usando o Unity ou o Gnome Shell. Tente usar o Unity 2D e veja se o mesmo problema acontece.

    
por Sean Davis 09.05.2012 / 17:21

Tags