Skip to content
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

SessionNotCreatedException throws when the Port is already in Use #223

Open
barath-uni opened this issue Mar 2, 2020 · 3 comments
Open

Comments

@barath-uni
Copy link

The following error throws when the Port is not available.

session not created: This version of ChromeDriver only supports Chrome version 78
  (Driver info: chromedriver=78.0.3904.70 (edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5-refs/branch-heads/3904@{#800}),platform=Mac OS X 10.14.6 x86_64)
#0      parseJsonWireResponse (package:webdriver/src/handler/json_wire/utils.dart:79:9)
#1      JsonWireSessionHandler.parseInfoResponse (package:webdriver/src/handler/json_wire/session.dart:26:21)
#2      JsonWireSessionHandler.parseCreateResponse (package:webdriver/src/handler/json_wire/session.dart:18:7)
#3      AsyncRequestClient.send (package:webdriver/src/common/request_client.dart:96:25)
<asynchronous suspension>
#4      createDriver (package:webdriver/async_core.dart:64:32)
#5      createDriver (package:webdriver/async_io.dart:42:5)
#6      _launchChrome (file:///Users/baradwav/Documents/dart-automation/main.dart:29:20)

It even defaults to chromeDriver=78.* and throws 'ChromeDriver only supports Chrome version 78' which is not a proper error message.

Checking the port with netstat -vanp tcp | grep 4444 shows that the port is occupied.
Killing the Port manually solves the problem.

Shouldn't the package take care of this by itself? Kindly also provide a proper 'Error' message which is relevant to the issue.

@jingbian
Copy link
Collaborator

jingbian commented Mar 2, 2020

Hello there!

I'm not very sure what the problem is here. It can either of the following two cases:

  1. Is the port actually occupied by an older ChromeDriver? And thus it is responding the message as the current Chrome is not his expected version. And in which case, the package outputs this as expected.

  2. Or do you mean no matter what process occupies the port, it always produces this message? In which case, it should be a bug.

Please kindly help me confirm which case it is. Thanks!

@barath-uni
Copy link
Author

As far as i can see, it is the '1st' you have mentioned. When you say, 'the package outputs this as expected', should it not say the port is occupied rather than throw a weird error with that exception message?

@jingbian
Copy link
Collaborator

jingbian commented Mar 3, 2020

So from the point of view of the library (or the Dart part), it talks through the http port and sends a request to create the session.

It gets a valid response, even though it's an error. It should output the error as is. The same error can happen if you just forget to update the chromedriver after Chrome updates, in which case, saying the port is occupied is very confusing.

The chromedriver instance (supposedly the new one) is not started by Dart code (or this library). The occupied problem should be spotted when you start chromedriver manually. It will show something like the following, which is very obvious:

[1583275583.382][SEVERE]: bind() failed: Address already in use (48)
[1583275583.382][INFO]: listen on IPv4 failed with error ERR_ADDRESS_IN_USE
IPv4 port not available. Exiting...

If you are using a different workflow, please let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants