-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ie8/9 fails under sauce connect #71
Comments
On the yeti command line in the failure case, I never see a browser connect, e.g. stuck at: Waiting for Hub to launch browsers... |
Could you share a successful log from Sauce Connect for IE 10? I wonder if the problem is related to a SockJS transport in older IE (like xhr-streaming) having problem's with Sauce's proxy.
|
Here's a successful IE10 run: 2013-11-08 11:30:18.915:INFO::Started [email protected]:52283 | Terms of Service: http://saucelabs.com/tos |2013-11-08 11:30:18,930 - / Starting |
Is there any progress on this issue? We have exactly the same problem. |
@ipeychev @joecomotion I found the source of the problem. Thanks for your patience. This bug was difficult to track down. Yeti uses SockJS to communicate with browsers. SockJS implements many protocols to accommodate old and new browsers in the fastest way.
Sauce configures all browsers to use the Selenium HTTP proxy server to allow self-signed certificates and Sauce Connect to work. However, this proxy does not properly handle xdr-streaming or xhr-streaming requests from Yeti, which causes Yeti to hang when the proxy is in use. This may be because IE 8 and 9 require an unusual 2KB prefix for XDomainRequest responses due to a bug in the network wrapper below XDomainRequest. I'd wager that the Selenium proxy used by Sauce does not properly handle this prefix. Since the 2KB prefix is sent to all browsers, this prevents xhr-streaming and xdr-streaming protocols from working on Sauce with the proxy enabled. Because the proxy causes problems, Yeti currently always enables the avoid-proxy capability when launching a browser. So there's the problem. We can't simply add an option to omit avoid-proxy when using Sauce Connect, since it still wouldn't work: the proxy doesn't properly relay xhr-streaming and xdr-streaming requests. We can disable the xdr-streaming and xhr-streaming protocol settings on the client when Sauce Connect is in use. This will cause slower alternatives to be used instead. An even better option would be to detect the failure of the xdr-streaming protocol on the client-side and fall back automatically to xdr-polling or some other protocol. I'd prefer this option if at all possible. This may be possible to implement in Yeti's tempest.js but it'll be way better to include it upstream inside of sockjs-client. I'll experiment with these options this week. @joecomotion, let me know if this fix remains important to you. |
@reid This was for a project in Yahoo Mail. I am currently on sabbatical from Yahoo and so am a bit out of touch with the priority --- I will ping some folks and follow-up. |
@reid This is important for us too. We use Yeti to run AlloyUI tests on SauceLabs, but currently we can only run them against IE7 and IE10. |
Might be worth talking to someone at sauce. Maybe they can fix it on their side. -j Sent from my iPhone
|
Important for YMail also :) |
Following what @joecomotion suggested, I contacted SauceLabs and tolday they told me they "opened an internal ticket to investigate this". |
cool!! |
Hey, sorry for reviving an old thread, let me know if this is outdated now. As for setting If you guys can give me a Sauce job id, I can look into what the problem is. |
@ldx I'll send you one internally (Sorry to backchannel everyone! Don't want to send around client details). |
I'm trying to use yeti for running mail unit tests on saucelabs. At home, if I poke a hole in my firewall, I can run against ie9 and ie10 no problem. When I use sauce connect, though (which is how we'll have to run it at Yahoo), ie10 works, but ie9 does not.
When running w/ sauce connect, here's the command I'm using for ie9:
yeti --wd-url "http://:@ondemand.saucelabs.com" --browser "windows 7/ie/9" tests/unit/testAttachments.html
In the failing case, I see entries in my sauce connect log that look like this:
2013-11-08 11:33:50.613:INFO::Started [email protected]:4445
2013-11-08 11:33:50,614 - Selenium HTTP proxy listening on port 4445
2013-11-08 11:33:50,746 - Successful handshake with Sauce Connect server
2013-11-08 11:33:50,759 - Tunnel host version: 0.1.0, remote endpoint ID: 7518c05522c24423974fe166adca20a2
2013-11-08 11:33:50,762 - Connected! You may start your tests.
2013-11-08 11:34:18,065 - Request started: GET http://192.168.1.133:9000/agent/138393924933610484146
2013-11-08 11:34:18,079 - GET http://192.168.1.133:9000/agent/138393924933610484146 -> 200 (14ms, 973 bytes)
2013-11-08 11:34:18,140 - Request started: GET http://192.168.1.133:9000/agent/public/yeti.css
2013-11-08 11:34:18,153 - GET http://192.168.1.133:9000/agent/public/yeti.css -> 200 (13ms, 1691 bytes)
2013-11-08 11:34:18,181 - Request started: GET http://192.168.1.133:9000/agent/public/capture.js
2013-11-08 11:34:18,187 - GET http://192.168.1.133:9000/agent/public/capture.js -> 200 (7ms, 169741 bytes)
2013-11-08 11:34:22,619 - Request started: GET http://192.168.1.133:9000/favicon.ico
2013-11-08 11:34:22,625 - GET http://192.168.1.133:9000/favicon.ico -> 404 (5ms, 49 bytes)
2013-11-08 11:34:22,648 - Request started: GET http://192.168.1.133:9000/tower/info?t=1383939249428
2013-11-08 11:34:22,654 - GET http://192.168.1.133:9000/tower/info?t=1383939249428 -> 200 (7ms, 78 bytes)
2013-11-08 11:34:22,742 - Request started: POST http://192.168.1.133:9000/tower/301/tngm7itr/xhr_streaming?t=1383939249524
2013-11-08 11:34:23,375 - Request started: POST http://192.168.1.133:9000/tower/301/mh901pel/xhr?t=1383939250117
2013-11-08 11:34:23,380 - POST http://192.168.1.133:9000/tower/301/mh901pel/xhr?t=1383939250117 -> 200 (6ms, 2 bytes)
2013-11-08 11:34:23,513 - Request started: POST http://192.168.1.133:9000/tower/301/mh901pel/xhr?t=1383939250296
2013-11-08 11:34:23,517 - POST http://192.168.1.133:9000/tower/301/mh901pel/xhr?t=1383939250296 -> 200 (4ms, 31 bytes)
2013-11-08 11:34:23,624 - Request started: POST http://192.168.1.133:9000/tower/301/mh901pel/xhr_send?t=1383939250403
2013-11-08 11:34:23,631 - POST http://192.168.1.133:9000/tower/301/mh901pel/xhr_send?t=1383939250403 -> 500 (6ms, 17 bytes)
2013-11-08 11:34:23,642 - Request started: POST http://192.168.1.133:9000/tower/301/mh901pel/xhr?t=1383939250404
2013-11-08 11:34:28,703 - Request started: GET http://192.168.1.133:9000/tower/info?t=1383939255477
2013-11-08 11:34:28,707 - GET http://192.168.1.133:9000/tower/info?t=1383939255477 -> 200 (4ms, 79 bytes)
2013-11-08 11:34:28,757 - Request started: POST http://192.168.1.133:9000/tower/266/rod1bpp0/xhr_streaming?t=1383939255532
2013-11-08 11:34:29,286 - Request started: POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr?t=1383939256048
2013-11-08 11:34:29,289 - POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr?t=1383939256048 -> 200 (4ms, 2 bytes)
2013-11-08 11:34:29,344 - Request started: POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr?t=1383939256118
2013-11-08 11:34:29,348 - POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr?t=1383939256118 -> 200 (5ms, 31 bytes)
2013-11-08 11:34:29,470 - Request started: POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr_send?t=1383939256242
2013-11-08 11:34:29,473 - POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr_send?t=1383939256242 -> 500 (3ms, 17 bytes)
2013-11-08 11:34:29,489 - Request started: POST http://192.168.1.133:9000/tower/266/69w0mm7y/xhr?t=1383939256243
2013-11-08 11:34:34,572 - Request started: GET http://192.168.1.133:9000/tower/info?t=1383939261349
2013-11-08 11:34:34,575 - GET http://192.168.1.133:9000/tower/info?t=1383939261349 -> 200 (3ms, 78 bytes)
The text was updated successfully, but these errors were encountered: