testcontainers / testcontainers/testcontainers-java
[Bug]: Unexpected exit of vnc-recorder when closing pop-ups on MacOS
Dieses Issue hat noch niemand übernommen.
- 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:
- run BrowserWebDriverContainer with vnc recording
- Open pop-up on the page
- Close pop-up
vnc-recorderunexpectedly 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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