Skip to content

[πŸ› Bug]: Selenium using a chrome with version less than v130 has started crashing after a short amount of useΒ #14674

@oscarduignan

Description

@oscarduignan

What happened?

After a little bit of time of using chromedriver with a browser version under chrome v130 via selenium/selenium-manager (we were using v122 and v125, but tested up to v129) we experience a crash after a little while, like in this screenshot

CleanShot 2024-10-29 at 15 21 06@2x

chromedriver.log

included an example that can be run with scala-cli (and I guess should be easy to translate to java, but apologies I'm not very familiar with it!)

this didn't seem to be occurring for us before last friday, we're not sure what's changed - seems like maybe closing and reopening browser before and after test rather than beforeall and afterall might mitigate it a bit but we're not totally sure

How can we reproduce the issue?

//> using scala 2.13
//> using dep "org.seleniumhq.selenium:selenium-java:4.22.0"

import org.openqa.selenium.By
import org.openqa.selenium.chrome.{ChromeDriver, ChromeOptions}
import org.openqa.selenium.manager.SeleniumManager
import org.openqa.selenium.remote.RemoteWebDriver

import java.util.concurrent.{ThreadLocalRandom, TimeUnit}
import java.util.logging.{FileHandler, Level, Logger}
import scala.reflect.classTag

/* Open a repl with `scala-cli repl Selenium.scala`
 *
 * Then try running this multiple times within the repl like
 * 
 * 1 to 10 foreach { i => Selenium.trySubmittingATechnicalSupportRequestWithAnInvalidEmail() }; println("ran 10 times")
 * ```
 */
object Selenium {
  private val logger = Logger.getLogger("")
  logger.setLevel(Level.FINE)
  logger.addHandler(new FileHandler("selenium.xml"))
  Logger.getLogger(classTag[RemoteWebDriver].runtimeClass.getCanonicalName).setLevel(Level.FINEST);
  Logger.getLogger(classTag[SeleniumManager].runtimeClass.getCanonicalName).setLevel(Level.SEVERE);
  System.setProperty("webdriver.chrome.logfile", "chromedriver.log");
  System.setProperty("webdriver.chrome.verboseLogging", "true");
  private val options = new ChromeOptions
  options.setBrowserVersion(sys.env.getOrElse("BROWSER_VERSION", "125"))
  options.addArguments("--disable-features=MediaRouter")
  //options.addArguments("--headless=new")
  options.addArguments("--no-sandbox")
  options.addArguments("--disable-setuid-sandbox")
  options.setAcceptInsecureCerts(true)
  private val driver = new ChromeDriver(options)
  driver.manage().window().maximize()

  def trySubmittingATechnicalSupportRequestWithAnInvalidEmail(): Unit = {
    driver.get("https://www.tax.service.gov.uk/contact/report-technical-problem")
    driver.findElement(By.id("report-name")).click();
    driver.findElement(By.id("report-name")).sendKeys("oscar duignan");
    driver.findElement(By.id("report-email")).click();
    driver.findElement(By.id("report-email")).sendKeys("invalid email so that this won't actually be sent to the technical support team");
    driver.findElement(By.id("report-action")).click();
    driver.findElement(By.id("report-action")).sendKeys("this is a test of selenium to see if I can trigger the issue without using ui-test-runner");
    driver.findElement(By.id("report-error")).click();
    driver.findElement(By.id("report-error")).sendKeys("nothing, this shouldn\'t get sent anywhere");
    driver.findElement(By.cssSelector(".govuk-button")).click();
    // not sure if time open plays a part, so adding a random short delay
    TimeUnit.MILLISECONDS.sleep(ThreadLocalRandom.current().nextInt(200, 1000))
  }
}

Relevant log output

// I only included the logs around the error that mentioned devtools, let me know if you need more, but the file is 18mb - there's also logs attached to the description from chromedriver 

 <millis>1730215241567</millis>
  <nanos>355000</nanos>
  <sequence>38293</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask</class>
  <method>lambda$processClose$0</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 548ms] [WebSocket] CompletionStage returned by onClose completed result=jdk.internal.net.http.websocket.WebSocketImpl@5fa99ec7[uri=ws://localhost:50113/devtools/browser/45be6456-b2aa-4abd-a18b-04aeacdbfcce] error=null</message>
  <param>jdk.internal.net.http.websocket.WebSocketImpl@5fa99ec7[uri=ws://localhost:50113/devtools/browser/45be6456-b2aa-4abd-a18b-04aeacdbfcce]</param>
  <param>???</param>
</record>
<record>
  <date>2024-10-29T15:20:41.567821Z</date>
  <millis>1730215241567</millis>
  <nanos>821000</nanos>
  <sequence>38294</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.TransportImpl</class>
  <method>sendClose</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 548ms] [Transport] enter send close 1 statusCode=1000 reason.length=0</message>
  <param>1</param>
  <param>1000</param>
  <param>0</param>
</record>
<record>
  <date>2024-10-29T15:20:41.568288Z</date>
  <millis>1730215241568</millis>
  <nanos>288000</nanos>
  <sequence>38295</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.TransportImpl$SendTask</class>
  <method>run</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Transport] enter send task</message>
</record>
<record>
  <date>2024-10-29T15:20:41.568313Z</date>
  <millis>1730215241568</millis>
  <nanos>313000</nanos>
  <sequence>38296</sequence>
  <logger>org.openqa.selenium.remote.RemoteWebDriver</logger>
  <level>FINE</level>
  <class>org.openqa.selenium.remote.RemoteWebDriver</class>
  <method>log</method>
  <thread>1</thread>
  <message>Executed: get (Response: SessionID: 5334d0caad14df893f0783c87a16af52, State: disconnected, Value: org.openqa.selenium.WebDriverException: disconnected: unable to send message to renderer
  (failed to check if window was closed: disconnected: not connected to DevTools)
  (Session info: chrome=125.0.6422.141)
Build info: version: '4.22.0', revision: 'c5f3146703*'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '14.0', java.version: '11.0.24'
Driver info: driver.version: RemoteWebDriver)</message>
</record>
<record>
  <date>2024-10-29T15:20:41.568600Z</date>
  <millis>1730215241568</millis>
  <nanos>600000</nanos>
  <sequence>38297</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.TransportImpl$SendTask</class>
  <method>run</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Transport] load message</message>
</record>
<record>
  <date>2024-10-29T15:20:41.568773Z</date>
  <millis>1730215241568</millis>
  <nanos>773000</nanos>
  <sequence>38298</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.MessageEncoder</class>
  <method>encodeClose</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Output] encode close statusCode=1000 reason=[pos=0 lim=0 cap=0] dst=java.nio.HeapByteBuffer[pos=0 lim=16384 cap=16384]</message>
  <param>1000</param>
  <param>0</param>
  <param>0</param>
  <param>0</param>
  <param>java.nio.HeapByteBuffer[pos=0 lim=16384 cap=16384]</param>
</record>
<record>
  <date>2024-10-29T15:20:41.568907Z</date>
  <millis>1730215241568</millis>
  <nanos>907000</nanos>
  <sequence>38299</sequence>
  <logger>jdk.internal.httpclient.websocket.debug</logger>
  <level>FINE</level>
  <class>jdk.internal.net.http.websocket.MessageEncoder</class>
  <method>encodeClose</method>
  <thread>36</thread>
  <message>[HttpClient-2-SelectorManager] [30s 549ms] [Output] reason [pos=0 lim=0 cap=0]</message>
  <param>0</param>
  <param>0</param>
  <param>0</param>
</record>
<record>

Operating System

Intel Mac (but also seen this in our CI which is linux)

Selenium version

Java 4.22.0, Java 4.25.0

What are the browser(s) and version(s) where you see this issue?

Chrome 122, Chrome 125, Chrome 129

What are the browser driver(s) and version(s) where you see this issue?

Chrome 125.0.6422.141

Are you using Selenium Grid?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-needs-triagingA Selenium member will evaluate this soon!I-defectSomething is not working as intended

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions