Self-assigned IP address on loopback interface

This is a weird problem. It occurs on one of my three RPi 3s. Each is running Volumio 2.348. Two of them are connected via ethernet; the one which is exhibiting the odd behaviour is connected via Wifi. (All three use DHCP to obtain their IP address.)

Here’s the problem in a nutshell:

$ ip address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet 169.254.185.103/16 brd 169.254.255.255 scope global lo valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b8:27:eb:44:42:86 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:17:10:d3 brd ff:ff:ff:ff:ff:ff inet 192.168.0.14/24 brd 192.168.0.255 scope global wlan0 valid_lft forever preferred_lft forever

Notice the self-assigned IP address on the loopback interface. The other two Volumio installations behave as expected:

$ ip address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:5f:8b:e7 brd ff:ff:ff:ff:ff:ff inet 192.168.0.22/24 brd 192.168.0.255 scope global eth0 valid_lft forever preferred_lft forever 3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether b8:27:eb:5b:3e:b2 brd ff:ff:ff:ff:ff:ff

The reason why I care is that this bug prevents Songcast multi-room playback from functioning properly.

$ sudo lsof -i |grep sc2mpd sc2mpd 1150 upmpdcli 8u IPv4 21711 0t0 TCP 169.254.185.103:42311 (LISTEN) sc2mpd 1150 upmpdcli 11u IPv4 19735 0t0 UDP 239.255.255.250:51972 sc2mpd 1150 upmpdcli 14u IPv4 19737 0t0 UDP 169.254.185.103:36364 sc2mpd 1150 upmpdcli 17u IPv4 19739 0t0 UDP 169.254.185.103:49684

As a workaround, I’ve placed this:

echo "/bin/ip address del 169.254.185.103/16 dev lo" | /usr/bin/at now + 1 minute

which does the trick, but shouldn’t be necessary.