testcontainers / testcontainers/testcontainers-java

[Bug]: Unexpected exit of vnc-recorder when closing pop-ups on MacOS

Offen
#8,452 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

type/bug
Vorherrschende Sprache
Java
Sterne
8.7k
Forks
1.9k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
9

Beschreibung

Module

Selenium

Testcontainers version

1.19.7

Using the latest Testcontainers version?

Yes

Host OS

MacOS on m2

Host Arch

ARM

Docker version
Docker: 24.0.7
Docker Desktop: 4.26.1
What happened?

vnc-recorder unexpectedly excites when closing pop-ups using testcontainers-selenium

Here is reproducer: https://github.com/RuslanHryn/testcontainers-reproducer.git
Just run org.example.testcontainersreproducer.TestcontainersReproducerTests#testVnc

Steps to reproduce:

  1. run BrowserWebDriverContainer with vnc recording
  2. Open pop-up on the page
  3. Close pop-up
  4. vnc-recorder unexpectedly excited

The issue can be reproduced only in MacOS with ARM.
The issue is not reproducible on Linux

Relevant log output
The error in `vnc-recorder`:

`write_video_frame: timestamp=174466, data=2757
2024-03-14T14:32:49.169503055Z close
2024-03-14T14:32:49.169569888Z RFB error: unexpected EOF
2024-03-14T14:32:49.169579263Z stop recording
2024-03-14T14:32:49.169581971Z flush
2024-03-14T14:32:49.169687013Z write_metadata: {'duration': 174.466, 'width': 1360, 'framerate': 30, 'videocodecid': 3, 'height': 1020}`

Error from the test:

org.openqa.selenium.WebDriverException: disconnected: not connected to DevTools
  (failed to check if window was closed: disconnected: not connected to DevTools)
  (Session info: chrome=118.0.5993.117)
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.3.1', java.version: '17.0.9'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Command: [15e7e97ac182b2da37b99c644c1bb6cf, close {}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 118.0.5993.117, chrome: {chromedriverVersion: 118.0.5993.70 (e52f33f30b91..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:44355}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: Proxy(), se:bidiEnabled: false, se:cdp: ws://172.17.0.4:4444/sessio..., se:cdpVersion: 118.0.5993.117, se:vnc: ws://172.17.0.4:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://172.17.0.4:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: 15e7e97ac182b2da37b99c644c1bb6cf

	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:52)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:191)
	at org.openqa.selenium.remote.TracedCommandExecutor.execute(TracedCommandExecutor.java:51)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:602)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:675)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:679)
	at org.openqa.selenium.remote.RemoteWebDriver.close(RemoteWebDriver.java:409)
	at org.example.testcontainersreproducer.TestcontainersReproducerTests.testVnc(TestcontainersReproducerTests.java:44)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
Additional Information

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, org.example.testcontainersreproducer.TestcontainersReproducerTests#testVnc aus dem verknüpften Reproducer auf MacOS ARM auszuführen und es mit Linux zu vergleichen. Verfolge den testcontainers-selenium-VNC-Aufzeichnungspfad rund um das Schließen des Pop-ups und den gemeldeten vnc-recorder-EOF; abgeschlossen ist die Aufgabe, wenn der Recorder und WebDriver weiterhin verwendbar sind und der Test ohne die gemeldeten Fehler abgeschlossen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker, java
Bereich
testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.