Open-code eventlet.listen()
Recently out gate started blowing up intermittently with a strange case of ports mixed up. Sometimes a functional tests tries to authorize on a port that's clearly an object server port, and the like. As it turns out, eventlet developers added an unavoidable SO_REUSEPORT into listen(), which makes listen(("localhost",0) to reuse ports. There's an issue about it: https://github.com/eventlet/eventlet/issues/411 This patch is working around the problem while eventlet people consider the issue. Change-Id: I67522909f96495a6a30e1acdb79835dce2189549
This commit is contained in:
@ -27,7 +27,7 @@ from tempfile import mkdtemp
|
||||
import time
|
||||
|
||||
|
||||
from eventlet import listen, spawn, wsgi
|
||||
from eventlet import spawn, wsgi
|
||||
import mock
|
||||
from shutil import rmtree
|
||||
import six.moves.cPickle as pickle
|
||||
@ -45,6 +45,7 @@ from swift.obj import server as object_server
|
||||
from swift.proxy import server as proxy_server
|
||||
import swift.proxy.controllers.obj
|
||||
|
||||
from test import listen_zero
|
||||
from test.unit import write_fake_ring, DEFAULT_TEST_EC_TYPE, debug_logger, \
|
||||
connect_tcp, readuntil2crlfs
|
||||
|
||||
@ -93,17 +94,17 @@ def setup_servers(the_object_server=object_server, extra_conf=None):
|
||||
'allow_versions': 't'}
|
||||
if extra_conf:
|
||||
conf.update(extra_conf)
|
||||
prolis = listen(('localhost', 0))
|
||||
acc1lis = listen(('localhost', 0))
|
||||
acc2lis = listen(('localhost', 0))
|
||||
con1lis = listen(('localhost', 0))
|
||||
con2lis = listen(('localhost', 0))
|
||||
obj1lis = listen(('localhost', 0))
|
||||
obj2lis = listen(('localhost', 0))
|
||||
obj3lis = listen(('localhost', 0))
|
||||
obj4lis = listen(('localhost', 0))
|
||||
obj5lis = listen(('localhost', 0))
|
||||
obj6lis = listen(('localhost', 0))
|
||||
prolis = listen_zero()
|
||||
acc1lis = listen_zero()
|
||||
acc2lis = listen_zero()
|
||||
con1lis = listen_zero()
|
||||
con2lis = listen_zero()
|
||||
obj1lis = listen_zero()
|
||||
obj2lis = listen_zero()
|
||||
obj3lis = listen_zero()
|
||||
obj4lis = listen_zero()
|
||||
obj5lis = listen_zero()
|
||||
obj6lis = listen_zero()
|
||||
objsocks = [obj1lis, obj2lis, obj3lis, obj4lis, obj5lis, obj6lis]
|
||||
context["test_sockets"] = \
|
||||
(prolis, acc1lis, acc2lis, con1lis, con2lis, obj1lis, obj2lis, obj3lis,
|
||||
|
Reference in New Issue
Block a user