-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
fix(webdriver): invoke terminate on all unsuccessful websocket candidates #14756
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
Conversation
christian-bromann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One comment, otherwise happy to go with this.
|
|
||
| const socketsToCleanup = wsInfo ? websockets.filter((_, index) => wsInfo.index !== index) : websockets | ||
| for (const socket of socketsToCleanup) { | ||
| socket.removeAllListeners() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we keep this? It doesn't seem to be called within terminate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've had a look into it and I can't find a reason to keep it.
I did spot in the FAQs of ws readme examples of terminating the websocket and they don't have any logic on removing listeners tied to it
1df98c1 to
24dccd6
Compare
christian-bromann
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
create-wdio
eslint-plugin-wdio
@wdio/allure-reporter
@wdio/appium-service
@wdio/browser-runner
@wdio/browserstack-service
@wdio/cli
@wdio/concise-reporter
@wdio/config
@wdio/cucumber-framework
@wdio/dot-reporter
@wdio/firefox-profile-service
@wdio/globals
@wdio/jasmine-framework
@wdio/json-reporter
@wdio/junit-reporter
@wdio/lighthouse-service
@wdio/local-runner
@wdio/logger
@wdio/mocha-framework
@wdio/protocols
@wdio/repl
@wdio/reporter
@wdio/runner
@wdio/sauce-service
@wdio/shared-store-service
@wdio/smoke-test-cjs-service
@wdio/smoke-test-reporter
@wdio/smoke-test-service
@wdio/spec-reporter
@wdio/static-server-service
@wdio/sumologic-reporter
@wdio/testingbot-service
@wdio/types
@wdio/utils
@wdio/webdriver-mock-service
@wdio/xvfb
webdriver
webdriverio
commit: |
|
@pokdeep can you check , it seems like the failing e2e test is connected to this change. |
|
Actually I see these tests failing in |
|
Hey pokdeep 👋 Thank you for your contribution to WebdriverIO! Your pull request has been marked as an "Expensable" contribution. We've sent you an email with further instructions on how to claim your expenses from our development fund. We are looking forward to more contributions from you in the future 🙌 Have a nice day, |
Proposed changes
Fixes #14742
Invoke
terminateon all unsuccessful websocket candidates regardless of theirreadyState.This change simplifies the cleanup logic and prevents the linked issue from occurring as the ws library handles the appropriate way to terminate the connection depending on the ready state.
Types of changes
Checklist
Backport Request
//: # (The current
mainbranch is the development branch for WebdriverIO v9. If your change should be released to the current major version of WebdriverIO (v8), please raise another PR with the same changes against thev8branch.)v9and doesn't need to be back-ported#XXXXXFurther comments
Instead of an error being thrown a debug message can be seen showing the socket has been closed
DEBUG webdriver: Could not connect to Bidi protocol at wss://10.166.109.168/session/8be10657e9589a26aa22ea3b67d865ff/se/bidi: WebSocket was closed before the connection was establishedReviewers: @webdriverio/project-committers