Menu Close

Pequenos erros, grandes fracassos.

Recentemente o Playstation App no iOS recebeu uma atualização quer permite acessar o Remote Play do PS4, eu tenho o Playstation Remote Play.apk instalado nos Android root e gosto do recurso. Alguém comentou que a versão atual do Android não precisa mais root e não precisa mais ser hacked Sony Xperia, que a app funcionava em qualquer android.

Curioso pensei em instalar em um Asus Tinkerboad com Android root que tenho em casa mas por pura preguiça peguei um Amazon Fire Stick 4K que estava na minha mesa, “é tudo Android e não precisa de root” e tentei instalar nele… Sabe quando algum ALARME na sua mente berra claramente NÃO FAÇA ISSO?

Eu não só tentei instalar como primeiro instalei todo o pacote Google Services, Google Store, Google Framework, Google Login… Um fracasso imenso.

1o Fracasso: Amazon Fire Stick 4K tornou-se um tijolo.
= Aprendizado: Prestar mais atenção nos instintos, lembrava que não podia instalar nada disso no Amazon Stick e só prossegui com a instalação por preguiça mental.
= Tempo Desperdiçado: 15 minutos copiando e instalando os arquivos.

Depois dos problemas com o inoReader do dia 1o de Março e da migração para o Tiny Tiny RSS (aka tt-rss), o meu servidor pessoal caseiro demonstrou que não tem capacidade para rodar Docker + Postgresql + TT-RSS, o Docker falhava com frequencia, a CPU do NAS travava no 100% por qualquer motivo, não era uma solução estável para longo prazo…

Decidi tentar fazer o servidor TT-RSS funcionar no AWS, inicialmente funcionou muito bem, navegação respondendo rápido, atualizando os feeds com freqüencia, fui adicionando mais recursos: Capturar páginas inteiras, peguar fotos/imagens dos artigos, converter links de youtube para direct-videos, adicionar novos feeds (acho que minha lista de feeds está em 600 e poucos atualmente).

Até que travou tudo, travou tt-rss, travou PHP, travou DFX.lv, travou Remote Desktop, a instância no servidor AWS ficou incomunicável!

Entre as várias tentativas de fazer o servidor voltar a se comunicar acabei clicando em STOP / START na instância do AWS EC2… Eu não sabia mas isso é uma péssima idéia, quando cliquei em START o servidor iniciou em nova instância completamente diferente com um novo IP…

Pode não parecer grande coisa, mas quando você tem 1 servidor para vários domínios diferentes é um trabalho ingrato ter de manualmente corrigir e atualizar todas as entradas de DNS para o novo IP.

2o Fracasso: Desligar / Ligar a instância do servidor no AWS EC2
= Aprendizado : Nunca mais repetir essa asneira
= Tempo desperdiçado: 16 horas com o site offline, resintalação da atualização 1809 do Windows, correção das entradas de DNS, editação das configs no TT-RSS.

Assim que o site voltou ao ar os problemas não terminaram, o desempenho continuava insuportavelmente lerdo, o PHP-CGI FastCGI estava consumindo 100% da CPU o tempo todo, era basicamente impossível navegar nas páginas do site muitas vezes desconectando o navegador com lentidões que passavam 1 minuto de espera. Não havia nada no PHP-Errors.LOG, nada que demonstrasse um erro real de aplicativos ou banco de dados e nenhuma forma de debug, algo estava consumindo o PHP de forma massiva e eu não conseguia identificar o problema.

Depois de horas de trabalho e manutenção, atualizei o PHP para a versão 7.3.3 e aparentemente agora as coisas estão estáveis e mais leves. Aparentemente o problema não era do site, mas descobri nos logs do IIS que um bot (Yandex) decidiu inundar o site abrindo quase todas as páginas do site ao mesmo tempo e quando falhava tentava novamente, foi quase um DDOS para quem tem um server T2.Micro Free Tier (1 Core 2.4Ghz e 1GB Ram) na Amazon AWS.

3o Fracasso: Perder horas tentando fazer debug do PHP-CGI por um problema relativamente externo.
= Aprendizado : Checar os logs do IIS e outros processos mesmo quando o problema ocorre em um processo específico. Se o PHP=CGI acionar e decidir trabalhar sozinho, não há nenhuma forma de identificar o que ele está processando.
= Tempo desperdiçado : 8 horas.

Comments are welcome.

Similar

%d bloggers like this: