dnsimple / erldns

DNS server, in Erlang.
MIT License
398 stars 98 forks source link

erldns boots without any open ports if first address in configuration is not availbile on the machine #74

Open onlyhavecans opened 6 years ago

onlyhavecans commented 6 years ago

We recently saw an issue where the configured IP isn't available and instead of continuing past this and initializing the other IPs and Ports or not booting at all it skips all this and comes up with no opened ports. This was also not written to the crash log. we captured this error in bugsnag in the info.log

2018-04-04 22:08:52.396 [info] <0.1019.0>@erldns_event_handler:handle_event:38 Starting the UDP and TCP supervisor
2018-04-04 22:08:52.396 [info] <0.1029.0>@erldns_udp_server:start:111 Starting UDP server for inet on address {1,1,1,1} and port 53 (sockopts: [{raw,1,15,<<1,0,0,0>>}])
2018-04-04 22:08:52.397 [info] <0.985.0>@bugsnag:process_trace:100 Processing trace [{erldns_udp_server,start,4,[{file,"src/erldns_udp_server.erl"},{line,112}]},{erldns_udp_server,init,1,[{file,"src/erldns_udp_server.erl"},{line,72}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,365}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,333}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]
2018-04-04 22:08:52.397 [info] <0.985.0>@bugsnag:deliver_payload:123 Sending exception: <<"{\"apiKey\":\"ourkey\",\"notifier\":{\"name\":\"Bugsnag Erlang\",\"version\":\"1.0.0\",\"url\":\"https://github.com/aeden/bugsnag-erlang\"},\"events\":[{\"payloadVersion\":\"2\",\"device\":{\"hostname\":\"host\"},\"app\":{\"releaseStage\":\"production\"},\"exceptions\":[{\"errorClass\":\"unknown\",\"message\":\"Supervisor erldns_server_sup had child undefined started with erldns_udp_server:start_link(udp_inet_anycast_4, inet, {1,1,1,1}, 53, [{raw,\\n                                                                             1,\\n                                                                             15,\\n                                                                             <<1,0,0,0>>}]) at undefined exit with reason no case clause matching {error,eaddrnotavail} in erldns_udp_server:start/4 in context start_error\",\"stacktrace\":[{\"file\":\"src/erldns_udp_server.erl\",\"lineNumber\":112,\"method\":\"start\"},{\"file\":\"src/erldns_udp_server.erl\",\"lineNumber\":72,\"method\":\"init\"},{\"file\":\"gen_server.erl\",\"lineNumber\":365,\"method\":\"init_it\"},{\"file\":\"gen_server.erl\",\"lineNumber\":333,\"method\":\"init_it\"},{\"file\":\"proc_lib.erl\",\"lineNumber\":247,\"method\":\"init_p_do_apply\"}]}]}]}">>
aeden commented 4 years ago

@onlyhavecans if you the ability to reproduce this locally, then we can tackle fixing it together.