"Cagadas" homéricas (ou YA-meme?)

Durante toda a minha carreira “computeira” eu cometi alguns erros absurdos (cagadas?) que eu gostaria de compartilhar com vocês neste post.

Vou listá-las aqui na esperança de que outros façam o mesmo e que, com isso, o meu sentimento de culpa por tamanhas “obras” fique menor.

killall foobar

Certo dia, quando trabalhava na GVT, eu estava numa sessão telnet em um servidor de produção PA-RISC que rodava um HP-UX. Estava logado como root e precisava matar alguns processos que estavam prejudicando o funcionamento da máquina (consumindo CPU, memória, load alto, etc).

Meu conhecimento de Unix até aquele momento era de ter mexido muito com Linux ao ponto de saber usar com maestria o comando killall. Foi então o que eu usei para matar tais processos.

Assim que eu apertei “enter” surgiu uma mensagem de que o servidor iria se desligar em X segundos. Entrei em pânico.

Pois bem… apesar de ser um ‘fera de killall’ eu nunca tinha lido o trecho da manpage deste comando que dizia (no Linux):

Be warned that typing killall name may not have
the desired effect on non-Linux systems, especially
when done by a privileged user.

O que aconteceu? O killall do HP-UX envia um sinal para todos os processos da máquina e é usado pelo comando shutdown para matar todos os processos em execução.

Foi assim que eu desliguei, pela primeira vez, um servidor em produção de uma grande empresa de telefonia praticamente parei as vendas da empresa por pelo menos 1 hora (uma máquina dessas leva cerca de 20 minutos para voltar pro ar + acertos de configuração perdidos por causa do reboot).

delete from tabelao;

Mais uma vez na GVT… coitados…

Eu estava desenvolvendo um programinha que fazia acesso ao banco de dados Oracle e para isso eu constantemente testava algumas queries, inserts e deletes nas tabelas de um banco de dados que ficava no ambiente de desenvolvimento da empresa.

Nos bancos de dados do ambiente de desenvolvimento a gente encontrava um subconjunto dos dados do ambiente de produção e podíamos manipulá-los com tranquilidade porque uma vez por dia/semana as bases eram repopuladas com dados oriundos do ambiente de produção.

Em certo momento eu precisava deletar todos os registros de uma tabela (cerca de 50 registros) da base de dados do ambiente de desenvolvimento e rodei um:

delete from tabela;

Fiz os testes que precisava fazer sem rodar um commit e no final fiz um rollback.

Neste intervalo de tempo ocorreu um problema que exigiu minha atenção em um dos servidores de produção e esse servidor era justamente o servidor ‘equivalente’ ao de desenvolvimento onde eu estava trabalhando. Resolvi o problema do servidor rapidamente e voltei para o desenvolvimento.

Aí é que está o problema… o meu cérebro trocou de servidor mas meus dedos não e no fim eu rodei um delete from tabela; no servidor de produção da empresa 😀

O estrago teria sido pequeno se tal tabela não tivesse centenas de milhares de registros fazendo com que o Oracle praticamente parasse de responder à requisições até que ocorresse uma falha de “estouro de segmento de rollback” (falha que demorou pra acontecer porque as configurações do Oracle eram muito ‘generosas’).

Seria muito difícil acontecer do estrago ser grande. Para que isso ocorresse a falha que ocorreu não poderia acontecer e depois do delete eu ainda precisaria dar um commit.

Se isso tivesse acontecido eu teria mudado de profissão 🙂

/home/osvaldo/icons

Essa foi no meu “início de carreira” com Linux. Eu trabalhava na Conectiva (atual Mandriva) e fiquei responsável por criar um sistema de “temas” para o Conectiva Linux 5.

Os temas deveriam funcionar igualmente no Gnome, KDE e no WindowMaker que, até então, era o WM que eu usava.

Fiz os pacotes, scripts, configurações e enviei para a máquina de integração (mapi). Dei essa tarefa como terminada e passei para as próximas.

Lançado o Conectiva 5 o sistema “explodiu” nas máquinas dos usuários e o sistema de temas não funcionava como deveria em todas as máquinas que usavam o WindowMaker .

Ao analisar o problema vi que no arquivo de configuração do WindowMaker tinha um “/home/osvaldo” no caminho de busca de imagens e ícones que causava a ‘quebra’.

Resultado: as coisas funcionavam perfeitamente na minha máquina e em todas as outras máquinas do mundo que tivessem um usuário “osvaldo”.

Esse foi um bug entre os vários desse sistema de temas que criei e que futuramente (por razões óbvias) foi abandonado.

Se você ainda tem um Conectiva 5 para instalar por aí faça o teste. 😀

Off-topic

Alguns, talvez, ainda não saibam mas eu vivi um período em que queria largar da área de informática e virar publicitário (ok, eu era jovem).

Neste período “publicitário” da minha vida eu trabalhei em uma agência de propaganda chamada DLMRozani e lá nós fazíamos toda a mídia local das várias Lojas Americanas do país (a conta nacional era da agência Talent).

A mídia local inclui anúncios televisivos (para as afiliadas locais), anúncios em jornais locais e aqueles folhetinhos de ofertas que todos já devem ter visto.

Num desses folhetos onde anunciamos carne de 1ª à R$3,90/kg quando o preço correto era algo como R$13,90/kg (não lembro detalhes da oferta).

A sorte que era uma dessas “ofertas relâmpago” (válidas por 1 hora), mas o fato é que vendemos 400kg de carne em 1 hora. Filas se formaram em volta do quarteirão das Lojas Americanas e caminhões não paravam de chegar trazendo carne para ser vendida (aquele blablabla de “enquanto durarem os estoques” não tem muito amparo legal pelo código de consumidor).

Só para contextualizar: nesta época as Lojas Americanas tinham lojas que funcionavam como supermercado em várias cidades do Brasil. Essa operação foi vendida posteriormente para um grupo francês chamado Stoc.

Finalizando

Se eu lembrar de mais algumas “cagadas” eu volto a atualizar esse post mas acho que essas foram as maiores.

E vocês? Fizeram alguma dessas já?

Publicado por

Osvaldo Santana

Desenvolvedor Python e Django, Empreendedor, dono de uma motocicleta esportiva, hobbysta de eletrônica, fã de automobilismo e corinthiano

  • Acho que minha maior cagada foi uma vez quando eu tinha que copiar um banco Xapian entre duas maquinas e eu tinha muito pouca experiencia em Linux (nem conhecia o scp), dai eu fui na maquina 1 e removi o banco (!!) dai eu fui na maquina 2 pra copiar pra 1, so que antes, eu tinha que copiar o banco pra pasta de backup, ai eu executei um “rm -R *”, e quando fui copiar o banco de producao pra backup pra depois entao copiar pra maquina 1, cade o banco de producao?? Foi entao que um `pwd` mostrou o problema, eu apaguei a base de producao, e nao o backup.

    O bom é que levava “só” 2 horas pra regenerar o banco do zero 😛

  • Michael

    Esses dia aconteu pra mim uma cagada que até hoje me sacaneiammm na empresa.

    UPDATE USUARIOS SET SENHA = ‘WHATEVER’

    sem colocar WHERE fudeu.

  • Pingback: A Idéia mais Estúpida da Computação « Suspensão de Descrença()

  • Joao

    Camarada , como todo mundo eu já fiz muitas cagadas e lembrando de um fluxograma famoso na area de ti , eu consegui consertar sem ninguem notar ou o pepino foi imputado a outra pessoa

  • Olha Osvaldo, quem nunca cometeu cagadas na nossa área….que atire a primeira pedra.

    Eu deletei alguns dados no Servidor de Produção da V.VO(aquela mesma de telefonia), mas consegui me salvar nos 45 min do Segundo tempo.

  • Este bug do conectiva eu me recordo, pois tenho em casa até hoje o cd duplo, que na capa tem algumas crianças jogando dominó, qualquer dia desses instalo so para ver aovivo está “inconsistência”!

    []s

  • Na época que iniciei na informática tinha um curso de DOS em disquete, eu li para que servia o comando format mas não entendi nada, então pensei “Nada melhor do que ver na prática” e executei format c: …Depois disso por motivos óbvios o sistema não subia mais, até hoje eu nego que tenha feito algo 😛

  • Viche… já fiz DELETE sem WHERE, perdi meu HD testando um programinha destrutivo, perdi o conteúdo do HD inúmeras vezes fazendo particionamento na base da confiança (sem backup) e outras coisas que não lembro.

  • Daniel Vainsencher

    Osvaldo, pelo amor de Deus tire este post do ar 🙂

  • Oi Daniel,

    Porque? Pelo carater escatológico do título ou porque isso depõe contra minha pessoa? 😀

  • Luís

    Osvaldo,

    A sua cagada do Killall no HP-UX, já me ajudou aqui um uma máquina a rular Oracle que não queria desligar nem por nada….Antes de lhe tirar o cabo de energia, fui ao google, vi o seu post, executei o comando e a máquina lá foi abaixo sem danos maiores!! 🙂 Valeu!!

  • Murilo Esplugues

    Cara, vc não incluiu: perder a senha do grupo python… e ter de pedir pra todo mundo se cadastrar novamente 😉

    lol

  • Oi Murilo,

    Essa eu não coloquei porque não fui eu quem perdeu a senha 🙂

    Ao pedir pra que todos se recadastrassem na lista eu estava ‘consertando’ a cagada de outro 🙂

  • Fernando Brito

    Ahahaha, muito bom!
    Mostrar publicamente os seus próprios erros requer uma coragem digna de admiração 🙂

  • Hoje eu fiz mais uma:

    Estava eu administrando um servidor remoto, em outra cidade, quando fui trocar o IP de uma das interfaces de rede. Esse servidor roda, sozinho, todos os sites de um grande grupo de mídia do país (jornal, rádio, tv, etc).

    Essa interface de rede (eth1) receberia um novo IP na rede interna do datacenter contratado para hospedar esse servidor. A outra interface de rede (eth0) tem um IP público por onde chega o link “da rua” e por onde eu estava me conectando via ssh aqui de Curitiba.

    Arquivo configurado agora é só baixar a interface de rede (ifdown) pra depois levantar com a nova configuração.

    O problema é que eu digitei, acidentalmente, ‘ifdown eth0’ e não ‘ifdown eth1’.

    Quando eu bati no “enter” o ssh, obviamente, já “pendurou” e aí eu já pensei .oO( fiz m*rda! ).

    Quando li o comando eu quase comecei a chorar. Perdi uma tarde inteira tentando convencer o hosting consertar o problema pra mim mas eles são de uma incompetência impar e só trabalham em ‘horário comercial’ (aka “só amanhã”). Enquanto isso: sites fora do ar.

    Pouco antes de começar a chorar de desespero eu me dei conta que havíamos mandado cancelar o contrato de um segundo servidor com eles e que, graças à tal incompetência, eles ainda não tinham desligado a máquina…

    Pensei: .oO( humm… eu baixei a interface de rede externa mas não a interna! )

    Conectei no segundo servidor (que ainda estava ligado), fiz uma ‘ponte’ para o servidor principal através da rede interna e pimba! Problema corrigido 😀

    Lição aprendida: preste atenção no ifdown! 😀

  • Bonifacio Segundo

    Meu chefe uma vez contou uma história do tempo que ele era um mero funcionário da empresa. Ele estava vendo um problema num cliente enquanto soltou um:
    -Ops…
    -O que houve?
    -Apaguei o banco do cliente.
    -Sorte sua que tem o backup. – um colega disse.
    -…
    -…
    -Ops.
    -O que foi?
    -Apaguei o backup.

    Hoje ele conta a história morrendo de rir. Mas imagino como ele se sentiu na hora que fez essas cacas.