Justin Erenkrantz <jus...@erenkrantz.com> writes: > Of note, I did run into the EADDRINUSE issue on the context checks when > running test_all. I added some debug lines to confirm that's what's going > on, but it does eventually complete in about 10 minutes. FWIW, at least on > my Ubuntu install, putting in REUSEADDR as a socket opt seems to be > fine...so, maybe we don't need to remove it everywhere? But, this > shouldn't block a release.
I tend to think that enabling SO_REUSEADDR is a hack that we should probably avoid re-introducing (even for some platforms), because it opens a possibility of improper reuse/connecting to a wrong server, and can possibly result in rarely occurring test failures that are hard to diagnose. On trunk we have a better solution for the EADDRINUSE issue where the test server just picks the next available port. Ideally, we'd want the same to happen on the 1.3.x branch as well, but for 1.3.x that would mean rewriting almost all of the tests, because they use the hardcoded port number. When I committed r1909311, I considered the option of rewriting the tests, but preferred to add a retry loop instead — because, as far as I know, the only issue with the retry loop is that the tests now run longer on some platforms, whereas having to change all tests in the stable branch seemed to be a quite destabilizing change. (In case anyone stumbles across this discussion, more details are available in the commit message for https://svn.apache.org/r1909311) Thanks, Evgeny Kotkov