SeleniumHQ / selenium-google-code-issue-archive

Archive, please see main selenium repo
https://github.com/seleniumhq/selenium
345 stars 195 forks source link

Session not available when running tests with Selenium Grid 2.0.0 #2037

Closed lukeis closed 8 years ago

lukeis commented 8 years ago

Originally reported on Google Code with ID 2037

After upgrading to Selenium Grid 2.x we have seen a number of tests failing with the
message "org.openqa.grid.internal.GridException: Session not available - [6d1e7c9a-cdb1-4a26-bddf-0916e942fbda
(int. key, remote not contacted yet.)]"

The tests are consistently either calling selenium.set_timeout (may be significant
only in that it immediately follows selenium.start), or -- less often -- selenium.stop

The hub console during these errors is empty, and it is not thought that these are
genuine timeouts. The timeout is set to 3 minutes.

The issue is more prevalent when running multiple multi-threaded builds at once. In
one instance I was running up to 24 browsers in parallel over 4 nodes. In another,
we were running 8 browsers over the same 4 nodes.

Selenium version: 2.0.0
OS: Mac OS X 10.6.8
Browser: Firefox 
Browser version: 4

Reported by dave.hunt on 2011-07-12 11:11:08

lukeis commented 8 years ago
Adding the remaining stack trace.

; duration or timeout: 1.07 seconds
     [java] Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
     [java] System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-33-generic',
java.version: '1.6.0_26'
     [java] Driver info: driver.version: RemoteWebDriver
     [java]     at sun.reflect.GeneratedConstructorAccessor18.newInstance(Unknown Source)
     [java]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
     [java]     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
     [java]     at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:147)

Reported by anandj82 on 2011-12-06 20:37:42

lukeis commented 8 years ago
We haven't seen this issue since upgrading to 2.14.0. I think we can safely say that
at least one cause for this has been resolved.

Reported by dave.hunt on 2011-12-08 12:52:03

lukeis commented 8 years ago
@dave.h   Please execute my two examples and see the exceptions! (with 2.14)

Reported by schullerer on 2011-12-08 13:06:46

lukeis commented 8 years ago
Hi We are still seeing this issue with 2.14

We run our tests on Chrome (verision 15) on Windows XP machine

Behavior that we see is exactly what Anand explained here

All, 
I have been running few tests continuously to see whether there is a pattern for this
failure. Here is what I have found

During the test, one of the requests will get timed out. From what I have seen, the
page doesn't load completely when this issue happens. This causes a node TIMEOUT to
happen. Hub would then send Delete Session command to the node, but that command doesn't
get any response from node. I could still see the browser open and waiting for the
page to load even after that delete session command was executed. 

We are not sure what is causing it to time out as the page does load with no issues.

Reported by kswetha03 on 2011-12-09 21:34:07

lukeis commented 8 years ago
I have the same problem with 2.15.

I also would like to add some info:

If I start a node with maxSession=4, I get "Session not available", same as others
explained. 

But if I start 4 nodes with maxSession=1, the grids distributes the jobs well and I
don't have any problems.

Reported by i.brasil on 2011-12-22 22:15:04

lukeis commented 8 years ago
I have tested my examples (see above) and my tests failed now even with Selenium 2.16.
Sometimes I got a "UnreachableBrowserException" and sometimes only one browser window
was opened and the other threads will hang and cannot open a new browser window.
 But maybe someone has a working example test ( I used a google search) with concurrent
sessions or I'll have to wait for 2.17.

Reported by schullerer on 2012-01-06 13:15:05

lukeis commented 8 years ago
I have a different issue on similar lines with Selenium Grid 2.18.0 as well. I have
test which has a login screen with username/password. Grid actually writes on one browser
1st username and on 2nd browser 2nd username with 1st password and visa versa. Is this
a know problem with grid2 threading or am i missing something.
-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
  <suite name="TmSuite" parallel="tests" thread-count="5" verbose="1">
    <test name="Run on Firefox" preserve-order="true">
        <parameter name="browser" value="firefox"/>
            <classes>
                <class name="com.pri.tm.tests.Login"/>
            </classes>
    </test>
    <test name="Run on chrome" preserve-order="true">
        <parameter name="browser" value="chrome"/>
            <classes>
                <class name="com.pri.tm.tests.Login"/>
            </classes>
    </test>
        <test name="Run on IE" preserve-order="true">
        <parameter name="browser" value="iexplore"/>
            <classes>
                <class name="com.pri.tm.tests.Login"/>
            </classes>
    </test>
  </suite>
---------------------------

Reported by softmngr on 2012-02-07 01:39:26

lukeis commented 8 years ago
#60 & #61, your problems are probably both related to threading issues in your own code.
There are a /lot/ of people running far more concurrent set-ups than you describe without
any problems.

Reported by kristian.rosenvold on 2012-02-07 05:44:51

lukeis commented 8 years ago
Ok, please provide an Java example code running 3 Firefox browsers (on the same computer)
searching Google. I did not get it to work.

Reported by schullerer on 2012-02-07 07:43:15

lukeis commented 8 years ago
This should be tested with r16033.

Reported by kristian.rosenvold on 2012-02-28 17:18:29

lukeis commented 8 years ago
The timeout logic has been totally revised for 2.21. Please see the grid wiki page for
how to set this up.

The fix in 2.21 should solve the problem, and to the extent users stil experience timeout
related issues I recommend filing new issues, not attaching further "similar" symptoms
to this issue.

I am closing this issue now simply because it's turning into an epic; and it's fixed
for 2.21 ;)

Reported by kristian.rosenvold on 2012-03-10 18:03:15

lukeis commented 8 years ago
I often get my tests hanged while running testng suite. Only resolution is to stop execution
and restart it again.

I am getting following error after executing Suite in as HUB and Client :

org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the
remote browser. It may have died.
Build info: version: '2.21.0', revision: '16552', time: '2012-04-11 19:08:38'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version:
'1.7.0_05'
Driver info: driver.version: RemoteWebDriver
                at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:454)
                at org.openqa.selenium.remote.ExecuteMethod.execute(ExecuteMethod.java:47)
                at org.openqa.selenium.remote.RemoteMouse.mouseMove(RemoteMouse.java:89)
                at org.openqa.selenium.interactions.MoveMouseAction.perform(MoveMouseAction.java:37)
                at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:32)
                at                 at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
                at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
                at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
                at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
                at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
                at org.testng.TestRunner.privateRun(TestRunner.java:767)
                at org.testng.TestRunner.run(TestRunner.java:617)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
                at org.testng.SuiteRunner.run(SuiteRunner.java:240)
                at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1197)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1122)
                at org.testng.TestNG.run(TestNG.java:1030)
                at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
                at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: java.net.SocketTimeoutException: Read timed out
                at java.net.SocketInputStream.socketRead0(Native Method)
                at java.net.SocketInputStream.read(Unknown Source)
                at java.net.SocketInputStream.read(Unknown Source)
                at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149)
                at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110)
                at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:264)
                at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
                at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:252)
                at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
                at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247)
                at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:216)
                at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:298)
                at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
                at org.apache.http.impl.cl

Reported by bharathhg on 2012-08-22 05:19:16

lukeis commented 8 years ago
Hi,
I am using selenium grid 2 for executing the tests ,when I start both hub and node
in my system browser lanches but it lands in selenium help page with the following
message:You are using grid 2.24.1
Find help on the official selenium wiki : more help here
default monitoring page : console

But when my system is configured as only node and hub configured in other system browser
lanches and tests executes successfully in my system.Do i miss anything in my tests?

Reported by srividya.subramani@photoninfotech.net on 2012-08-22 13:54:04

lukeis commented 8 years ago
What are the commands you are giving to launch hub and node(client) in same machine?

Reported by bharathhg on 2012-08-23 03:35:24

lukeis commented 8 years ago
frequently fails all of my tests

2.25.0
hub: Ubuntu 11.04
node:  Windows 7 Pro x64

Selenium::WebDriver::Error::UnknownError: Session [1348528030620] was terminated due
to CLIENT_STOPPED_SESSION (org.openqa.grid.common.exception.GridException)

Stack trace:
[remote server] org.openqa.grid.internal.ActiveTestSessions(ActiveTestSessions.java):104:in
`getExistingSession'
[remote server] org.openqa.grid.internal.Registry(Registry.java):423:in `getExistingSession'
[remote server] org.openqa.grid.web.servlet.handler.RequestHandler(RequestHandler.java):234:in
`getSession'
[remote server] org.openqa.grid.web.servlet.handler.RequestHandler(RequestHandler.java):116:in
`process'
[remote server] org.openqa.grid.web.servlet.DriverServlet(DriverServlet.java):84:in
`process'
[remote server] org.openqa.grid.web.servlet.DriverServlet(DriverServlet.java):68:in
`doPost'
[remote server] javax.servlet.http.HttpServlet(HttpServlet.java):727:in `service'
[remote server] javax.servlet.http.HttpServlet(HttpServlet.java):820:in `service'
[remote server] org.seleniumhq.jetty7.servlet.ServletHolder(ServletHolder.java):565:in
`handle'
[remote server] org.seleniumhq.jetty7.servlet.ServletHandler(ServletHandler.java):479:in
`doHandle'
[remote server] org.seleniumhq.jetty7.server.session.SessionHandler(SessionHandler.java):225:in
`doHandle'
[remote server] org.seleniumhq.jetty7.server.handler.ContextHandler(ContextHandler.java):1031:in
`doHandle'
[remote server] org.seleniumhq.jetty7.servlet.ServletHandler(ServletHandler.java):406:in
`doScope'
[remote server] org.seleniumhq.jetty7.server.session.SessionHandler(SessionHandler.java):186:in
`doScope'
[remote server] org.seleniumhq.jetty7.server.handler.ContextHandler(ContextHandler.java):965:in
`doScope'
[remote server] org.seleniumhq.jetty7.server.handler.ScopedHandler(ScopedHandler.java):117:in
`handle'
[remote server] org.seleniumhq.jetty7.server.handler.HandlerWrapper(HandlerWrapper.java):111:in
`handle'
[remote server] org.seleniumhq.jetty7.server.Server(Server.java):349:in `handle'
[remote server] org.seleniumhq.jetty7.server.AbstractHttpConnection(AbstractHttpConnection.java):452:in
`handleRequest'
[remote server] org.seleniumhq.jetty7.server.BlockingHttpConnection(BlockingHttpConnection.java):47:in
`handleRequest'
[remote server] org.seleniumhq.jetty7.server.AbstractHttpConnection(AbstractHttpConnection.java):894:in
`content'
[remote server] org.seleniumhq.jetty7.server.AbstractHttpConnection$RequestHandler(AbstractHttpConnection.java):948:in
`content'
[remote server] org.seleniumhq.jetty7.http.HttpParser(HttpParser.java):857:in `parseNext'
[remote server] org.seleniumhq.jetty7.http.HttpParser(HttpParser.java):230:in `parseAvailable'
[remote server] org.seleniumhq.jetty7.server.BlockingHttpConnection(BlockingHttpConnection.java):66:in
`handle'
[remote server] org.seleniumhq.jetty7.server.bio.SocketConnector$ConnectorEndPoint(SocketConnector.java):254:in
`run'
[remote server] org.seleniumhq.jetty7.util.thread.QueuedThreadPool(QueuedThreadPool.java):599:in
`runJob'
[remote server] org.seleniumhq.jetty7.util.thread.QueuedThreadPool$3(QueuedThreadPool.java):534:in
`run'
[remote server] java.lang.Thread(Thread.java):662:in `run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/response.rb:52:in
`assert_ok'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/response.rb:15:in
`initialize'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:59:in
`new'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:59:in
`create_response'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:65:in
`request'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:40:in
`call'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:598:in
`raw_execute'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:576:in
`execute'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:322:in
`executeScript'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/driver.rb:211:in
`execute_script'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/browser.rb:130:in
`execute_script'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/browser.rb:125:in
`status'
/home/teamcity/hg/tatu/lib/site/common/site.rb:39:in `browser'
/home/teamcity/hg/tatu/spec/test_plan_197_spec.rb:235:in `block (3 levels) in <top
(required)>'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:113:in
`instance_eval'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:113:in
`block in run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:253:in
`with_around_each_hooks'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example.rb:110:in
`run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:378:in
`block in run_examples'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:374:in
`map'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:374:in
`run_examples'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:360:in
`run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in
`block in run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in
`map'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/example_group.rb:361:in
`run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in
`block (2 levels) in run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in
`map'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:28:in
`block in run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/reporter.rb:34:in
`report'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:25:in
`run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in
`run'
/home/teamcity/hg/tatu/vendor/bundle/ruby/1.9.1/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in
`block in autorun'

Reported by mkarlovich on 2012-09-25 17:55:43

lukeis commented 8 years ago
hi,

we are using Selenium Grid Hub 1.0.18.

we are trying to execute a test suite. test suite contains many test cases. 

some times we are facing the below Error while close all browser keyword.

ERROR: There is no registered session with ID '991c9385d0a9412995a4fec6011d794f'. 
Either it timed out or you already closed it. 

Test Result 
-----------

KEYWORD: SeleniumLibrary.Capture Page Screenshot Products.png  
Documentation: Takes a screenshot of the current page and embeds it into the log. 
Start / End / Elapsed: 20130123 21:01:07.756 / 20130123 21:01:37.982 / 00:00:30.226

KEYWORD: SeleniumLibrary.Delete All Cookies  
Documentation: Deletes all cookies by calling `Delete Cookie` repeatedly. 
Start / End / Elapsed: 20130123 21:01:37.983 / 20130123 21:02:08.015 / 00:00:30.032

KEYWORD: SeleniumLibrary.Close All Browsers  
Documentation: Closes all open browsers and empties the connection cache. 
Start / End / Elapsed: 20130123 21:02:08.016 / 20130123 21:02:08.154 / 00:00:00.138

21:02:08.153 FAIL ERROR: There is no registered session with ID '991c9385d0a9412995a4fec6011d794f'.
 Either it timed out or you already closed it. 

Kindly anyone help us to resolve this issue.

Thanks in Advance.

-Karthik

Reported by bskarthick on 2013-01-24 10:37:35

lukeis commented 8 years ago
@bskarthick Don't use grid hub version 1. It's unsupported and outdated.

Follow instructions at http://seleniumhq.org/download/ to use the latest 2.X version.

Reported by kristian.rosenvold on 2013-01-24 10:43:47

lukeis commented 8 years ago
@kristian: The selenium grid page is still available, first hit for a google search
on "selenium grid" and does not metion anything about being deprecated, maybe as a
project member you could see to it that it is deleted or updated with a big warning
message not to use it?

http://selenium-grid.seleniumhq.org/

Reported by christoph.neuroth@lusini.com on 2013-01-24 10:45:46

lukeis commented 8 years ago
@kristian,

we are using selenium Grid Hub 1.0.18 in Unix boX in 4444 port.

we are regestering 4 selenium remote controls ports ( windows VM )to the above Grid
hub.

So kindly let me know do we need to update the selenium remote controls if we upgrade
selenium Grid Hub 2.x ??

Thanks in advance,

-Karthik

Reported by bskarthick on 2013-01-24 11:07:41

lukeis commented 8 years ago

Reported by luke.semerau on 2015-09-17 18:13:15