Closed Bug 1792088 Opened 2 years ago Closed 2 years ago

Random list of resolved IP addresses causes Remote Agent to start WebSocket on IPv6 instead of IPv4

Categories

(Remote Protocol :: CDP, defect, P1)

Firefox 105
defect
Points:
1

Tracking

(firefox-esr102 unaffected, firefox105 wontfix, firefox106 wontfix, firefox107 fixed)

RESOLVED FIXED
107 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox105 --- wontfix
firefox106 --- wontfix
firefox107 --- fixed

People

(Reporter: christopher.graham, Assigned: whimboo)

References

(Regression)

Details

(Keywords: regression, Whiteboard: [webdriver:m5])

Attachments

(3 files)

Steps to reproduce:

See detailed steps and logging in this Cypress.io Github bug: https://github.com/cypress-io/cypress/issues/23897

Close Cypress
Update to Firefox 105 (latest at the time I write this)
Open Cypress
Choose E2E
Select Firefox v105
Click Start E2E Testing in Firefox
Observe FF physically opens but the page is empty

Actual results:

FF physically opens but the page is empty

Expected results:

FF physically opens, Cypress is connected and Cypress UI is presented

Component: Untriaged → CDP
Product: Firefox → Remote Protocol

Reporter, which host is Cypress trying to connect to? Is it for Marionette or CDP? I assume the latter protocol? Note that there is bug 1769994 that got fixed for Firefox 105. Maybe you can provide a trace log by setting the following Firefox preference: remote.log.level=Trace?

Flags: needinfo?(christopher.graham)

Looking at this, few things I noticed.

1 - from the logs at https://github.com/cypress-io/cypress/issues/23897 , we can see the following:

DevTools listening on ws://[::1]:51498/devtools/browser/c88abee1-0348-45c3-b4f1-a4ac971aa68b

2 - cypress forces network.proxy.allow_hijacking_localhost to true and sets various proxy options

https://github.com/cypress-io/cypress/blob/acc1050dd2659182fa87729be5ce9c3ca99de94b/packages/server/lib/browsers/firefox.ts#L431

So as hinted by Henrik, it's quite possible that bug 1769994 regressed the behavior for cypress.

DevTools listening on ws://[::1]:51498/devtools/browser/c88abee1-0348-45c3-b4f1-a4ac971aa68b

This is interesting. Does Cypress only offer IPv6 on their platforms? Our WebSocket server is only spun up on [::1] if no IPv4 is available. It would also be good to know to which IP address localhost actually resolves on these hosts. If Cypress tries to connect to 127.0.0.1 it might cause problems because with IPv6 we do not have a dual-stack support yet.

Any update on this? Can we expect fix from FF, or we need to notify Cypress to make some refactor?

We are still missing details that we were asking for. If you could provide these (including your trace logs) that would be great.

I wonder if that's related to bug 1792647 and the required origins aren't allowed?

Zach, do you still watch Bugzilla and could help?

Flags: needinfo?(z)
Attached file full log
Hello All, let me paste may log from component tests execution. Everything is working fine for other browser

```

@Henrik I have set the log level but cannot locate whatever logs it is creating. Can you provide specific instructions on how to locate the resulting log files? "Maybe you can provide a trace log by setting the following Firefox preference: remote.log.level=Trace?"

Flags: needinfo?(christopher.graham) → needinfo?(hskupin)

Thank you for the log! Lets see:

So WebDriver BiDi is listening on stderr: WebDriver BiDi listening on ws://[::1]:56390 which is a IPv6 address and would also mean that no IPv4 is available. Ed, can you verify that? Do you have the capability to run with IPv4 enabled?

Later I can see a lot of the following output:

TCPConnectWrap.afterConnect [as oncomplete] (node:net:11
57:16) { errno: -4078, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 56390 } } +0ms

The client is trying to connect to the IPv4 local IP address which won't work given that we do not have dual-stack support yet. I assume that Cypress doesn't fetch the address from stderr nor the WebDriverActivePort file in the Firefox profile.

I can see some solutions:

  • Cypress should not only try on 127.0.0.1 but also on [::1] or even localhost if no connection is possible on IPv4 with BiDi
  • Enable IPv4 in your CI environment to get Firefox to run its BiDi server on IPv4
  • Add a preference to Firefox to force a specific network interface eg. IPv4 or IPv6 until we have dual-stack support

Note that the last option is not something that we can do for Firefox 105. It's something we can do as earliest for Firefox 106 if we agree on it.

Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(hskupin)
Summary: "Still waiting to connect to Firefox" Firefox 105 | Cypress 10.7.0 10.8.0 → Cypress can no longer connect to Firefox on 127.0.0.1 because the WebSocket server runs on IPV6 only

(In reply to christopher.graham from comment #8)

@Henrik I have set the log level but cannot locate whatever logs it is creating. Can you provide specific instructions on how to locate the resulting log files? "Maybe you can provide a trace log by setting the following Firefox preference: remote.log.level=Trace?"

Sorry, but I don't know Cypress and as such I cannot help. But I assume that you might have the same issue as Ed.

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #10)

(In reply to christopher.graham from comment #8)

@Henrik I have set the log level but cannot locate whatever logs it is creating. Can you provide specific instructions on how to locate the resulting log files? "Maybe you can provide a trace log by setting the following Firefox preference: remote.log.level=Trace?"

Sorry, but I don't know Cypress and as such I cannot help. But I assume that you might have the same issue as Ed.

Ahhh, I thought you were requesting FIREFOX logs which explains my confusion.

Over on bug 1792875 I'm working on a patch to store the WebSocket connection details in the Firefox user profile as WebDriverBiDi.json. Maybe this could be a way for Cypress to read the host and port and connect to the right address.

See Also: → 1792875
Attached file Cypress DEBUG log
Pertinent Cypress debug logging for starting Firefox 105

```

So WebDriver BiDi is listening on stderr: WebDriver BiDi listening on ws://[::1]:56390 which is a IPv6 address and would also mean that no IPv4 is available. Ed, can you verify that? Do you have the capability to run with IPv4 enabled?

@whimboo I think this user actually does have both IPv4 and IPv6 enabled. Cypress assumes that it can use IPv4, and uses a hard-coded 127.0.0.1 in all of the places it connects to localhost.

Given that this user was able to use Cypress with Firefox 104, and only on Firefox 105 do they see this issue, it seems like there could be a bug in Firefox 105 causing it to listen on [::1] even though 127.0.0.1 is available. bug 1769994 does sound like it could be the related change.

Furthermore, multiple developers on our team have been able to reproduce this issue locally by following https://github.com/cypress-io/cypress/issues/23897, and they definitely have IPv4 on their systems.

On our end, we'll look in using WebDriverActivePort, failing that we'll work around this by trying to connect on [::1] as a fallback.

Flags: needinfo?(z)

(In reply to Zach Bloomquist from comment #14)

@whimboo I think this user actually does have both IPv4 and IPv6 enabled. Cypress assumes that it can use IPv4, and uses a hard-coded 127.0.0.1 in all of the places it connects to localhost.

Ok, so I wonder if in some cases the order of the resolved local IP addresses might be in a reversed order and it's the IPv6 address which is reported first. Given that we use the first resolved IP address this might be the reason. And given that dual-stack is not supported yet the 127.0.0.1 address cannot be used at all.

Given that this user was able to use Cypress with Firefox 104, and only on Firefox 105 do they see this issue, it seems like there could be a bug in Firefox 105 causing it to listen on [::1] even though 127.0.0.1 is available. bug 1769994 does sound like it could be the related change.

Furthermore, multiple developers on our team have been able to reproduce this issue locally by following https://github.com/cypress-io/cypress/issues/23897, and they definitely have IPv4 on their systems.

Do you see this all on a given platform or across platforms?

On our end, we'll look in using WebDriverActivePort, failing that we'll work around this by trying to connect on [::1] as a fallback.

Please also see bug 1792875. Without the host information included the file won't help right now. So you will most likely have to wait or parse the stderr output for now to fetch the used host.

Keywords: regression
Regressed by: 1769994

I've checked back with the network team and our DNS resolution is based on platform APIs. The results that we get back are actually random and we do not sort them.

I would suggest that we explicitly check for IPv4 (127.0.0.1) and use it if present. We should still be able to get this fix into the 106 release.

Assignee: nobody → hskupin
Blocks: webdriver:m5
Status: NEW → ASSIGNED
Priority: -- → P1
Summary: Cypress can no longer connect to Firefox on 127.0.0.1 because the WebSocket server runs on IPV6 only → Random list of resolved IP addresses causes Remote Agent to start WebSocket on IPv6 instead of IPv4
Whiteboard: [webdriver:m5]

I've generated some try builds with a patch which will prefer IPv4 over IPv6. Could you please see if that works? Just click the green Ba job for your platform and check the lower pane that will open for the target.zip or target.tar.gz file.

It would be great to also get an excerpt from the trace log so that we can make sure the order of resolved IP addresses is reversed. On all of our systems it looks like:

[task 2022-10-04T10:49:55.584Z] 10:49:55     INFO - GECKO(1632) | 1664880595583	RemoteAgent	TRACE	Found local addresses: 127.0.0.1,[::1].
[task 2022-10-04T10:49:55.592Z] 10:49:55     INFO - GECKO(1632) | WebDriver BiDi listening on ws://127.0.0.1:9222
Flags: needinfo?(z)
Flags: needinfo?(christopher.graham)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #17)

I've tried running the try build on MacOS, but it gives me a "'Firefox Nightly.app' is damaged and can’t be opened. You should move it to the Trash." error. Is that a common issue with try builds that has a workaround or is it possible the build is broken?

Given that all the CI test jobs are passing I don't see that something is broken with those builds. But the jobs in CI run on x86_64 machines and not M1. I assume that you have an M1? I do myself and indeed can see the process crashing. I'll file a bug for that - thanks for informing us!

I submitted a new try build now which is doing a full build of Firefox. This will take a bit but it will be available here in max 60 minutes:
https://treeherder.mozilla.org/jobs?repo=try&revision=3a992fd1ec955929f4d69f8246c35786cf0c35c3

(In reply to Chris Breiding from comment #19)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #17)

I've tried running the try build on MacOS, but it gives me a "'Firefox Nightly.app' is damaged and can’t be opened. You should move it to the Trash." error. Is that a common issue with try builds that has a workaround or is it possible the build is broken?

The nightly app is unsigned so you need to press-and-hold the option key, then right-click to open and be trusting.

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #17)

I've generated some try builds with a patch which will prefer IPv4 over IPv6. Could you please see if that works? Just click the green Ba job for your platform and check the lower pane that will open for the target.zip or target.tar.gz file.

It would be great to also get an excerpt from the trace log so that we can make sure the order of resolved IP addresses is reversed. On all of our systems it looks like:

[task 2022-10-04T10:49:55.584Z] 10:49:55     INFO - GECKO(1632) | 1664880595583	RemoteAgent	TRACE	Found local addresses: 127.0.0.1,[::1].
[task 2022-10-04T10:49:55.592Z] 10:49:55     INFO - GECKO(1632) | WebDriver BiDi listening on ws://127.0.0.1:9222

Confirmed that Cypress UI 10.7.0 on Mac can successfully open the FF 107 Nightly build and execute tests.

Flags: needinfo?(christopher.graham)

(In reply to christopher.graham from comment #21)

Confirmed that Cypress UI 10.7.0 on Mac can successfully open the FF 107 Nightly build and execute tests.

Thanks! Good to know. Would you mind attaching the trace log as well or just the two lines that you get similar to mine above?

Confirmed that Cypress launches the Firefox Nightly full build successfully on my M1. Here are the trace log lines:

2022-10-04T14:24:00.957Z cypress:launcher:browsers firefox stdout: 1664893440956	RemoteAgent	TRACE	Found local addresses: [::1],127.0.0.1.
2022-10-04T14:24:00.959Z cypress:launcher:browsers firefox stderr: WebDriver BiDi listening on ws://127.0.0.1:50406

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #22)

(In reply to christopher.graham from comment #21)

Confirmed that Cypress UI 10.7.0 on Mac can successfully open the FF 107 Nightly build and execute tests.

Thanks! Good to know. Would you mind attaching the trace log as well or just the two lines that you get similar to mine above?

Here is the Firefox 107 Nighty related logging available via the Cypress logs. If this isn't what you're looking for please provide specific directions on how to get whatever it is you need.

  cypress:server:browsers:firefox launch in firefox {
    '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive'
  cypress:launcher:browsers launching browser { browser: { name: 'firefox', family: 'firefox', channel: 'nightly', displayName: 'Firefox Nightly', version: '107.0a1', path: '/Applications/Firefox Nightly.app/Contents/MacOS/firefox', minSupportedVersion: 86, majorVersion: '107', isHeaded: true, isHeadless: false }, url: 'about:blank' } +0ms
  cypress:launcher:browsers spawning browser with args { args: [ 'about:blank', '-marionette', '-new-instance', '-foreground', '-start-debugger-server', '-no-remote', '--remote-debugging-port=49208', '-profile', '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive' ] } +0ms
  cypress:launcher:browsers firefox stdout: 1664896673238       RemoteAgent     DEBUG   WebDriver BiDi enabled
  cypress:launcher:browsers firefox stdout: 1664896673239       RemoteAgent     DEBUG   Setting recommended pref datareporting.policy.dataSubmissionPolicyAccepted to false +1ms
  cypress:launcher:browsers firefox stdout: 1664896673330       Marionette      INFO    Listening on port 49210
  cypress:launcher:browsers firefox stdout: Started devtools server on 49209 +24ms
  cypress:launcher:browsers firefox stderr: 2022-10-04 11:17:53.399 plugin-container[25802:271295] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stderr: 2022-10-04 11:17:53.405 plugin-container[25802:271295] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stderr: 2022-10-04 11:17:53.406 plugin-container[25802:271315] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:server:browsers:firefox-util firefox: navigating page with webdriver +0ms
  cypress:launcher:browsers firefox stderr: WebDriver BiDi listening on ws://127.0.0.1:49208 +255ms
  cypress:launcher:browsers firefox stdout: 1664896673662       CDP     DEBUG   Waiting for initial application window +1ms
  cypress:launcher:browsers firefox stdout: 1664896673671       Marionette      DEBUG   Accepted connection 0 from 127.0.0.1:49224 +9ms
  cypress:launcher:browsers firefox stdout: 1664896673672       Marionette      DEBUG   Accepted connection 1 from 127.0.0.1:49227 +2ms
  cypress:launcher:browsers firefox stdout: 1664896673804       Marionette      DEBUG   Closed connection 0 +134ms
  cypress:launcher:browsers firefox stdout: 1664896673840       Marionette      DEBUG   1 -> [0,1,"WebDriver:NewSession",{"acceptInsecureCerts":true}] +33ms
  cypress:launcher:browsers firefox stdout: 1664896673841       RemoteAgent     WARN    TLS certificate errors will be ignored for this session +1ms
  cypress:launcher:browsers firefox stdout: 1664896673841       Marionette      DEBUG   Waiting for initial application window +0ms
  cypress:launcher:browsers firefox stderr: [2022-10-04T15:17:53Z ERROR xulstore::statics] error migrating data: JSON error: invalid type: integer `1280`, expected a string at line 1 column 71 +90ms
  cypress:launcher:browsers firefox stderr: DevTools listening on ws://127.0.0.1:49208/devtools/browser/d4c4eb9e-ff99-49d9-9aa3-625a2107b145 +1s
  cypress:launcher:browsers firefox stdout: 1664896675302       Marionette      DEBUG   1 <- [1,1,null,{"sessionId":"0e243669-6bc2-46d7-91ba-5a21279aadae","capabilities":{"browserName":"firefox","browserVersion":"107.0a1","platformName":"mac","acceptInsecureCerts":true,"pageLoadStrategy":"normal","setWindowRect":true,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"strictFileInteractability":false,"unhandledPromptBehavior":"dismiss and notify","moz:accessibilityChecks":false,"moz:buildID":"20221004040915","moz:debuggerAddress":"127.0.0.1:49208","moz:headless":false,"moz:platformVersion":"21.6.0","moz:processID":25799,"moz:profile":"/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive","moz:shutdownTimeout":60000,"moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true,"moz:windowless":false,"proxy":{}}}] +5ms
  cypress:launcher:browsers firefox stdout: 1664896675308       Marionette      DEBUG   1 -> [0,2,"Addon:Install",{"path":"/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressExtension","temporary":true}] +7ms
  cypress:launcher:browsers firefox stdout: 1664896675344       RemoteAgent     INFO    Perform WebSocket upgrade for incoming connection from 127.0.0.1:49237 +35ms
  cypress:launcher:browsers firefox stdout: 1664896675345       RemoteAgent     DEBUG   CDPConnection 1b79cc21-8861-4490-965c-01d8465cf0b3 accepted
  cypress:launcher:browsers firefox stdout: 1664896675364       RemoteAgent     INFO    Perform WebSocket upgrade for incoming connection from 127.0.0.1:49239
  cypress:launcher:browsers firefox stderr: JavaScript warning: moz-extension://ea169fd5-d2ae-4d36-adb3-cf05415cf954/background.js, line 5566: unreachable code after return statement +37ms
  cypress:launcher:browsers firefox stdout: 1664896675427       Marionette      DEBUG   1 <- [1,2,null,{"value":"automation-extension@cypress.io"}] +25ms
  cypress:launcher:browsers firefox stdout: 1664896675433       Marionette      DEBUG   1 -> [0,3,"WebDriver:Navigate",{"url":"https://staging.rstudioacademy.com/__/"}] +6ms

(In reply to Chris Breiding from comment #23)

2022-10-04T14:24:00.957Z cypress:launcher:browsers firefox stdout: 1664893440956	RemoteAgent	TRACE	Found local addresses: [::1],127.0.0.1.
2022-10-04T14:24:00.959Z cypress:launcher:browsers firefox stderr: WebDriver BiDi listening on ws://127.0.0.1:50406

That's exactly what I needed and confirms my theory. I'll have to update my patch once more today but I believe that with one of the Nightly builds tomorrow we should have it fixed.

Christopher, if you could do a final check with the following try build I would appreciate. Thanks!

https://treeherder.mozilla.org/jobs?repo=try&revision=e13e3b0046d68786177635592a582d321ad3c95c&selectedTaskRun=DS5y_kFmRv-uhkGKhgA_eg.0

Flags: needinfo?(christopher.graham)

Hi Henrik. Do you have a point value for this bug?

Flags: needinfo?(hskupin)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #26)

Christopher, if you could do a final check with the following try build I would appreciate. Thanks!

https://treeherder.mozilla.org/jobs?repo=try&revision=e13e3b0046d68786177635592a582d321ad3c95c&selectedTaskRun=DS5y_kFmRv-uhkGKhgA_eg.0

Confirmed that build works.

  cypress:server:browsers:firefox firefox directories { path: '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive', cacheDir: '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressCache', extensionDest: '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressExtension' } +93ms
  cypress:server:browsers:firefox launch in firefox {
    '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive'
  cypress:launcher:browsers launching browser { browser: { name: 'firefox', family: 'firefox', channel: 'nightly', displayName: 'Firefox Nightly', version: '107.0a1', path: '/Applications/Firefox Nightly.app/Contents/MacOS/firefox', minSupportedVersion: 86, majorVersion: '107', isHeaded: true, isHeadless: false }, url: 'about:blank' } +0ms
  cypress:launcher:browsers spawning browser with args { args: [ 'about:blank', '-marionette', '-new-instance', '-foreground', '-start-debugger-server', '-no-remote', '--remote-debugging-port=59880', '-profile', '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive' ] } +1ms
  cypress:launcher:browsers firefox stderr: 2022-10-04 16:30:22.522 plugin-container[36759:381472] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stderr: 2022-10-04 16:30:22.532 plugin-container[36759:381472] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stderr: 2022-10-04 16:30:22.534 plugin-container[36759:381481] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stdout: 1664915422603       RemoteAgent     DEBUG   WebDriver BiDi enabled +70ms
  cypress:launcher:browsers firefox stdout: 1664915422604       RemoteAgent     DEBUG   CDP enabled +0ms
  cypress:launcher:browsers firefox stdout: 1664915422604       Marionette      INFO    Marionette enabled +0ms
  cypress:launcher:browsers firefox stdout: 1664915422606       RemoteAgent     DEBUG   Setting recommended pref datareporting.policy.dataSubmissionPolicyAccepted to false +3ms
  cypress:launcher:browsers firefox stdout: 1664915422644       Marionette      INFO    Listening on port 59882
  cypress:launcher:browsers firefox stdout: Started devtools server on 59881 +83ms
  cypress:server:browsers:firefox-util firefox: navigating page with webdriver +0ms
  cypress:launcher:browsers firefox stderr: WebDriver BiDi listening on ws://127.0.0.1:59880 +302ms
  cypress:launcher:browsers firefox stdout: 1664915423032       CDP     DEBUG   Waiting for initial application window +0ms
  cypress:launcher:browsers firefox stdout: 1664915423077       Marionette      DEBUG   Accepted connection 0 from 127.0.0.1:59908 +45ms
  cypress:launcher:browsers firefox stdout: 1664915423080       Marionette      DEBUG   Accepted connection 1 from 127.0.0.1:59911 +3ms
  cypress:launcher:browsers firefox stdout: 1664915423084       Marionette      DEBUG   Closed connection 0 +5ms
  cypress:launcher:browsers firefox stdout: 1664915423135       Marionette      DEBUG   1 -> [0,1,"WebDriver:NewSession",{"acceptInsecureCerts":true}] +50ms
  cypress:launcher:browsers firefox stdout: 1664915423138       RemoteAgent     WARN    TLS certificate errors will be ignored for this session +4ms
  cypress:launcher:browsers firefox stdout: 1664915423139       Marionette      DEBUG   Waiting for initial application window +0ms
  cypress:launcher:browsers firefox stderr: [2022-10-04T20:30:23Z ERROR xulstore::statics] error migrating data: JSON error: invalid type: integer `1280`, expected a string at line 1 column 71 +147ms
  cypress:launcher:browsers firefox stderr: DevTools listening on ws://127.0.0.1:59880/devtools/browser/7020a778-02a8-4a14-b755-171d0f8a083e +2s
  cypress:launcher:browsers firefox stdout: 1664915424801       Marionette      DEBUG   1 <- [1,1,null,{"sessionId":"eae01b4a-fff0-4943-94a6-66adb2695767","capabilities":{"browserName":"firefox","browserVersion":"107.0a1","platformName":"mac","acceptInsecureCerts":true,"pageLoadStrategy":"normal","setWindowRect":true,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"strictFileInteractability":false,"unhandledPromptBehavior":"dismiss and notify","moz:accessibilityChecks":false,"moz:buildID":"20221004194042","moz:debuggerAddress":"127.0.0.1:59880","moz:headless":false,"moz:platformVersion":"21.6.0","moz:processID":36754,"moz:profile":"/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive","moz:shutdownTimeout":60000,"moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true,"moz:windowless":false,"proxy":{}}}] +7ms
  cypress:launcher:browsers firefox stdout: 1664915424806       Marionette      DEBUG   1 -> [0,2,"Addon:Install",{"path":"/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressExtension","temporary":true}] +6ms
  cypress:launcher:browsers firefox stdout: 1664915424876       RemoteAgent     INFO    Perform WebSocket upgrade for incoming connection from 127.0.0.1:59924 +69ms
  cypress:launcher:browsers firefox stdout: 1664915424878       RemoteAgent     DEBUG   CDPConnection e8485148-ebab-4bfd-a9b5-a06ac4a9a936 accepted +2ms
  cypress:launcher:browsers firefox stdout: 1664915424879       CDP     ERROR   Invalid browser preferences for CDP. Set "fission.webContentIsolationStrategy"to 0 and "fission.bfcacheInParent" to false before Firefox starts. +1ms
  cypress:launcher:browsers firefox stderr: JavaScript warning: moz-extension://ea169fd5-d2ae-4d36-adb3-cf05415cf954/background.js, line 5566: unreachable code after return statement +11ms
  cypress:launcher:browsers firefox stdout: 1664915424891       RemoteAgent     INFO    Perform WebSocket upgrade for incoming connection from 127.0.0.1:59926 +1ms
  cypress:launcher:browsers firefox stdout: 1664915424892       RemoteAgent     DEBUG   CDPConnection 587c3cf2-d905-4c29-a1ad-067c7a29dc6c accepted
  cypress:launcher:browsers firefox stdout: 1664915424911       Marionette      DEBUG   1 <- [1,2,null,{"value":"automation-extension@cypress.io"}] +18ms
  cypress:launcher:browsers firefox stdout: 1664915424917       Marionette      DEBUG   1 -> [0,3,"WebDriver:Navigate",{"url":"https://staging.rstudioacademy.com/__/"}] +5ms
Flags: needinfo?(christopher.graham)
Points: --- → 1
Flags: needinfo?(hskupin)

Glad I was able to help. Any ideas on when a production build with this fix will be released?

Flags: needinfo?(hskupin)

First the patch will land on Nightly and it would be good to get further feedback from other clients that nothing regressed. As such we will not immediately request uplift for 106 beta. It's unlikely that it will be fixed for a 105 minor release.

Flags: needinfo?(hskupin)
Pushed by hskupin@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ee42b4258d4a
[remote] Prefer IPv4 over IPv6 for resolved IP addresses of localhost. r=webdriver-reviewers,jgraham
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 107 Branch

Zach, we would appreciate if your colleagues could verify the fix in a recent Firefox Nightly build first before I request uplift for 106 beta. Changes like these are a bit risky if we cannot get the scenario covered by automated tests. As earlier this confirmation can be done as more likely the chance that we could get it into the 106 final release. Otherwise users would have to wait until 107. Thanks a lot.

Christopher, if you could do another check as well with a Nightly build that would be fantastic!

Flags: needinfo?(christopher.graham)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #34)

Zach, we would appreciate if your colleagues could verify the fix in a recent Firefox Nightly build first before I request uplift for 106 beta. Changes like these are a bit risky if we cannot get the scenario covered by automated tests. As earlier this confirmation can be done as more likely the chance that we could get it into the 106 final release. Otherwise users would have to wait until 107. Thanks a lot.

Christopher, if you could do another check as well with a Nightly build that would be fantastic!

I'm not seeing a newer nightly build than 107.0a1 which is the version I validated with a couple days ago.

Flags: needinfo?(christopher.graham)

You have verified the fix with a try build but not the official Nightly build of Firefox. The latter one you can download at:
https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #36)

You have verified the fix with a try build but not the official Nightly build of Firefox. The latter one you can download at:
https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly

Confirmed, still works.

  cypress:server:browsers:firefox firefox directories { path: '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive', cacheDir: '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressCache', extensionDest: '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressExtension' } +106ms
  cypress:server:browsers:firefox launch in firefox {
    '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive'
  cypress:launcher:browsers launching browser { browser: { name: 'firefox', family: 'firefox', channel: 'nightly', displayName: 'Firefox Nightly', version: '107.0a1', path: '/Applications/Firefox Nightly.app/Contents/MacOS/firefox', minSupportedVersion: 86, majorVersion: '107', isHeaded: true, isHeadless: false }, url: 'about:blank' } +0ms
  cypress:launcher:browsers spawning browser with args { args: [ 'about:blank', '-marionette', '-new-instance', '-foreground', '-start-debugger-server', '-no-remote', '--remote-debugging-port=55105', '-profile', '/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive' ] } +0ms
  cypress:launcher:browsers firefox stderr: 2022-10-06 09:23:13.982 plugin-container[64534:622044] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stderr: 2022-10-06 09:23:14.001 plugin-container[64534:622044] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stderr: 2022-10-06 09:23:14.002 plugin-container[64534:622051] nil host used in call to allowsSpecificHTTPSCertificateForHost
  cypress:launcher:browsers firefox stdout: 1665062594041       RemoteAgent     DEBUG   WebDriver BiDi enabled +39ms
  cypress:launcher:browsers firefox stdout: 1665062594042       RemoteAgent     DEBUG   CDP enabled +1ms
  cypress:launcher:browsers firefox stdout: 1665062594042       Marionette      INFO    Marionette enabled +0ms
  cypress:launcher:browsers firefox stdout: 1665062594044       RemoteAgent     DEBUG   Setting recommended pref datareporting.policy.dataSubmissionPolicyAccepted to false +2ms
  cypress:launcher:browsers firefox stdout: 1665062594094       Marionette      INFO    Listening on port 55107 +51ms
  cypress:launcher:browsers firefox stdout: 1665062594095       Marionette      DEBUG   Marionette is listening +0ms
  cypress:launcher:browsers firefox stdout: Started devtools server on 55106 +72ms
  cypress:launcher:browsers firefox stderr: WebDriver BiDi listening on ws://127.0.0.1:55105 +146ms
  cypress:launcher:browsers firefox stdout: 1665062594313       CDP     DEBUG   Waiting for initial application window +1ms
  cypress:launcher:browsers firefox stderr: [2022-10-06T13:23:14Z ERROR xulstore::statics] error migrating data: JSON error: invalid type: integer `1280`, expected a string at line 1 column 71 +178ms
  cypress:server:browsers:firefox-util firefox: navigating page with webdriver +0ms
  cypress:launcher:browsers firefox stdout: 1665062594912       Marionette      DEBUG   Accepted connection 0 from 127.0.0.1:55193 +421ms
  cypress:launcher:browsers firefox stdout: 1665062594916       Marionette      DEBUG   Accepted connection 1 from 127.0.0.1:55196 +3ms
  cypress:launcher:browsers firefox stdout: 1665062594930       Marionette      DEBUG   Closed connection 0 +14ms
  cypress:launcher:browsers firefox stdout: 1665062595398       Marionette      DEBUG   1 -> [0,1,"WebDriver:NewSession",{"acceptInsecureCerts":true}] +468ms
  cypress:launcher:browsers firefox stdout: 1665062595400       RemoteAgent     WARN    TLS certificate errors will be ignored for this session +2ms
  cypress:launcher:browsers firefox stdout: 1665062595401       Marionette      DEBUG   Waiting for initial application window +1ms
  cypress:launcher:browsers firefox stderr: DevTools listening on ws://127.0.0.1:55105/devtools/browser/b20cca18-a8fd-4262-b0b7-011d724c11a5 +543ms
  cypress:launcher:browsers firefox stdout: 1665062595948       Marionette      DEBUG   1 <- [1,1,null,{"sessionId":"8a0f541d-0659-4172-a14a-4cf2b5cb6199","capabilities":{"browserName":"firefox","browserVersion":"107.0a1","platformName":"mac","acceptInsecureCerts":true,"pageLoadStrategy":"normal","setWindowRect":true,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"strictFileInteractability":false,"unhandledPromptBehavior":"dismiss and notify","moz:accessibilityChecks":false,"moz:buildID":"20221006093717","moz:debuggerAddress":"127.0.0.1:55105","moz:headless":false,"moz:platformVersion":"21.6.0","moz:processID":64516,"moz:profile":"/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive","moz:shutdownTimeout":60000,"moz:useNonSpecCompliantPointerOrigin":false,"moz:webdriverClick":true,"moz:windowless":false,"proxy":{}}}] +6ms
  cypress:launcher:browsers firefox stdout: 1665062595953       Marionette      DEBUG   1 -> [0,2,"Addon:Install",{"path":"/Users/cgraham/Library/Application Support/Cypress/cy/production/browsers/firefox-nightly/interactive/CypressExtension","temporary":true}] +3ms
  cypress:launcher:browsers firefox stderr: JavaScript warning: moz-extension://ea169fd5-d2ae-4d36-adb3-cf05415cf954/background.js, line 5566: unreachable code after return statement +98ms
  cypress:launcher:browsers firefox stdout: 1665062596052       RemoteAgent     INFO    Perform WebSocket upgrade for incoming connection from 127.0.0.1:55209 +1ms
  cypress:launcher:browsers firefox stdout: 1665062596055       RemoteAgent     DEBUG   CDPConnection 85726ff2-e0bf-4eb5-8f61-a8364d3f67c9 accepted
  cypress:launcher:browsers firefox stdout: 1665062596067       Marionette      DEBUG   1 <- [1,2,null,{"value":"automation-extension@cypress.io"}] +12ms
  cypress:launcher:browsers firefox stdout: 1665062596069       RemoteAgent     INFO    Perform WebSocket upgrade for incoming connection from 127.0.0.1:55211 +3ms
  cypress:launcher:browsers firefox stdout: 1665062596072       RemoteAgent     DEBUG   CDPConnection eca11520-288d-4c74-989b-1fc8ce4a4b1e accepted

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #34)

Also confirmed the latest Nightly build works. Ran it against a number of our driver tests and it all looks good.

2022-10-06T13:41:33.920Z cypress:launcher:browsers firefox stdout: 1665063693919	RemoteAgent	TRACE	Available local IP addresses: [::1], 127.0.0.1
2022-10-06T13:41:33.923Z cypress:launcher:browsers firefox stderr: WebDriver BiDi listening on ws://127.0.0.1:53275

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #34)

Zach, we would appreciate if your colleagues could verify the fix in a recent Firefox Nightly build first before I request uplift for 106 beta.

^ Chris is a fellow Cypress contributor, looks looks like it's working for both him and Christopher. Thank you for getting a fix in for this so quickly, Henrik.

Flags: needinfo?(z)

Thanks everyone! This gives me confidence that we can request an uplift and git it fixed for you in the 106 release.

Zach, to notice regressions earlier and to be able to get them fixed before a new release is out do you see a way for Cypress to have at least one of their test jobs in CI (maybe even a new independent job) running against a Firefox Beta release?

Flags: needinfo?(z)

Comment on attachment 9297101 [details]
Bug 1792088 - [remote] Prefer IPv4 over IPv6 for resolved IP addresses of localhost.

Beta/Release Uplift Approval Request

  • User impact if declined: User of Cypress and maybe other CDP/WebDriver BiDi clients might not be able to connect to Firefox if DNS resolution on their systems return IPv6 addresses for localhost first.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Medium
  • Why is the change risky/not risky? (and alternatives if risky): This patch does no longer use the first returned IP address but pre-filters for IPv4 IPs first. Only if no IPv4 address is available our Remote Agent would fallback to IPV6.

I've set medium risk because we do not have a way to get this tested given that this is all OS dependent and none of our systems return IPv6 first.

I would still appreciate an uplift given that the patch relaxes the formerly very strict behavior and allows automation for quite a lot of customers.

  • String changes made/needed: no
  • Is Android affected?: Yes
Attachment #9297101 - Flags: approval-mozilla-beta?

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+2] from comment #40)

Zach, to notice regressions earlier and to be able to get them fixed before a new release is out do you see a way for Cypress to have at least one of their test jobs in CI (maybe even a new independent job) running against a Firefox Beta release?

Definitely, we do this for Chrome already, would be nice to do it for Firefox as well. I pulled this from our backlog to work on: https://github.com/cypress-io/cypress/issues/19921

Flags: needinfo?(z)

Comment on attachment 9297101 [details]
Bug 1792088 - [remote] Prefer IPv4 over IPv6 for resolved IP addresses of localhost.

We have no beta left and this is not safe enough and with enough impact to land directly in RC, sorry.

Attachment #9297101 - Flags: approval-mozilla-beta? → approval-mozilla-beta-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: