testcontainers / testcontainers/testcontainers-java
[Bug]: Unexpected exit of vnc-recorder when closing pop-ups on MacOS
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 8.7k
- Fork
- 1.9k
- Merge medio
- 2g 17h
- PR unite (30g)
- 9
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia eseguendo org.example.testcontainersreproducer.TestcontainersReproducerTests#testVnc del reproducer collegato su MacOS ARM e confrontalo con Linux. Traccia il percorso di registrazione VNC di testcontainers-selenium attorno alla chiusura del popup e all’EOF di vnc-recorder segnalato; il lavoro è completato quando il recorder e WebDriver rimangono utilizzabili e il test termina senza gli errori segnalati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- docker, java
- Ambito
- testing
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100