Comment 18 for bug 1586528

Revision history for this message
Steve Chadsey (schadsey) wrote :

This issue is not limited to Realtek as it occurs on my system with an Intel ethernet controller (see https://bugs.launchpad.net/ubuntu/+source/avahi/+bug/1586528/comments/9).

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
 DeviceName: Onboard LAN
 Subsystem: ASUSTeK Computer Inc. Ethernet Connection (2) I218-V
 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
 Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 Latency: 0
 Interrupt: pin A routed to IRQ 28
 Region 0: Memory at dfd00000 (32-bit, non-prefetchable) [size=128K]
 Region 1: Memory at dfd3c000 (32-bit, non-prefetchable) [size=4K]
 Region 2: I/O ports at f080 [size=32]
 Capabilities: <access denied>
 Kernel driver in use: e1000e
 Kernel modules: e1000e

I don't have a workaround but the following is what I use to help recover. It pings my gateway periodically, and if it can't it attempts to restart networking.

In /etc/crontab:

# check networking
*/10 * * * * root /usr/local/bin/check_reset_network.sh >> /var/log/check_reset_network.log

/usr/local/bin/check_reset_network.sh:

---[start]-----
#!/bin/bash

echo "`date` $0 starting"

gw=192.168.1.254

echo "Trying to ping gw $gw"
out=$(ping -c 5 $gw 2>&1)

if [ $? -eq 0 ]; then
  echo "Success"
else
  echo "Failed to ping gw $gw"
  echo "Trying again in 20s"

  sleep 20

  out=$(ping -c 5 $gw 2>&1)

  if [ $? -ne 0 ]; then
    echo "Failed to ping gw $gw"
    echo "Restarting networking"

    sudo service network-manager restart

    echo "Waiting 20s to recheck network"
    sleep 20

    out=$(ping -c 5 $gw 2>&1)

    if [ $? -eq 0 ]; then
      echo "Success; sending mail"
      echo "Restarted networking" | mail your_email_addr
    else
      echo "Failed. You're fucked."
    fi
  fi
fi

echo "Checking for default route"

out=$(/sbin/ip route | egrep '^default')
if [ $? -eq 0 ]; then
  echo "Success"
else
  echo "Failed to find default route. Adding it."
  /sbin/route add default gw 192.168.1.254

  if [ $? -eq 0 ]; then
    echo "Success; sending mail"
    echo "Added default route" | mail your_email_addr
  else
      echo "Failed. You're fucked."
  fi
fi

echo "`date` $0 done"
---[end]-----