Skip to content

[🐛 Bug]: selenium-manager segmentation fault #11717

@benhutton

Description

@benhutton

What happened?

TLDR: When running selenium-manager, I get a segmentation fault.

Long version: When running my ruby rspec capybara tests, I get errors like this:

7) email subscriptions sign up for lists Failure/Error: visit '/' NoMethodError: undefined method `positive?' for nil:NilClass if status.exitstatus.positive? ^^^^^^^^^^ # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/selenium_manager.rb:80:in `run' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/selenium_manager.rb:41:in `driver_path' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/service.rb:107:in `binary_path' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/service.rb:74:in `initialize' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/service.rb:32:in `new' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/service.rb:32:in `chrome' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/chrome/driver.rb:35:in `initialize' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/driver.rb:47:in `new' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver/common/driver.rb:47:in `for' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/lib/selenium/webdriver.rb:88:in `for' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/selenium/driver.rb:83:in `browser' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/selenium/driver.rb:104:in `visit' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/session.rb:280:in `visit' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/dsl.rb:52:in `call' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/dsl.rb:52:in `visit' # /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rspec-rails-6.0.1/lib/rspec/rails/example/feature_example_group.rb:29:in `visit' # ./spec/features/homepage/email_subscriptions_spec.rb:88:in `block (2 levels) in <top (required)>' 

That got me playing around with https://github.com/SeleniumHQ/selenium/blob/trunk/rb/lib/selenium/webdriver/common/selenium_manager.rb#L41. When I run selenium-manager directly (see "Relevant log output" section), I get a segfault, which is probably messing with Open3 and causing the error that I'm seeing.

How can we reproduce the issue?

See the relevant log output. I am running the selenium-manager executable out of my ruby gem's bin directory. I see the same issue for both chromedriver and geckodriver.

Relevant log output

$ /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/bin/linux/selenium-manager --driver chromedriver --trace TRACE Reading metadata from /home/ben/.cache/selenium/selenium-manager.json DEBUG Using shell command to find out chrome version DEBUG Running command: "google-chrome --version" DEBUG Output: "Google Chrome 110.0.5481.177 " DEBUG The version of chrome is 110.0.5481.177 TRACE Writing metadata to /home/ben/.cache/selenium/selenium-manager.json DEBUG Detected browser: chrome 110 TRACE Reading metadata from /home/ben/.cache/selenium/selenium-manager.json DEBUG Reading chromedriver version from https://chromedriver.storage.googleapis.com/LATEST_RELEASE_110 [1] 296300 segmentation fault (core dumped) --driver chromedriver --trace $ /home/ben/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.1/bin/linux/selenium-manager --driver geckodriver --trace TRACE Reading metadata from /home/ben/.cache/selenium/selenium-manager.json DEBUG Using shell command to find out firefox version DEBUG Running command: "firefox -v" DEBUG Output: "Mozilla Firefox 110.0" DEBUG The version of firefox is 110.0 TRACE Writing metadata to /home/ben/.cache/selenium/selenium-manager.json DEBUG Detected browser: firefox 110 TRACE Reading metadata from /home/ben/.cache/selenium/selenium-manager.json [1] 297570 segmentation fault (core dumped) --driver geckodriver --trace

Operating System

Ubuntu 22.10

Selenium version

Ruby 4.8.1

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

Google Chrome 110.0.5481.177 and Mozilla Firefox 110.0

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

I'm not sure selenium-manager gets far enough

Are you using Selenium Grid?

I don't think so

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-rustRust code is mostly Selenium ManagerI-defectSomething is not working as intended

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions