[openstreetmap/openstreetmap-website] NodeJS versions are out of sync again (Issue #5010)
Emin Kocan
notifications at github.com
Wed Jul 31 22:04:49 UTC 2024
Since I couldn't get the build working on Ubuntu 24.04, I tried using a Docker image based on Debian 12.6. The build itself works fine, but when running tests, I encounter Selenium errors, specifically:
`Selenium::WebDriver::Error::InvalidSessionIdError: Tried to run command without establishing a connection`
After some investigation with a colleague, we discovered that the issue arises from the parallelization of tests. Reducing the number of processors used during testing to 1 or 2 resolves the issue, but running tests with the default settings results in errors.
**Few remarks:**
- Could this issue be related to the OS itself? Has anyone encountered a similar problem when running on Ubuntu?
- Does it make sense to push forward with Debian and investigate this further, or should we focus on making Ubuntu 24.04 work? There are some open issues with `mini_racer` during the container build, which might be related to the failures encountered during `bundle install`.
---
#### Logs:
```bash
..........................E
Error:
UserSignupTest#test_Show_OpenID_form_when_OpenID_provider_button_is_clicked:
Selenium::WebDriver::Error::UnknownError: Failed to decode response from marionette
test/system/user_signup_test.rb:15:in `block in <class:UserSignupTest>'
Error:
UserSignupTest#test_Show_OpenID_form_when_OpenID_provider_button_is_clicked:
Selenium::WebDriver::Error::InvalidSessionIdError: Tried to run command without establishing a connection
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:62:in `add_cause'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:41:in `error'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/common.rb:101:in `new'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/common.rb:101:in `create_response'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/common.rb:67:in `call'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/bridge.rb:675:in `execute'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/bridge.rb:292:in `screenshot'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/driver.rb:333:in `screenshot'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:58:in `screenshot_as'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:60:in `screenshot_as'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `block in save_screenshot'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `open'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `save_screenshot'
/var/lib/gems/3.1.0/gems/capybara-3.40.0/lib/capybara/selenium/driver.rb:152:in `save_screenshot'
/var/lib/gems/3.1.0/gems/capybara-3.40.0/lib/capybara/session.rb:748:in `block in save_screenshot'
<internal:kernel>:90:in `tap'
/var/lib/gems/3.1.0/gems/capybara-3.40.0/lib/capybara/session.rb:748:in `save_screenshot'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:106:in `save_image'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:36:in `take_screenshot'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:47:in `take_failed_screenshot'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb:8:in `before_teardown'
Error:
UserSignupTest#test_Show_OpenID_form_when_OpenID_provider_button_is_clicked:
Selenium::WebDriver::Error::InvalidSessionIdError: Tried to run command without establishing a connection
test/application_system_test_case.rb:22:in `after_teardown'
bin/rails test test/system/user_signup_test.rb:12
E
Error:
UserSignupTest#test_Sign_up_from_login_page:
Selenium::WebDriver::Error::UnknownError: Failed to decode response from marionette
test/system/user_signup_test.rb:7:in `block in <class:UserSignupTest>'
Error:
UserSignupTest#test_Sign_up_from_login_page:
Selenium::WebDriver::Error::InvalidSessionIdError: Tried to run command without establishing a connection
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:62:in `add_cause'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:41:in `error'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/common.rb:101:in `new'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/common.rb:101:in `create_response'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/http/common.rb:67:in `call'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/bridge.rb:675:in `execute'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/remote/bridge.rb:292:in `screenshot'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/driver.rb:333:in `screenshot'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:58:in `screenshot_as'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:60:in `screenshot_as'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `block in save_screenshot'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `open'
/var/lib/gems/3.1.0/gems/selenium-webdriver-4.23.0/lib/selenium/webdriver/common/takes_screenshot.rb:39:in `save_screenshot'
/var/lib/gems/3.1.0/gems/capybara-3.40.0/lib/capybara/selenium/driver.rb:152:in `save_screenshot'
/var/lib/gems/3.1.0/gems/capybara-3.40.0/lib/capybara/session.rb:748:in `block in save_screenshot'
<internal:kernel>:90:in `tap'
/var/lib/gems/3.1.0/gems/capybara-3.40.0/lib/capybara/session.rb:748:in `save_screenshot'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:106:in `save_image'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:36:in `take_screenshot'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:47:in `take_failed_screenshot'
/var/lib/gems/3.1.0/gems/actionpack-7.1.3.4/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb:8:in `before_teardown'
Error:
UserSignupTest#test_Sign_up_from_login_page:
Selenium::WebDriver::Error::InvalidSessionIdError: Tried to run command without establishing a connection
test/application_system_test_case.rb:22:in `after_teardown'
```
#### Docker Image:
```Dockerfile
FROM debian:12.6
ENV DEBIAN_FRONTEND=noninteractive
# Install system packages then clean up to minimize image size
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
build-essential \
curl \
default-jre-headless \
file \
git-core \
gpg-agent \
libarchive-dev \
libffi-dev \
libgd-dev \
libpq-dev \
libsasl2-dev \
libvips-dev \
libxml2-dev \
libxslt1-dev \
libyaml-dev \
locales \
postgresql-client \
ruby \
ruby-dev \
ruby-bundler \
software-properties-common \
tzdata \
unzip \
nodejs \
npm
# Install yarn globally
RUN npm install --global yarn
# Install geckodriver and firefox
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates curl firefox-esr \
&& curl -L https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz | tar xz -C /usr/local/bin
# Install compatible Osmosis to help users import sample data in a new instance
RUN curl -OL https://github.com/openstreetmap/osmosis/releases/download/0.47.2/osmosis-0.47.2.tgz \
&& tar -C /usr/local -xzf osmosis-0.47.2.tgz
ENV DEBIAN_FRONTEND=dialog
# Setup app location
RUN mkdir -p /app
WORKDIR /app
# Install Ruby packages
ADD Gemfile Gemfile.lock /app/
RUN bundle install
# Install NodeJS packages using yarn
ADD package.json yarn.lock /app/
ADD bin/yarn /app/bin/
RUN bundle exec bin/yarn install
```
--
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/5010#issuecomment-2261537069
You are receiving this because you are subscribed to this thread.
Message ID: <openstreetmap/openstreetmap-website/issues/5010/2261537069 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20240731/26669e01/attachment-0001.htm>
More information about the rails-dev
mailing list