venerdì 26 dicembre 2008

Quei bug che non ha neppure Windows

Talvolta, un'operazione banale come scollegare il cavo ethernet dal Mac OS X gli "spegne" l'hardware della porta ethernet (un inm stranissimo che impedisce la trasmissione dei pacchetti).

Questo bug di Mac OS X mi ha tormentato fin dal 2005: non c'era altra alternativa che il reboot.

Proprio oggi credo di aver trovato un trucchetto macchinoso per evitare il reboot.

Quando si presenta il problema, compare nel dmesg una riga con un improbabile errore "in_delmulti": da quel momento, sebbene il cavo ethernet sia collegato, il traffico ethernet si perde nel nulla:

UniNEnet::monitorLinkStatus - Link is down.
UniNEnet::monitorLinkStatus - Link is up at 100 Mbps - Full Duplex
in_delmulti - ignorning invalid inm (0x656e0040)

A questo punto l'unico modo per uscirne (ad eccezione del riavvio completo) è:

1) diventare superuser con sudo bash
2) a cavetto ethernet ancora attaccato, dare il comando ifconfig en0 down
3) aspettare una decina di secondi che Mac OS X lo capisca (incredibile ma vero)
4) sganciare il cavetto ethernet
5) aspettare un minuto intero che scada qualche timeout del kernel di OS X
6) riagganciare il cavetto ethernet
7) dare il comando ifconfig en0 up ; dmesg
8) osservare come incredibilmente il dmesg riporti che invece la en0 è andata "down"
9) ripetere il comando dmesg: entro alcuni secondi apparirà che il link è di nuovo "up"
10) incrociare le dita e fare ping verso una macchina conosciuta; se invece nel dmesg è comparso l'errore "in_delmulti", aspettare trenta secondi e ripetere daccapo l'intera procedura

Complimenti per questo bug del driver ethernet di Mac OS X, che persiste fin dai tempi del Panther 10.3.8 e si verifica tuttora sul Tiger 10.4.11 (non ho upgradato a Leopard perché non voglio avere un computer più lento).

1 commento:

  1. E pensare che basterebbe un cavo buono.
    PS: Non sono un nuovo visitatore, non illuderti.
    :-D

    RispondiElimina