Merge pull request #7647

d7b74a4 Tests: Fix test node_server.bind_same_p2p_port from randomly crashing (mj-xmr)
remotes/1691602464505633909/tmp_refs/heads/wonerujo-v0.10.1
luigi1111 3 years ago
commit f6e63ef260
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

@ -294,6 +294,18 @@ TEST(node_server, bind_same_p2p_port)
boost::program_options::variables_map vm;
boost::program_options::store(boost::program_options::parse_command_line(1, argv, desc_options), vm);
/*
Reason for choosing '127.0.0.2' as the IP:
A TCP local socket address that has been bound is unavailable for some time after closing, unless the SO_REUSEADDR flag has been set.
That's why connections with automatically assigned source port 48080/58080 from previous test blocks the next to bind acceptor
so solution is to either set reuse_addr option for each socket in all tests
or use ip different from localhost for acceptors in order to not interfere with automatically assigned source endpoints
Relevant part about REUSEADDR from man:
https://www.man7.org/linux/man-pages/man7/ip.7.html
*/
vm.find(nodetool::arg_p2p_bind_ip.name)->second = boost::program_options::variable_value(std::string("127.0.0.2"), false);
vm.find(nodetool::arg_p2p_bind_port.name)->second = boost::program_options::variable_value(std::string(port), false);
boost::program_options::notify(vm);

Loading…
Cancel
Save