Skip to content

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

Closed
@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