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

3.0.x selenium SessionCleaner insideBrowserTimeout and clientGoneTimeout not working properly #2973

Open
mzhang444 opened this Issue Oct 20, 2016 · 28 comments

Comments

Projects
None yet
7 participants
@mzhang444

mzhang444 commented Oct 20, 2016

Meta -

OS: OSX 10.12 Sierre
Selenium Version: 3.0.1 java standalone server, 3.0.0.beta2 javascript client binding
Browser: Safari 10.0 (12602.1.50.0.10)

Expected Behavior -

I thought insideBrowserTimeout matches browserTimeout, and clientGoneTimeout matches timeout in the hub and node configuration parameters.

  1. If browserTimeout and timeout is configured in the selenium hubConfig.json file, Selenium node should pick up those values, and so are insideBrowserTimeout and clientGoneTimeout.
  2. In selenium nodeConfig.json file, I set browserTimeout: 60000, timeout: 120000, the values are in milliseconds according to documentation. SessionCleaner should pick up these values
  3. If the testing running inside browser finishes but not calling webdriver.quit(), the clientGoneTimeout should be triggered, session is destroyed and the browser instance is free to be used again

Actual Behavior -

  1. From hub grid console, I can see the selenium node configuration has browserTimeout and timeout value set correctly from the hub configuration, but according to node.log, SessionCleaner still uses default insideBrowserTimeout (0) and clientGoneTimeout (1800000)
  2. According to node.log, SessionCleaner uses insideBrowserTimeout 60000000 and clientGoneTimeout 120000000. Somehow times 1000 on the milliseconds again.
  3. Session is destroyed after clientGoneTimeout expires. However, the hub doesn't seem to be notified of this event, so from the hub console, that browser instance is grey out and cannot be used.

Steps to reproduce -

  1. Start hub with following command
    java -jar selenium-server-standalone-3.0.1.jar -role hub -log hub.log -port 4444 -host <ip> -hubConfig hubConfig.json, and hubConfig.json:
    { "browserTimeout": 60000, "timeout": 120000 }
  2. Start node with following command
    java -jar selenium-server-standalone-3.0.1.jar -role node -log node.log -hub $HUB_URL -nodeConfig nodeConfig.json, and nodeConfig.json:
    { "capabilities": [ { "browserName":"safari", "maxInstances":1, "platform":"MAC", "version":"10", "seleniumProtocol": "WebDriver" } ], "debug": false, "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "register": true, "registerCycle": 5000, "maxSession":6, "port":"7777" }
  3. check node.log and you will see the following lines:
    11:40:18.427 INFO - SessionCleaner initialized with insideBrowserTimeout 0 and clientGoneTimeout 1800000 polling every 180000
  4. add the following properties to nodeConfig.json and restart selenium node
    "browserTimeout": 60000, "timeout": 120000
  5. check node.log and you will see the following lines:
    11:45:57.387 INFO - SessionCleaner initialized with insideBrowserTimeout 60000000 and clientGoneTimeout 60000000 polling every 6000000"
  6. change browserTimeout and timeout in nodeConfig.json to the following and restart selenium node
    "browserTimeout": 60, "timeout": 120"
  7. check node.log and you will see the following lines:
    11:52:21.122 INFO - SessionCleaner initialized with insideBrowserTimeout 60000 and clientGoneTimeout 120000 polling every 6000
  8. Run a QUnit test but don't call webdriver.quit() when test finishes
  9. After 120 seconds, browser is shutdown as expected due to client timeout and the following log can be seen in node.log:
    11:56:15.237 INFO - Session 4e364367-9f6e-43fc-8591-ad27c82506c9 deleted due to client timeout.

However, the hub doesn't seem to be aware of the session being deleted. From the hub console page, that instance remains grey out and cannot be used.

@mzhang444 mzhang444 changed the title from SessionCleaner insideBrowserTimeout and clientGoneTimeout not working properly to 3.0.x selenium SessionCleaner insideBrowserTimeout and clientGoneTimeout not working properly Oct 20, 2016

@lukeis

This comment has been minimized.

Show comment
Hide comment
@lukeis

lukeis Oct 20, 2016

Member

you need to specify the cleanUpCycle on the hub too

Member

lukeis commented Oct 20, 2016

you need to specify the cleanUpCycle on the hub too

@lukeis lukeis added the C-grid label Oct 20, 2016

@mzhang444

This comment has been minimized.

Show comment
Hide comment
@mzhang444

mzhang444 Oct 20, 2016

@lukeis The hub console shows cleanupCycle for the hub and the node is 5000, the default value. Do I need to specify it explicitly in the hubConfig and nodeConfig json?

Here is the hub configuration output from hub console web page:
updated with params :
browserTimeout : 60000
debug : false
help : false
jettyMaxThreads : -1
role : hub
timeout : 120000
cleanUpCycle : 5000
maxSession : 1
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
newSessionWaitTimeout : 30000
throwOnCapabilityNotPresent : true

mzhang444 commented Oct 20, 2016

@lukeis The hub console shows cleanupCycle for the hub and the node is 5000, the default value. Do I need to specify it explicitly in the hubConfig and nodeConfig json?

Here is the hub configuration output from hub console web page:
updated with params :
browserTimeout : 60000
debug : false
help : false
jettyMaxThreads : -1
role : hub
timeout : 120000
cleanUpCycle : 5000
maxSession : 1
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
newSessionWaitTimeout : 30000
throwOnCapabilityNotPresent : true

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 1, 2016

@mzhang444 Found any solution to this? Same problem here. Instance remains grey out on selenium grid console and cannot be used.
@lukeis cleanUpCycle is set by default to 5000 and I can see it on grid console config.

derinbay commented Nov 1, 2016

@mzhang444 Found any solution to this? Same problem here. Instance remains grey out on selenium grid console and cannot be used.
@lukeis cleanUpCycle is set by default to 5000 and I can see it on grid console config.

@Eyjafjallajokull

This comment has been minimized.

Show comment
Hide comment
@Eyjafjallajokull

Eyjafjallajokull Nov 4, 2016

I'm having the same issue using latest docker images (3.0.1).
I am manually setting -timeout and -browserTimeout when starting nodes (SE_OPTS), but still when node destroys session due to client timeout it has unavailable status in hub.

Eyjafjallajokull commented Nov 4, 2016

I'm having the same issue using latest docker images (3.0.1).
I am manually setting -timeout and -browserTimeout when starting nodes (SE_OPTS), but still when node destroys session due to client timeout it has unavailable status in hub.

@Eyjafjallajokull

This comment has been minimized.

Show comment
Hide comment
@Eyjafjallajokull

Eyjafjallajokull Nov 4, 2016

Ok, I have figured this out! I've previously set timout for hub to 120000 but it seems that this value should be in seconds, not milliseconds. After changing timeout to 120, browser sessions were released in hub.

My final config:

Config for the hub :
browserTimeout : 120000
timeout : 120
cleanUpCycle : 5000
maxSession : 5
newSessionWaitTimeout : -1

Eyjafjallajokull commented Nov 4, 2016

Ok, I have figured this out! I've previously set timout for hub to 120000 but it seems that this value should be in seconds, not milliseconds. After changing timeout to 120, browser sessions were released in hub.

My final config:

Config for the hub :
browserTimeout : 120000
timeout : 120
cleanUpCycle : 5000
maxSession : 5
newSessionWaitTimeout : -1
@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 4, 2016

@Eyjafjallajokull Are you sure it's not milliseconds? Is it going down after 2 minutes, or 1.2 seconss? I'll try this one also. If that's the case documentation needs to be update.

derinbay commented Nov 4, 2016

@Eyjafjallajokull Are you sure it's not milliseconds? Is it going down after 2 minutes, or 1.2 seconss? I'll try this one also. If that's the case documentation needs to be update.

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 5, 2016

All right, thanks @lukeis

derinbay commented Nov 5, 2016

All right, thanks @lukeis

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 5, 2016

Problem is still exist on me.
My node configuration is:

{
  "capabilities": [
    {
      "browserName": "firefox",
      "firefox_profile": "selenium",
      "platform": "WIN10",
      "maxInstances": 12
    },
    {
      "browserName": "chrome",
      "platform": "WIN10",
      "webdriver.chrome.driver": "path\\to\\chromedriver.exe",
      "maxInstances": 12
    }
  ],
  "configuration": {
    "port": 5555,
    "hub": "http://hubaddress/grid/register",
    "maxSession": 12
  }
}

and my hub is:
{
"browserTimeout": 300,
"timeout": 600
}

When a test has failed, it's remain as greyed out in console:
screen shot 2016-11-05 at 15 54 20

node configurtion seems like this on console:
screen shot 2016-11-05 at 15 54 29

and hub config is seems like this on console:
screen shot 2016-11-05 at 15 57 50

derinbay commented Nov 5, 2016

Problem is still exist on me.
My node configuration is:

{
  "capabilities": [
    {
      "browserName": "firefox",
      "firefox_profile": "selenium",
      "platform": "WIN10",
      "maxInstances": 12
    },
    {
      "browserName": "chrome",
      "platform": "WIN10",
      "webdriver.chrome.driver": "path\\to\\chromedriver.exe",
      "maxInstances": 12
    }
  ],
  "configuration": {
    "port": 5555,
    "hub": "http://hubaddress/grid/register",
    "maxSession": 12
  }
}

and my hub is:
{
"browserTimeout": 300,
"timeout": 600
}

When a test has failed, it's remain as greyed out in console:
screen shot 2016-11-05 at 15 54 20

node configurtion seems like this on console:
screen shot 2016-11-05 at 15 54 29

and hub config is seems like this on console:
screen shot 2016-11-05 at 15 57 50

@mach6

This comment has been minimized.

Show comment
Hide comment
@mach6

mach6 Nov 6, 2016

Member

@derinbay
You can't use that -nodeConfig on a 3.0.0+ selenium node without getting this error;

Exception in thread "main" org.openqa.grid.common.exception.GridConfigurationException: Error with the JSON of the config : Deprecated -nodeConfig file encountered. Please update the file to work with Selenium 3. See https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-the-nodes-by-json for more details.

you sure that is your node config?

Member

mach6 commented Nov 6, 2016

@derinbay
You can't use that -nodeConfig on a 3.0.0+ selenium node without getting this error;

Exception in thread "main" org.openqa.grid.common.exception.GridConfigurationException: Error with the JSON of the config : Deprecated -nodeConfig file encountered. Please update the file to work with Selenium 3. See https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-the-nodes-by-json for more details.

you sure that is your node config?

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 6, 2016

@mach6 Yes, you can use -nodeConfig on selenium 3 also. Only json file is changed a bit. You can see the new file template from here: https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

Simply remove the "configuration" tag from the file and just write the configurations at the end. Then it will be ok.

derinbay commented Nov 6, 2016

@mach6 Yes, you can use -nodeConfig on selenium 3 also. Only json file is changed a bit. You can see the new file template from here: https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

Simply remove the "configuration" tag from the file and just write the configurations at the end. Then it will be ok.

@mach6

This comment has been minimized.

Show comment
Hide comment
@mach6

mach6 Nov 7, 2016

Member

@derinbay yes, I know. I wrote that change ;)

my point is -- the config file you mentioned above for reproducing the issue is not a Se3 compatible one

Member

mach6 commented Nov 7, 2016

@derinbay yes, I know. I wrote that change ;)

my point is -- the config file you mentioned above for reproducing the issue is not a Se3 compatible one

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 7, 2016

@mach6 oh ok :)
Well, I don't get any exception with these configurations. Both hub and nodes are using selenium3. My only problem is browser is staying hanged when a problem occured on the test and session is deleted.

derinbay commented Nov 7, 2016

@mach6 oh ok :)
Well, I don't get any exception with these configurations. Both hub and nodes are using selenium3. My only problem is browser is staying hanged when a problem occured on the test and session is deleted.

@mach6

This comment has been minimized.

Show comment
Hide comment
@mach6

mach6 Nov 8, 2016

Member

@derinbay back to my question.. are you sure the -nodeConfig you supplied above is the one you are using? it can't be... perhaps you using one that is equal and missing the configuration { } block? I'm trying to get enough details to attempt reproducing this. :)

Member

mach6 commented Nov 8, 2016

@derinbay back to my question.. are you sure the -nodeConfig you supplied above is the one you are using? it can't be... perhaps you using one that is equal and missing the configuration { } block? I'm trying to get enough details to attempt reproducing this. :)

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 8, 2016

@mach6 Yes, sorry I'm using the file without the configuration, selenium 3 one. I wrote the wrong old json file above (I'm switching files so much while trying). But insides are same except the configuration. and there is 1 extra "register": true line

{
  "capabilities": [
    {
      "browserName": "chrome",
      "platform": "WIN10",
      "webdriver.chrome.driver": "C:\\path\\to\\chromedriver.exe",
      "maxInstances": 12
    }
  ],
  "port": 5555,
  "hub": "http://hubaddress:4444/grid/register",
  "maxSession": 12,
  "register": true
}

derinbay commented Nov 8, 2016

@mach6 Yes, sorry I'm using the file without the configuration, selenium 3 one. I wrote the wrong old json file above (I'm switching files so much while trying). But insides are same except the configuration. and there is 1 extra "register": true line

{
  "capabilities": [
    {
      "browserName": "chrome",
      "platform": "WIN10",
      "webdriver.chrome.driver": "C:\\path\\to\\chromedriver.exe",
      "maxInstances": 12
    }
  ],
  "port": 5555,
  "hub": "http://hubaddress:4444/grid/register",
  "maxSession": 12,
  "register": true
}
@Eyjafjallajokull

This comment has been minimized.

Show comment
Hide comment
@Eyjafjallajokull

Eyjafjallajokull Nov 8, 2016

@derinbay this json file is not valid there is one extra "}" in the end. Remove it and try again.

Eyjafjallajokull commented Nov 8, 2016

@derinbay this json file is not valid there is one extra "}" in the end. Remove it and try again.

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Nov 8, 2016

@Eyjafjallajokull Thanks, I'm working with valid json file. I wrote typos here because I can't copy paste at the moment. The problem is not about json file validation, It couldn't even work if there is a validation error on json file : ) It's about the same problem as @mzhang444 mentioned.

derinbay commented Nov 8, 2016

@Eyjafjallajokull Thanks, I'm working with valid json file. I wrote typos here because I can't copy paste at the moment. The problem is not about json file validation, It couldn't even work if there is a validation error on json file : ) It's about the same problem as @mzhang444 mentioned.

@mzhang444

This comment has been minimized.

Show comment
Hide comment
@mzhang444

mzhang444 Nov 8, 2016

@derinbay I resolved problem number 3 by setting timeout: 120 and browserTimeout: 60 in the hub. These two properties are in seconds, while others such as registerCycle, cleanupCycle are in milliseconds. The unit used among properties are not consistent and very confusing.

Problem number 1 still exists but if we configure the hub properly, the hub will instruct the node to do the right thing.

mzhang444 commented Nov 8, 2016

@derinbay I resolved problem number 3 by setting timeout: 120 and browserTimeout: 60 in the hub. These two properties are in seconds, while others such as registerCycle, cleanupCycle are in milliseconds. The unit used among properties are not consistent and very confusing.

Problem number 1 still exists but if we configure the hub properly, the hub will instruct the node to do the right thing.

@mach6

This comment has been minimized.

Show comment
Hide comment
@mach6

mach6 Nov 8, 2016

Member

Confirmations and observations (assuming 3.x hub and nodes, only):

  1. Yes, the configuration for timeout and browserTimeoutshould be specified in seconds.
  2. The server code internally converts these to milliseconds and in some cases displays them as such. For Example: SessionCleaner INFO messages includes values which were internally converted using TimeUnit.SECONDS.toMillis(value)
  3. There is a bug in all 3.0.0-beta1 <= x <= 3.0.1 versions where hub timeout and browserTimeout values are read but NEVER used to start a new node. Furthermore, the bug exists in such a fashion where the node registers to the hub with the hub values -- even though the node is not using them.
  4. There is a bug and/or documentation issue preventing nodes from registering with timeout and browserTimeout values that override the hub values. This document suggests that this path is supported (though not recommended) -- https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-timeouts-version-221-required.

As a work-around / because of 3 & 4, you need to sync your timeout and browserTimeout values across the hub and all nodes, specifying them in BOTH places during startup as config parameters.

I will provide fixes for 3 & 4 soon.


Observation update 1:

For SessionCleaner

  • "clientGoneTimeout" = -timeout
  • "insideBrowserTimeout" = -browserTimeout
  • "polling every" is automatically computed and is equal to the lower non-zero value of timeout or browserTimeout converted to milliseconds and divided by 10.. E.g. timeout = 120 (sec) , browserTimeout=100 (sec) --> SessionCleaner polling interval will be (100 * 1000) / 10 = 10000 milliseconds (10 seconds)
Member

mach6 commented Nov 8, 2016

Confirmations and observations (assuming 3.x hub and nodes, only):

  1. Yes, the configuration for timeout and browserTimeoutshould be specified in seconds.
  2. The server code internally converts these to milliseconds and in some cases displays them as such. For Example: SessionCleaner INFO messages includes values which were internally converted using TimeUnit.SECONDS.toMillis(value)
  3. There is a bug in all 3.0.0-beta1 <= x <= 3.0.1 versions where hub timeout and browserTimeout values are read but NEVER used to start a new node. Furthermore, the bug exists in such a fashion where the node registers to the hub with the hub values -- even though the node is not using them.
  4. There is a bug and/or documentation issue preventing nodes from registering with timeout and browserTimeout values that override the hub values. This document suggests that this path is supported (though not recommended) -- https://github.com/SeleniumHQ/selenium/wiki/Grid2#configuring-timeouts-version-221-required.

As a work-around / because of 3 & 4, you need to sync your timeout and browserTimeout values across the hub and all nodes, specifying them in BOTH places during startup as config parameters.

I will provide fixes for 3 & 4 soon.


Observation update 1:

For SessionCleaner

  • "clientGoneTimeout" = -timeout
  • "insideBrowserTimeout" = -browserTimeout
  • "polling every" is automatically computed and is equal to the lower non-zero value of timeout or browserTimeout converted to milliseconds and divided by 10.. E.g. timeout = 120 (sec) , browserTimeout=100 (sec) --> SessionCleaner polling interval will be (100 * 1000) / 10 = 10000 milliseconds (10 seconds)

@mach6 mach6 self-assigned this Nov 8, 2016

mach6 added a commit to mach6/selenium that referenced this issue Nov 9, 2016

Fix #3078 and partially Fix #2973
1. #3078 - Grid nodes and hub configurations should start from the default config files
    which apply different default values than new GridHubConfiguration() and/or
    new GridNodeConfiguration()
2. #2973 - Node SeleniumServer needs to start with the updated configuration
    that SelfRegisteringRemote operates on.
@ChrisAuto

This comment has been minimized.

Show comment
Hide comment
@ChrisAuto

ChrisAuto Nov 11, 2016

I have set both timeout 120 and browserTimeout 60 for the hub and nodes to be the same and double checked this.

When tests fail the grid console is showing that it is greyed out and the console (command window) always displays "Error - Unable to kill process with PID"

Failed tests are not releasing the browser instance in the Grid Console

ChrisAuto commented Nov 11, 2016

I have set both timeout 120 and browserTimeout 60 for the hub and nodes to be the same and double checked this.

When tests fail the grid console is showing that it is greyed out and the console (command window) always displays "Error - Unable to kill process with PID"

Failed tests are not releasing the browser instance in the Grid Console

mach6 added a commit to mach6/selenium that referenced this issue Nov 14, 2016

Fix #3078 and partially Fix #2973
1. #3078 - Grid nodes and hub configurations should start from the default config files
    which apply different default values than new GridHubConfiguration() and/or
    new GridNodeConfiguration()
2. #2973 - Node SeleniumServer needs to start with the updated configuration
    that SelfRegisteringRemote operates on.
@ChrisAuto

This comment has been minimized.

Show comment
Hide comment
@ChrisAuto

ChrisAuto Nov 16, 2016

How do i get this fix, do i need to wait for the next build for selenium-server-standalone.jar ?

ChrisAuto commented Nov 16, 2016

How do i get this fix, do i need to wait for the next build for selenium-server-standalone.jar ?

mach6 added a commit to mach6/selenium that referenced this issue Nov 17, 2016

Server configuration consistency updates.
- Fix #3078 - new {servertype}Configurion() should always return an
  Object which is initialized with the same values as
  {servertype}Configuration#loadFromJSON(DEFAULT_CONFIG_FFILE) does.
  As a result of this change new GridNodeConfiguration() will always
  return the default node 'capabilities' (firefox, chrome, ie) -- which
  might require a user to clear() and/or adjust as they see fit.
- Partially fix #2973 - Node SeleniumServer needs to start with
  the updated configuration that SelfRegisteringRemote operates on.
- Fix for boolean command line switches -- as a result of this change
  all boolean command line switches now have arity=1. Meaning you
  must provide true/false values. For example '-debug true' or
  '-debug false'.
- Update logic for processing RegistrationRequests
- Reduced the visibility of GridConfiguration class
- Update and Add Tests.

@mach6 mach6 closed this in 705be71 Nov 17, 2016

@mach6

This comment has been minimized.

Show comment
Hide comment
@mach6

mach6 Nov 17, 2016

Member

Re-opening.. Only point 3 in my comment above is fixed..

Member

mach6 commented Nov 17, 2016

Re-opening.. Only point 3 in my comment above is fixed..

@mach6 mach6 reopened this Nov 17, 2016

@shirandedan

This comment has been minimized.

Show comment
Hide comment
@shirandedan

shirandedan Mar 15, 2017

i wanna ask how you solve your problem at last..i meet the same problem as yours..

shirandedan commented Mar 15, 2017

i wanna ask how you solve your problem at last..i meet the same problem as yours..

@derinbay

This comment has been minimized.

Show comment
Hide comment
@derinbay

derinbay Mar 15, 2017

@shirandedan I solved by updating selenium from 3.0.1 to newer one. There were some commits to fixing this one after 3.0.1.

derinbay commented Mar 15, 2017

@shirandedan I solved by updating selenium from 3.0.1 to newer one. There were some commits to fixing this one after 3.0.1.

@shirandedan

This comment has been minimized.

Show comment
Hide comment
@shirandedan

shirandedan Mar 15, 2017

@derinbay but what i used is selenium 3.2.0 and selenium-server 3.2.0,the latest version.

shirandedan commented Mar 15, 2017

@derinbay but what i used is selenium 3.2.0 and selenium-server 3.2.0,the latest version.

@shirandedan

This comment has been minimized.

Show comment
Hide comment
@shirandedan

shirandedan Mar 15, 2017

@derinbay i've also tried to set up the browserTimeout and tiemout,but just it didn't work!

shirandedan commented Mar 15, 2017

@derinbay i've also tried to set up the browserTimeout and tiemout,but just it didn't work!

@shirandedan

This comment has been minimized.

Show comment
Hide comment
@shirandedan

shirandedan Mar 15, 2017

what should i do to solve it
Config for the hub :
browserTimeout : 0
debug : false
help : false
port : 4444
role : hub
timeout : 1800
cleanUpCycle : 5000
host : 192.168.199.146
maxSession : 40
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
newSessionWaitTimeout : -1
throwOnCapabilityNotPresent : true
Config for the hub :
browserTimeout : 0
debug : false
help : false
port : 4444
role : hub
timeout : 1800
cleanUpCycle : 5000
host : 192.168.199.146
maxSession : 40
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
newSessionWaitTimeout : -1
throwOnCapabilityNotPresent : true

shirandedan commented Mar 15, 2017

what should i do to solve it
Config for the hub :
browserTimeout : 0
debug : false
help : false
port : 4444
role : hub
timeout : 1800
cleanUpCycle : 5000
host : 192.168.199.146
maxSession : 40
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
newSessionWaitTimeout : -1
throwOnCapabilityNotPresent : true
Config for the hub :
browserTimeout : 0
debug : false
help : false
port : 4444
role : hub
timeout : 1800
cleanUpCycle : 5000
host : 192.168.199.146
maxSession : 40
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher
newSessionWaitTimeout : -1
throwOnCapabilityNotPresent : true

@ChrisAuto

This comment has been minimized.

Show comment
Hide comment
@ChrisAuto

ChrisAuto Mar 17, 2017

This is still not fixed even with update to selenium 3.3.1.
Upon a failed test, the node displays in console "unable to kill process with PID XXXX".
Grid Console still shows greyed out firefox icons for every failed test. When all slots are greyed out, no more connections are allowed and the entire suite fails.

Has anyone managed to get this working. Its been a problem since last year for me (upgrades to selenium 3.x). I never had this issue previously with lower versions of selenium with lower versions of firefox. I am using remotewebdriver (grid) with firefox but only with 1 concurrent thread for the moment and i still get this issue.

If somebody has managed to get grid/remotewbdriver on 3.3.1 working with failed tests then perhaps it would be useful to share the hub config and node config. My config is the same as shirandedan above.

I just need to kill the process when a failed test occurs which should also close the related firefox browser instance that remains idle.

ChrisAuto commented Mar 17, 2017

This is still not fixed even with update to selenium 3.3.1.
Upon a failed test, the node displays in console "unable to kill process with PID XXXX".
Grid Console still shows greyed out firefox icons for every failed test. When all slots are greyed out, no more connections are allowed and the entire suite fails.

Has anyone managed to get this working. Its been a problem since last year for me (upgrades to selenium 3.x). I never had this issue previously with lower versions of selenium with lower versions of firefox. I am using remotewebdriver (grid) with firefox but only with 1 concurrent thread for the moment and i still get this issue.

If somebody has managed to get grid/remotewbdriver on 3.3.1 working with failed tests then perhaps it would be useful to share the hub config and node config. My config is the same as shirandedan above.

I just need to kill the process when a failed test occurs which should also close the related firefox browser instance that remains idle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment