Comment 1 for bug 1552864

Graham Hayes (grahamhayes) wrote :

OK, after changing https://github.com/openstack/designate/blob/d5d0706705c64dba847cea5a30b4a6be39ecd63f/designate/service.py#L342 to sendall() we get:

2016-03-03 19:02:42 ERROR designate.service [req-76111e6a-17e9-4a9e-8e03-39ac34d829cb - - - - -] Unhandled exception while processing request from 89.101.195.206:60079
2016-03-03 19:02:42.008 TRACE designate.service Traceback (most recent call last):
2016-03-03 19:02:42.008 TRACE designate.service File "/home/graham/designate/designate/service.py", line 343, in _dns_handle
2016-03-03 19:02:42.008 TRACE designate.service client.sendall(tcp_response)
2016-03-03 19:02:42.008 TRACE designate.service File "/usr/local/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 388, in sendall
2016-03-03 19:02:42.008 TRACE designate.service tail += self.send(data[tail:], flags)
2016-03-03 19:02:42.008 TRACE designate.service File "/usr/local/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 379, in send
2016-03-03 19:02:42.008 TRACE designate.service return self._send_loop(self.fd.send, data, flags)
2016-03-03 19:02:42.008 TRACE designate.service File "/usr/local/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 374, in _send_loop
2016-03-03 19:02:42.008 TRACE designate.service timeout_exc=socket.timeout("timed out"))
2016-03-03 19:02:42.008 TRACE designate.service File "/usr/local/lib/python2.7/dist-packages/eventlet/greenio/base.py", line 203, in _trampoline
2016-03-03 19:02:42.008 TRACE designate.service mark_as_closed=self._mark_as_closed)
2016-03-03 19:02:42.008 TRACE designate.service File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/__init__.py", line 162, in trampoline
2016-03-03 19:02:42.008 TRACE designate.service return hub.switch()
2016-03-03 19:02:42.008 TRACE designate.service File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 294, in switch
2016-03-03 19:02:42.008 TRACE designate.service return self.greenlet.switch()
2016-03-03 19:02:42.008 TRACE designate.service timeout: timed out
2016-03-03 19:02:42.008 TRACE designate.service

Adding an "eventlet.sleep(0)" before the sendall() allows this to complete properly