Try RPC tests in Travis windows builds.
Just a test, don’t merge this yet.
Try RPC tests in Travis windows builds.
Just a test, don’t merge this yet.
p2p-versionbits-warning.py
fails while shutting down the nodes. This seems to be a randomly occuring issue, not related to the specific test.
0
1stderr:
2 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/test_framework.py", line 144, in main
3 self.run_test()
4 File "/home/travis/build/bitcoin/bitcoin/build/../qa/rpc-tests/p2p-versionbits-warning.py", line 154, in run_test
5 self.test_versionbits_in_alert_file()
6 File "/home/travis/build/bitcoin/bitcoin/build/../qa/rpc-tests/p2p-versionbits-warning.py", line 99, in test_versionbits_in_alert_file
7 assert(self.vb_pattern.match(alert_text))
8Traceback (most recent call last):
9 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 121, in _request
10 return self._get_response()
11 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 159, in _get_response
12 http_response = self.__conn.getresponse()
13 File "/usr/lib/python3.4/http/client.py", line 1147, in getresponse
14 response.begin()
15 File "/usr/lib/python3.4/http/client.py", line 351, in begin
16 version, status, reason = self._read_status()
17 File "/usr/lib/python3.4/http/client.py", line 321, in _read_status
18 raise BadStatusLine(line)
19http.client.BadStatusLine: ''
20During handling of the above exception, another exception occurred:
21Traceback (most recent call last):
22 File "/home/travis/build/bitcoin/bitcoin/build/../qa/rpc-tests/p2p-versionbits-warning.py", line 161, in <module>
23 VersionBitsWarningTest().main()
24 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/test_framework.py", line 165, in main
25 stop_nodes(self.nodes)
26 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/util.py", line 347, in stop_nodes
27 node.stop()
28 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/coverage.py", line 49, in __call__
29 return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
30 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 144, in __call__
31 response = self._request('POST', self.__url.path, postdata.encode('utf-8'))
32 File "/home/travis/build/bitcoin/bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 125, in _request
33 self.__conn.request(method, path, postdata, headers)
34 File "/usr/lib/python3.4/http/client.py", line 1065, in request
35 self._send_request(method, url, body, headers)
36 File "/usr/lib/python3.4/http/client.py", line 1103, in _send_request
37 self.endheaders(body)
38 File "/usr/lib/python3.4/http/client.py", line 1061, in endheaders
39 self._send_output(message_body)
40 File "/usr/lib/python3.4/http/client.py", line 906, in _send_output
41 self.send(msg)
42 File "/usr/lib/python3.4/http/client.py", line 841, in send
43 self.connect()
44 File "/usr/lib/python3.4/http/client.py", line 819, in connect
45 self.timeout, self.source_address)
46 File "/usr/lib/python3.4/socket.py", line 509, in create_connection
47 raise err
48 File "/usr/lib/python3.4/socket.py", line 500, in create_connection
49 sock.connect(sa)
50ConnectionRefusedError: [Errno 111] Connection refused
It looks like this isn’t working, or that the http shutdown is taking too long and thus quitting without returning anything: https://github.com/bitcoin/bitcoin/blob/master/src/httpserver.cpp#L485
Conclusion: not safe to enable P2P tests for windows yet in travis. They tend to work, but this shutdown issue would introduce too many false positives. (this conclusion was wrong, see below)
assert(self.vb_pattern.match(alert_text))
?
Okay at least the error is consistent. I retriggered Travis and it happens again, same place, same error.
And the 32-bit windows build fails due to the same reason.
Edit: I can also reproduce it locally in a depends build.
73@@ -74,7 +74,7 @@ def setup_network(self):
74 self.nodes.append(start_node(0, self.options.tmpdir, self.node_options))
75
76 import re
Thanks.
If this passes, make sure to remove any remaining -win
hacks from the script.
-win
in rpc-tests.py
. I may be looking past it, but I didn’t find any use of that option anywhere.
`p2p-versionbits-warning.py` uses an alertnotify that writes to a file
using `echo`.
Windows `echo` doesn't strip quotes.
So accept the alert message to be surrounded by quotes in the regular
expression.
Re-enable the RPC tests for Windows. The issues preventing running the
RPC tests on windows have been resolved by upgrading to Trusty. Remove
the `-win` option from `rpc-tests.py`.
There was a timeout in
0 File "qa/pull-tester/rpc-tests.py", line 254, in get_next
1
2 (stdout, stderr) = proc.communicate(timeout=3)
but not due to the travis limit of 50 minutes.
Unfortunately running the tests in parallel will hide what actually happened until the stderr and stdout are retrieved.
I could come up with a -legacy
arg to run the test sequentially with real time stdout like was done previously, for debugging purposes.
@laanwj I ran this locally to see what is the cause of the intermittent fails, but I couldn’t figure it out. It has nothing to do with the timeout=3
. (You could set it to less without any issues)
I’d suggest you cherry-pick/pull fa9d398 and we just merge it. Someone can figure out later why parallel test don’t work fine with wine/win.
The job exceeded the maximum time limit for jobs, and has been terminated.
Dropping the java block tester at the same time could improve the run time.
Labels
Tests