Marcin Sobczyk <msobczyk@redhat.com> writes:
> Hi,
>
> On 12/7/19 7:52 AM, Martin Perina wrote:
>> Marcin, could you please investigate?
>>
> These failures are the already known race/timeout issues with our
> yajsonrpc/stomp tests.
> Since we switched to dynamic SSL key-cert generation in [2] they just
> manifest in a different way.
> I posted [1] to disable these tests for now.
Thanks, Marcin, looks like a good step now to avoid the failures.
> [1] https://gerrit.ovirt.org/105431
> [2]
> https://gerrit.ovirt.org/#/q/status:merged+project:vdsm+branch:master+topic:vdsm-tests-package-removal
>
>>
>> On Fri, 6 Dec 2019, 19:50 Milan Zamazal, <mzamazal@redhat.com
>> <mailto:mzamazal@redhat.com>> wrote:
>>
>> [Sorry, sent an unfinished mail by mistake.]
>>
>> Milan Zamazal <mzamazal@redhat.com <mailto:mzamazal@redhat.com>>
>> writes:
>>
>> > Hi, this seems to be a frequent error in Jenkins run recently:
>> >
>> >
>> > =================================== FAILURES
>> ===================================
>> > ______________________ VdsmClientTests.test_failing_call
>> _______________________
>> >
>> > self = <stomprpcclient_test.VdsmClientTests
>> testMethod=test_failing_call>
>> >
>> > def test_failing_call(self):
>> > with self._create_client() as client:
>> > with self.assertRaises(ServerError) as ex:
>> >> client.Test.failingCall()
>> >
>> > lib/yajsonrpc/stomprpcclient_test.py:144:
>> > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>> _ _ _ _ _ _ _ _
>> >
>> > def _call(self, namespace, method_name, **kwargs):
>> > """
>> > Client call method, executes a given command
>> >
>> > Args:
>> > namespace (string): namespace name
>> > method_name (string): method name
>> > **kwargs: Arbitrary keyword arguments
>> >
>> > Returns:
>> > method result
>> >
>> > Raises:
>> > ClientError: in case of an error in the protocol.
>> > TimeoutError: if there is no response after a pre
>> configured time.
>> > ServerError: in case of an error while executing the
>> command
>> > """
>> > method = namespace + "." + method_name
>> > timeout = kwargs.pop("_timeout", self._default_timeout)
>> >
>> > req = yajsonrpc.JsonRpcRequest(
>> > method, kwargs, reqId=str(uuid.uuid4()))
>> >
>> > try:
>> > responses = self._client.call(
>> > req, timeout=timeout, flow_id=self._flow_id)
>> > except EnvironmentError as e:
>> > raise ClientError(method, kwargs, e)
>> >
>> > if not responses:
>> >> raise TimeoutError(method, kwargs, timeout)
>> > E vdsm.client.TimeoutError: Request Test.failingCall
>> with args {} timed out after 3 seconds
>> >
>> > ../lib/vdsm/client.py:294: TimeoutError
>> > ------------------------------ Captured log call
>> -------------------------------
>> > ERROR vds.dispatcher:betterAsyncore.py:179 uncaptured python
>> exception, closing channel <yajsonrpc.betterAsyncore.Dispatcher
>> ('::1', 47428, 0, 0) at 0x7f48ddc47d10> (<class
>> 'ValueError'>:'b'ept-version:1.2'' contains illegal character ':'
>> [/usr/lib64/python3.7/asyncore.py|readwrite|108]
>> [/usr/lib64/python3.7/asyncore.py|handle_read_event|422]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py|handle_read|71]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py|_delegate_call|168]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/vdsm/protocoldetector.py|handle_read|129]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stompserver.py|handle_socket|413]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/vdsm/rpc/bindingjsonrpc.py|add_socket|54]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stompserver.py|createListener|379]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stompserver.py|StompListener|345]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py|__init__|47]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py|switch_implementation|86]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stompserver.py|init|363]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/vdsm/rpc/bindingjsonrpc.py|_onAccept|57]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py|set_message_handler|645]
>> [/usr/lib64/python3.7/asyncore.py|handle_read_event|422]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py|handle_read|71]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py|_delegate_call|168]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py|handle_read|421]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py|parse|323]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py|_parse_command|245]
>> [/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py|decode_value|167])
>> > WARNING vds.dispatcher:betterAsyncore.py:179 unhandled close event
>> > ERROR root:concurrent.py:267 FINISH thread <Thread(JsonRpc
>> (StompReactor), started daemon 139950158767872)> failed
>> > Traceback (most recent call last):
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/vdsm/common/concurrent.py",
>> line 260, in run
>> > ret = func(*args, **kwargs)
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stompserver.py",
>> line 393, in process_requests
>> > self._reactor.process_requests()
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py",
>> line 238, in process_requests
>> > timeout=self._get_timeout(self._map),
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py",
>> line 253, in _get_timeout
>> > interval = disp.next_check_interval()
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py",
>> line 99, in next_check_interval
>> > return getattr(self.__impl, "next_check_interval",
>> default_func)()
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py",
>> line 486, in next_check_interval
>> > self.handle_timeout()
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py",
>> line 451, in handle_timeout
>> > self._frame_handler.handle_timeout(self)
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stompclient.py",
>> line 130, in handle_timeout
>> > dispatcher._on_timeout)
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/stomp.py",
>> line 630, in reconnect
>> > AsyncDispatcher(self, self._async_client, count=count))
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py",
>> line 271, in reconnect
>> > dispatcher.create_socket(address, sslctx)
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/yajsonrpc/betterAsyncore.py",
>> line 112, in create_socket
>> > sock = sslctx.wrapSocket(sock)
>> > File
>> "/home/jenkins/workspace/vdsm_standard-check-patch/vdsm/lib/vdsm/sslutils.py",
>> line 113, in wrapSocket
>> > ca_certs=self.ca_certs)
>> > File "/usr/lib64/python3.7/ssl.py", line 1230, in wrap_socket
>> > context.load_verify_locations(ca_certs)
>> > FileNotFoundError: [Errno 2] No such file or directory
>> > _____________________ VdsmClientTests.test_missing_method
>> ______________________
>> >
>> > self = <stomprpcclient_test.VdsmClientTests
>> testMethod=test_missing_method>
>> >
>> > def test_missing_method(self):
>> > with self._create_client() as client:
>> > with self.assertRaises(ServerError) as ex:
>> >> client.Test.missingMethod()
>> >
>> > lib/yajsonrpc/stomprpcclient_test.py:155:
>> > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>> _ _ _ _ _ _ _ _
>> >
>> > def _call(self, namespace, method_name, **kwargs):
>> > """
>> > Client call method, executes a given command
>> >
>> > Args:
>> > namespace (string): namespace name
>> > method_name (string): method name
>> > **kwargs: Arbitrary keyword arguments
>> >
>> > Returns:
>> > method result
>> >
>> > Raises:
>> > ClientError: in case of an error in the protocol.
>> > TimeoutError: if there is no response after a pre
>> configured time.
>> > ServerError: in case of an error while executing the
>> command
>> > """
>> > method = namespace + "." + method_name
>> > timeout = kwargs.pop("_timeout", self._default_timeout)
>> >
>> > req = yajsonrpc.JsonRpcRequest(
>> > method, kwargs, reqId=str(uuid.uuid4()))
>> >
>> > try:
>> > responses = self._client.call(
>> > req, timeout=timeout, flow_id=self._flow_id)
>> > except EnvironmentError as e:
>> > raise ClientError(method, kwargs, e)
>> >
>> > if not responses:
>> >> raise TimeoutError(method, kwargs, timeout)
>> > E vdsm.client.TimeoutError: Request Test.missingMethod
>> with args {} timed out after 3 seconds
>> >
>> > ../lib/vdsm/client.py:294: TimeoutError
>>
>> See e.g.
>> https://jenkins.ovirt.org/blue/organizations/jenkins/vdsm_standard-check-patch/detail/vdsm_standard-check-patch/15459/pipeline/139/
>>
>> If we can't fix the CI, can we disable the test temporarily?
>> I experience very frequent Vdsm CI failures these days.
>>
>> Thanks,
>> Milan
>> _______________________________________________
>> Devel mailing list -- devel@ovirt.org <mailto:devel@ovirt.org>
>> To unsubscribe send an email to devel-leave@ovirt.org
>> <mailto:devel-leave@ovirt.org>
>> Privacy Statement: https://www.ovirt.org/site/privacy-policy/
>> oVirt Code of Conduct:
>> https://www.ovirt.org/community/about/community-guidelines/
>> List Archives:
>> https://lists.ovirt.org/archives/list/devel@ovirt.org/message/BOM7KFS5BFSPPLMTU4H4X4ATYKBQANNM/
>>
_______________________________________________
Devel mailing list -- devel@ovirt.org
To unsubscribe send an email to devel-leave@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/
List Archives: https://lists.ovirt.org/archives/list/devel@ovirt.org/message/WP4KMWGGXGQFXBCD44KJACZCVVYMIQXC/