Skip to content

GH-50597: [CI] Retry Chrome PyArrow load and fix Snappy Emscripten configure#50598

Open
tadeja wants to merge 4 commits into
apache:mainfrom
tadeja:timeout-py-emscripten
Open

GH-50597: [CI] Retry Chrome PyArrow load and fix Snappy Emscripten configure#50598
tadeja wants to merge 4 commits into
apache:mainfrom
tadeja:timeout-py-emscripten

Conversation

@tadeja

@tadeja tadeja commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Rationale for this change

Fix #50597. Nightly Crossbow job test-conda-python-emscripten sometimes finishes with success like 2026-07-18 Docker Test conda-python-emscripten

But often hangs like 2026-07-19 Docker Test conda-python-emscripten
and 2026-07-20 Docker Test conda-python-emscripten

    driver.load_arrow()
...
selenium.common.exceptions.TimeoutException: Message: script timeout

Additionally, main nightly started failing during snappy_ep configure with CMake 4.4: CMake Error: The warning category "linkflags" is not known.

What changes are included in this PR?

import TimeoutException, introduce 300s timeout + 3 attempts around load_arrow() and full Chrome restart on timeout,
ignore harmless BrokenPipeError / ConnectionResetError when Chrome has to be killed mid-download for retry.

Also remove the redundant standalone -Wno-error=linkflags CMake argument from Snappy's Emscripten configure arguments. The flag remains in CMAKE_SHARED_LINKER_FLAGS

Are these changes tested?

Yes, locally by docker compose run --rm -e SETUPTOOLS_SCM_PRETEND_VERSION=26.0.0.dev0 conda-python-emscripten.
Example test run hit the PyArrow load timeout once, restarted Chrome, and then completed successfully.

Are there any user-facing changes?

No.

@github-actions github-actions Bot added the awaiting review Awaiting review label Jul 22, 2026
@github-actions

Copy link
Copy Markdown

⚠️ GitHub issue #50597 has been automatically assigned in GitHub to PR creator.

@tadeja

tadeja commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit test-*-emscripten

@github-actions

Copy link
Copy Markdown

Revision: 2c1cf06

Submitted crossbow builds: ursacomputing/crossbow @ actions-3fa745b201

Task Status
test-conda-python-emscripten GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions

@tadeja

tadeja commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator Author

@github-actions crossbow submit test-*-emscripten

@github-actions

Copy link
Copy Markdown

Revision: fa439d8

Submitted crossbow builds: ursacomputing/crossbow @ actions-8caa37cbbf

Task Status
test-conda-python-emscripten GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions

@tadeja

tadeja commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator Author

Additionally, a new build failure appeared on main: 2026-07-21 Docker Test conda-python-emscripten

[201/1126] Performing configure step for 'snappy_ep'
FAILED: [code=1] snappy_ep-prefix/src/snappy_ep-stamp/snappy_ep-configure ...

   '/opt/conda/envs/arrow/bin/cmake' ... ... '-DCMAKE_SHARED_LINKER_FLAGS=-sSIDE_MODULE=1 -sWASM_BIGINT=1 -fexceptions -Wno-error=linkflags' '-Wno-error=linkflags' ...
...
-- stderr output is:
CMake Error: The warning category "linkflags" is not known.
CMake Error: Run 'cmake --help' for all supported options.

CMake Error at /build/cpp/snappy_ep-prefix/src/snappy_ep-stamp/snappy_ep-configure-Release.cmake:47 (message):
  Stopping after outputting logs.

Also seen in 1st run in this PR 2026-07-22 Docker Test conda-python-emscripten

It turns out that the flag is fine inside linker flags,
However, the second occurrence is a standalone CMake argument "-Wno-error=linkflags".
Now with newer CMake 4.4 warning options are parsed as diagnostic category cmake -Wno-error=<diagnostic-category> and linkflags is not a CMake diagnostic category: https://cmake.org/cmake/help/latest/release/4.4.html#id3

Build failure is resolved with removal of the standalone CMake argument

Successful 2nd run in this PR 2026-07-22 Docker Test conda-python-emscripten !

@tadeja
tadeja marked this pull request as ready for review July 22, 2026 14:50
@tadeja
tadeja requested review from AlenkaF, raulcd and rok as code owners July 22, 2026 14:50
@tadeja tadeja changed the title GH-50597: [CI] Retry Chrome PyArrow load in test-conda-python-emscripten GH-50597: [CI] Retry Chrome PyArrow load and fix Snappy configure in test-conda-python-emscripten Jul 22, 2026
@tadeja tadeja changed the title GH-50597: [CI] Retry Chrome PyArrow load and fix Snappy configure in test-conda-python-emscripten GH-50597: [CI] Retry Chrome PyArrow load and fix Snappy Emscripten configure Jul 22, 2026

@raulcd raulcd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! I have a couple minor questions

def handle(self):
try:
super().handle()
except (BrokenPipeError, ConnectionResetError):

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add a comment around why we are ignoring these two exceptions?

flush=True)
self.restart_browser()
finally:
self.driver.set_script_timeout(1200)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we set the script timeout to 1200 unconditionally? If an exception is after attempt==2 this isn't relevant right?

@github-actions github-actions Bot added awaiting review Awaiting review awaiting changes Awaiting changes and removed awaiting review Awaiting review labels Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] nightly job test-conda-python-emscripten intermittently times out loading PyArrow in Chrome

2 participants