| Summary: | Orion client tests sometimes hang on Hudson Windows | ||
|---|---|---|---|
| Product: | [ECD] Orion | Reporter: | John Arthorne <john.arthorne> |
| Component: | Client | Assignee: | John Arthorne <john.arthorne> |
| Status: | RESOLVED INVALID | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | ken_walker, mamacdon, simon_kaegi |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
I'll try changing this. Would be nice to have clean test runs this week (or verify if we indeed have a real hang). I tried changing it from 3s to 10s but it is still dying. It looks like the tests are hanging on IE:
[unzip] Expanding: c:\hb\workspace\orion-jstest-windows\668\build.zip into c:\hb\workspace\orion-jstest-windows\668
[apply] Failures during test run.
[apply] Caused by:
[apply] java.lang.RuntimeException: Test run cancelled, exceeded 10000s
[apply] at com.google.jstestdriver.browser.BrowserActionExecutorAction.run(BrowserActionExecutorAction.java:125)
[apply] at com.google.jstestdriver.ActionRunner.runActions(ActionRunner.java:64)
[apply] at com.google.jstestdriver.JsTestDriver.main(JsTestDriver.java:85)
[apply] Caused by: java.util.concurrent.CancellationException
[apply] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:220)
[apply] at java.util.concurrent.FutureTask.get(FutureTask.java:83)
[apply] at com.google.jstestdriver.browser.BrowserActionExecutorAction.run(BrowserActionExecutorAction.java:121)
[apply] ... 2 more
[apply]
[apply] at com.google.jstestdriver.browser.BrowserActionExecutorAction.run(BrowserActionExecutorAction.java:141)
[apply] at com.google.jstestdriver.ActionRunner.runActions(ActionRunner.java:64)
[apply] at com.google.jstestdriver.JsTestDriver.main(JsTestDriver.java:85)
[apply] Caused by:
It looks like the root problem is a connection refused error on port 42443. I suspect a firewall issue:
[apply] Caused by: java.net.ConnectException: Connection refused: connect
[apply] at java.net.PlainSocketImpl.socketConnect(Native Method)
[apply] at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
[apply] at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
[apply] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
[apply] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
[apply] at java.net.Socket.connect(Socket.java:529)
[apply] at java.net.Socket.connect(Socket.java:478)
[apply] at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
[apply] at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
[apply] at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
[apply] at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
[apply] at sun.net.www.http.HttpClient.New(HttpClient.java:306)
[apply] at sun.net.www.http.HttpClient.New(HttpClient.java:323)
[apply] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)
[apply] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
[apply] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)
[apply] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:904)
[apply] at com.google.jstestdriver.HttpServer.postJson(HttpServer.java:116)
[apply] ... 3 more
[apply] Unexpected Runner Condition: Connection error on: sun.net.www.protocol.http.HttpURLConnection:http://localhost:42443
I was granted superpowers by Matt and logged into the Windows hudson slave. When I tried to launch orion on port 42443 I got a firewall dialog. I am not allowed to change firewall rules so I have asked webmaster to have a go. I can reproduce the hang on my own Windows 7 box. Steps: 1) Clone orion.client repository 2) Download jstestdriver jar 3) Download orion server build 4) Launch orion on default port 8080 5) Run jstestdriver as follows: java -jar JsTestDriver-1.3.5.jar --port 42443 --runnerMode DEBUG_NO_TRACE --tests all --testOutput results --browser "C:\Program Files\Internet Explorer\iexplore.exe" --config C:\Users\johnart\git\org.eclipse.orion.client\bundles\org.eclipse.orion.client.core\jsTestDriver.conf Through trial and error I tracked it down to the following test suite:
OrionTestCase("commands", "/js-tests/commands/test.html");
When I remove that test, everything else runs to completion. The test runs fine with exact same steps except substituting chrome for IE. I am going to comment this test out and push to master to verify in the nightly build.
After commenting out that test they were still hanging on the Hudson tests. I gave up for M1 and removed all IE 9 testing for now. To summarize what we know: - I can sometimes reproduce the hanging on my local Windows 7 with IE 9 - The exact same tests on the same Hudson hardware pass when using Chrome 23. -> It appears to be a specific interaction between our tests and IE 9, rather than a Hudson infrastructure problem. Client tests are run on Sauce now. jstestdriver is no longer a thing |
Our JS tests have been failing intermittently on Windows. At first I thought this was caused by hudson problems, but after digging into it, it looks like our tests are timing out. The timeout of 3s is quite short so maybe we just need to bump this up: [apply] java.lang.RuntimeException: Test run cancelled, exceeded 3000s [apply] at com.google.jstestdriver.browser.BrowserActionExecutorAction.run(BrowserActionExecutorAction.java:125) [apply] at com.google.jstestdriver.ActionRunner.runActions(ActionRunner.java:64) [apply] at com.google.jstestdriver.JsTestDriver.main(JsTestDriver.java:85) [apply] Caused by: java.util.concurrent.CancellationException [apply] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:220) [apply] at java.util.concurrent.FutureTask.get(FutureTask.java:83) [apply] at com.google.jstestdriver.browser.BrowserActionExecutorAction.run(BrowserActionExecutorAction.java:121) [apply] ... 2 more