VOLTTRON / volttron

VOLTTRON Distributed Control System Platform
https://volttron.readthedocs.io/
Other
458 stars 216 forks source link

Intermittent failures of connection_test #1003

Closed jhaack closed 7 years ago

jhaack commented 7 years ago

Investigate intermittent failures of the connection test. One of the four builds seems to fail with this fairly regularly but not consistently.

==================================== ERRORS ==================================== _ ERROR at setup of test_can_connect_tocontrol[encrypted]

request = <SubRequest 'setup_control_connection' for <Function 'test_can_connect_to_control[encrypted]'>> get_volttron_instances = <function get_n_volttron_instances at 0x7fe3a22a8b90>

 @pytest.fixture(scope="module")  def setup_control_connection(request, get_volttron_instances):  """ Creates a single instance of VOLTTRON for testing purposes  """  global wrapper, control_connection    wrapper = get_volttron_instances(1)    request.addfinalizer(wrapper.shutdown_platform)    assert wrapper  assert wrapper.is_running()    if get_volttron_instances.param == 'encrypted':  if wrapper.encrypt:  wrapper.allow_all_connections()  # Connect using keys  ks = KeyStore()  ks.generate()    control_connection = build_connection(identity="foo",  address=wrapper.vip_address,  peer=CONTROL,  serverkey=wrapper.serverkey,  publickey=ks.public, > secretkey=ks.secret)

volttrontesting/platform/connection_test.py:34:


volttron/platform/vip/agent/utils.py:78: in build_connection  publickey=publickey, secretkey=secretkey, *_kwargs) volttron/platform/vip/agent/connection.py:134: in init  self.is_connected() volttron/platform/vip/agent/connection.py:182: in is_connected  return self.server.core.connected volttron/platform/vip/agent/connection.py:172: in server  if self.peer not in self._server.vip.peerlist().get(timeout=2): volttron/platform/vip/agent/subsystems/peerlist.py:85: in list  socket.send_vip(b'', b'peerlist', [b'list'], result.ident) volttron/platform/vip/socket.py:418: in send_vip  flags=flags|more, copy=copy, track=track) volttron/platform/vip/socket.py:392: in send_multipart  msg_parts, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:250: in send_multipart  msg = super(_Socket, self).send_multipart(_args, **kwargs) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/sugar/socket.py:366: in send_multipart  self.send(msg, SNDMORE|flags, copy=copy, track=track) volttron/platform/vip/socket.py:384: in send  frame, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:215: in send  self._wait_write() ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:137: in _wait_write  self.__writable.get(block=True) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:370: in get  self._wait_core(timeout, ()) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:95: in _wait_core  result = self.hub.switch()


self = <Hub at 0x7fe3a2325910 epoll default pending=0 ref=8 fileno=3>

 def switch(self):  switch_out = getattr(getcurrent(), 'switch_out', None)  if switch_out is not None:  switch_out() > return greenlet.switch(self) E Failed: Timeout >60s

../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/hub.py:609: Failed _ ERROR at setup of test_can_get_peers[encrypted] __

request = <SubRequest 'setup_control_connection' for <Function 'test_can_connect_to_control[encrypted]'>> get_volttron_instances = <function get_n_volttron_instances at 0x7fe3a22a8b90>

 @pytest.fixture(scope="module")  def setup_control_connection(request, get_volttron_instances):  """ Creates a single instance of VOLTTRON for testing purposes  """  global wrapper, control_connection    wrapper = get_volttron_instances(1)    request.addfinalizer(wrapper.shutdown_platform)    assert wrapper  assert wrapper.is_running()    if get_volttron_instances.param == 'encrypted':  if wrapper.encrypt:  wrapper.allow_all_connections()  # Connect using keys  ks = KeyStore()  ks.generate()    control_connection = build_connection(identity="foo",  address=wrapper.vip_address,  peer=CONTROL,  serverkey=wrapper.serverkey,  publickey=ks.public, > secretkey=ks.secret)

volttrontesting/platform/connection_test.py:34:


volttron/platform/vip/agent/utils.py:78: in build_connection  publickey=publickey, secretkey=secretkey, *_kwargs) volttron/platform/vip/agent/connection.py:134: in init  self.is_connected() volttron/platform/vip/agent/connection.py:182: in is_connected  return self.server.core.connected volttron/platform/vip/agent/connection.py:172: in server  if self.peer not in self._server.vip.peerlist().get(timeout=2): volttron/platform/vip/agent/subsystems/peerlist.py:85: in list  socket.send_vip(b'', b'peerlist', [b'list'], result.ident) volttron/platform/vip/socket.py:418: in send_vip  flags=flags|more, copy=copy, track=track) volttron/platform/vip/socket.py:392: in send_multipart  msg_parts, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:250: in send_multipart  msg = super(_Socket, self).send_multipart(_args, **kwargs) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/sugar/socket.py:366: in send_multipart  self.send(msg, SNDMORE|flags, copy=copy, track=track) volttron/platform/vip/socket.py:384: in send  frame, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:215: in send  self._wait_write() ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:137: in _wait_write  self.__writable.get(block=True) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:370: in get  self._wait_core(timeout, ()) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:95: in _wait_core  result = self.hub.switch()


self = <Hub at 0x7fe3a2325910 epoll default pending=0 ref=8 fileno=3>

 def switch(self):  switch_out = getattr(getcurrent(), 'switch_out', None)  if switch_out is not None:  switch_out() > return greenlet.switch(self) E Failed: Timeout >60s

../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/hub.py:609: Failed _ ERROR at setup of test_can_get_serverkey[encrypted] __

request = <SubRequest 'setup_control_connection' for <Function 'test_can_connect_to_control[encrypted]'>> get_volttron_instances = <function get_n_volttron_instances at 0x7fe3a22a8b90>

 @pytest.fixture(scope="module")  def setup_control_connection(request, get_volttron_instances):  """ Creates a single instance of VOLTTRON for testing purposes  """  global wrapper, control_connection    wrapper = get_volttron_instances(1)    request.addfinalizer(wrapper.shutdown_platform)    assert wrapper  assert wrapper.is_running()    if get_volttron_instances.param == 'encrypted':  if wrapper.encrypt:  wrapper.allow_all_connections()  # Connect using keys  ks = KeyStore()  ks.generate()    control_connection = build_connection(identity="foo",  address=wrapper.vip_address,  peer=CONTROL,  serverkey=wrapper.serverkey,  publickey=ks.public, > secretkey=ks.secret)

volttrontesting/platform/connection_test.py:34:


volttron/platform/vip/agent/utils.py:78: in build_connection  publickey=publickey, secretkey=secretkey, *_kwargs) volttron/platform/vip/agent/connection.py:134: in init  self.is_connected() volttron/platform/vip/agent/connection.py:182: in is_connected  return self.server.core.connected volttron/platform/vip/agent/connection.py:172: in server  if self.peer not in self._server.vip.peerlist().get(timeout=2): volttron/platform/vip/agent/subsystems/peerlist.py:85: in list  socket.send_vip(b'', b'peerlist', [b'list'], result.ident) volttron/platform/vip/socket.py:418: in send_vip  flags=flags|more, copy=copy, track=track) volttron/platform/vip/socket.py:392: in send_multipart  msg_parts, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:250: in send_multipart  msg = super(_Socket, self).send_multipart(_args, **kwargs) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/sugar/socket.py:366: in send_multipart  self.send(msg, SNDMORE|flags, copy=copy, track=track) volttron/platform/vip/socket.py:384: in send  frame, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:215: in send  self._wait_write() ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:137: in _wait_write  self.__writable.get(block=True) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:370: in get  self._wait_core(timeout, ()) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:95: in _wait_core  result = self.hub.switch()


self = <Hub at 0x7fe3a2325910 epoll default pending=0 ref=8 fileno=3>

 def switch(self):  switch_out = getattr(getcurrent(), 'switch_out', None)  if switch_out is not None:  switch_out() > return greenlet.switch(self) E Failed: Timeout >60s

../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/hub.py:609: Failed ____ ERROR at setup of test_can_call_rpc[encrypted] ____

request = <SubRequest 'setup_control_connection' for <Function 'test_can_connect_to_control[encrypted]'>> get_volttron_instances = <function get_n_volttron_instances at 0x7fe3a22a8b90>

 @pytest.fixture(scope="module")  def setup_control_connection(request, get_volttron_instances):  """ Creates a single instance of VOLTTRON for testing purposes  """  global wrapper, control_connection    wrapper = get_volttron_instances(1)    request.addfinalizer(wrapper.shutdown_platform)    assert wrapper  assert wrapper.is_running()    if get_volttron_instances.param == 'encrypted':  if wrapper.encrypt:  wrapper.allow_all_connections()  # Connect using keys  ks = KeyStore()  ks.generate()    control_connection = build_connection(identity="foo",  address=wrapper.vip_address,  peer=CONTROL,  serverkey=wrapper.serverkey,  publickey=ks.public, > secretkey=ks.secret)

volttrontesting/platform/connection_test.py:34:


volttron/platform/vip/agent/utils.py:78: in build_connection  publickey=publickey, secretkey=secretkey, *_kwargs) volttron/platform/vip/agent/connection.py:134: in init  self.is_connected() volttron/platform/vip/agent/connection.py:182: in is_connected  return self.server.core.connected volttron/platform/vip/agent/connection.py:172: in server  if self.peer not in self._server.vip.peerlist().get(timeout=2): volttron/platform/vip/agent/subsystems/peerlist.py:85: in list  socket.send_vip(b'', b'peerlist', [b'list'], result.ident) volttron/platform/vip/socket.py:418: in send_vip  flags=flags|more, copy=copy, track=track) volttron/platform/vip/socket.py:392: in send_multipart  msg_parts, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:250: in send_multipart  msg = super(_Socket, self).send_multipart(_args, **kwargs) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/sugar/socket.py:366: in send_multipart  self.send(msg, SNDMORE|flags, copy=copy, track=track) volttron/platform/vip/socket.py:384: in send  frame, flags=flags, copy=copy, track=track) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:215: in send  self._wait_write() ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/zmq/green/core.py:137: in _wait_write  self.__writable.get(block=True) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:370: in get  self._wait_core(timeout, ()) ../../../virtualenv/python2.7.11/lib/python2.7/site-packages/gevent/event.py:95: in _wait_core  result = self.hub.switch()


self = <Hub at 0x7fe3a2325910 epoll default pending=0 ref=8 fileno=3>

 def switch(self):  switch_out = getattr(getcurrent(), 'switch_out', None)  if switch_out is not None:  switch_out() > return greenlet.switch(self) E Failed: Timeout >60s

kmonson commented 7 years ago

Do we know if this only affects the encrypted tests?

jhaack commented 7 years ago

Yes, from what I see.

craig8 commented 7 years ago

I believe these have been taken care.