The issue was discovered due to our strict firewall settings blocking all traffic from DNS Seeders.
OS: OSX 10.13.2 reproduced on Ubuntu 16.04, 17.04
Git branch: master (0.15.99)
Expected behaviour: nodes are failing to receive addresses from DNS seeders, upgraded ones are expected to connect to cached addresses from peers.dat, new ones should fall back to the hard coded seeds. In reality, addresses are reported to be loaded but no connection attempt is made.
2018-01-16 06:22:33 Adding fixed seed nodes as DNS doesn't seem to be available. 2018-01-16 06:22:33 Added 1450 addresses from cgd63h25kfci3gdl.internal: 0 tried, 1053 new
Manually adding live nodes through console or bitcoin.conf will cause a connection to be established.
We were able to reproduce the issue on an open network (no firewall at all) by removing all DNS seeders from chainparams.cpp and there for forcing the node to look after peers.dat and hard coded seeds. Code compiled that way is not establishing a single connection, even it is writing the hard coded nodes to peers.dat
2018-01-16 06:44:08 Flushed 1053 addresses to peers.dat 31ms
We have double-checked by applying the same change to the 0.13 branch where it is working as expected, no DNS available and there for falling back to chainparamsseeds.h and establishing connections.