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

Reply via email to