La sfiga ci vede benissimo

Questa mattina il blog è stato offline fino dopo l’una ed è doverosa una spiegazione.

Ieri ho vinto per oggi un viaggio andata e ritorno in Francia da un cliente per una serie di riunioni di pianificazione. No, non è un modo per nascondere un pranzo di Natale, a pranzo ho mangiato una baguette au jambon mentre tornavo a piedi in ufficio dal Carrefour dove avevo fatto razzia di formaggi.

Stamattina mi sono svegliato alle 04:30 e ho trovato la VM su cui è ospitato il sito irraggiungibile. Ho aperto un ticket e sono saltato in macchina per andare dal cliente.

Il fornitore ha risolto il problema poche ore dopo, ma c’è un “ma”.

Fino all’una non mi sono potuto collegare in Rete ed è stato lì che ho scoperto il problema: quando un server va giù male rimangono i socket nel file system (stale socket). Le ultime versioni di MySQL di CentOS sembra che abbiano dei problemi con gli stale socket: quando MySQL riparte dopo un crash non ripulisce lo stale socket e tutti i processi che usano quel metodo di comunicazione vedono il database server KO.

Ecco spiegato il down di questa mattina, purtroppo la sfiga ha visto che questa mattina ero AFK e ha colpito con precisione chirurgica.

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

3 pensieri riguardo “La sfiga ci vede benissimo”

  1. Luigi sei in buona compagnia: mi è successa la stessa cosa esattamente lo stesso giorno.
    Server ripartito, ma MySQL fermo che non si riparte con messaggio “socket already binded”.
    Rimosso il relativo file e riavviato il servizio senza problemi.
    In passato con le versioni precedenti non ho mai avuto problemi. Ora dal tuo articolo apprendo che è un problema di MySQL.
    Buono a sapersi…

    1. Per ora ho messo una pezza aggiungendo queste righe a /etc/rc.d/rc.local

      service mysqld stop
      rm -f /var/lib/mysql/mysql.sock
      service mysqld start

      Ma non e’ una bella cosa. Ho scritto sulla ML di CentOS, ma credo sia un baco introdotto dall’upstream

      1. Il trucco ha appena funzionato perche’ l’hardware sottostante della VM e’ appena stato KO per un paio d’ore e la VM ha rebootato avviando MySQl da solo con lo script nel rc.local

Spazio per un commento