Skip to content

Mozilla removed 32-bit linux builds of geckodriver in 0.37.0, causing test failures on 32-bit architectures #1594

Description

@mini-bomba

While making a minor change in alpinelinux' packaging scripts for wasm-pack, I've had the tests on x86 fail despite not actually packaging a new release of this software.

Here's a relevant snippet of the CI logs: (full logs here)

test webdriver::can_install_geckodriver ... FAILED
[...]
failures:
---- webdriver::can_install_geckodriver stdout ----
Created fixture at /builds/mini-bomba/aports/community/wasm-pack/src/wasm-pack-0.15.0/target/t/.tmp6vEhnn/wasm-pack
[INFO]: Getting geckodriver...
thread 'webdriver::can_install_geckodriver' (22378) panicked at tests/all/webdriver.rs:31:5:
assertion failed: webdriver::install_geckodriver(&cache, true).is_ok()
failures:
    webdriver::can_install_geckodriver
test result: FAILED. 80 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 128.60s

This error message wasn't very useful, so I traced down the test function and replaced the assertion on Result::is_ok() with a Result::unwrap() call, so that the error message would actually get printed and not ignored. This resulted in the following error:

failed to download from https://github.com/mozilla/geckodriver/releases/download/v0.37.0/geckodriver-v0.37.0-linux32.tar.gz

Caused by:
    https://github.com/mozilla/geckodriver/releases/download/v0.37.0/geckodriver-v0.37.0-linux32.tar.gz: status code 404

This pointed me towards the geckodriver repository, so I checked whether the expected release files were really missing - they indeed were, and in the notes of the most recent release I've found this:

Removed

Linux 32-bit builds have been discontinued.

Starting with Firefox 145, Mozilla no longer ships binaries for 32-bit (x86) Linux. As a result, geckodriver binaries for that platform are no longer provided either.

If you still need a 32-bit Linux build of geckodriver, you can install it via cargo install or cross-compile it yourself:

cargo build --target i686-unknown-linux-gnu

My suggestions:

  1. replace assertions on Result::is_ok with Result::unwrap in tests, or otherwise make sure the error messages don't get suppressed
  2. disable support for (and testing of) automatically downloading geckodriver on 32bit platforms, pin the version to the latest version with official builds, or switch to an alternative source for prebuilt versions of geckodriver.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions