Skip to content

New Firefox releases are provided in tar.xz instead of tar.bz2 #44

@GJFR

Description

@GJFR

While BugHog is used to downloading Firefox releases in tar.bz2 format, Firefox releases starting from v135 seem to be provided in tar.xz.
See:

BugHog crashes when attempting to download v135 releases and later.

Crash log:

[17-03-2025 16:06:56] [DEBUG] bci: Downloading binary for VersionState(version: 136, rev: 856816) from 'https://ftp.mozilla.org/pub/firefox/releases/136.0/linux-x86_64/en-US/firefox-136.0.tar.bz2'
[17-03-2025 16:06:58] [CRITICAL] bci.worker: An exception occurred during evaluation
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/tarfile.py", line 1961, in bz2open
    t = cls.taropen(name, mode, fileobj, **kwargs)
  File "/usr/local/lib/python3.13/tarfile.py", line 1910, in taropen
    return cls(name, mode, fileobj, **kwargs)
  File "/usr/local/lib/python3.13/tarfile.py", line 1768, in __init__
    self.firstmember = self.next()
                       ~~~~~~~~~^^
  File "/usr/local/lib/python3.13/tarfile.py", line 2703, in next
    raise e
  File "/usr/local/lib/python3.13/tarfile.py", line 2676, in next
    tarinfo = self.tarinfo.fromtarfile(self)
  File "/usr/local/lib/python3.13/tarfile.py", line 1318, in fromtarfile
    buf = tarfile.fileobj.read(BLOCKSIZE)
  File "/usr/local/lib/python3.13/bz2.py", line 172, in read
    return self._buffer.read(size)
           ~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "/usr/local/lib/python3.13/_compression.py", line 103, in read
    data = self._decompressor.decompress(rawblock, size)
OSError: Invalid data stream

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/app/bci/worker.py", line 26, in run
    evaluation_framework.evaluate(params, is_worker=True)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/bci/evaluations/evaluation_framework.py", line 32, in evaluate
    browser.pre_evaluation_setup()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/app/bci/browser/configuration/browser.py", line 59, in pre_evaluation_setup
    self.__fetch_binary()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/app/bci/browser/configuration/browser.py", line 78, in __fetch_binary
    self.binary.fetch_binary()
    ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/app/bci/browser/binary/binary.py", line 85, in fetch_binary
    self.download_binary()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/app/bci/browser/binary/vendors/firefox.py", line 54, in download_binary
    with tarfile.open(tar_file_path, "r:bz2") as tar_ref:
         ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/tarfile.py", line 1878, in open
    return func(name, filemode, fileobj, **kwargs)
  File "/usr/local/lib/python3.13/tarfile.py", line 1965, in bz2open
    raise ReadError("not a bzip2 file") from e
tarfile.ReadError: not a bzip2 file

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinggood first issueGood for newcomerspythonPull requests that update Python code

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions