This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new af1c67ed1e GH-50424: [CI] install Chrome latest for 
test-conda-python-emscripten (#50425)
af1c67ed1e is described below

commit af1c67ed1ec3b4608ecf9a99acc4bb40b44daf2e
Author: tadeja <[email protected]>
AuthorDate: Thu Jul 16 03:20:31 2026 +0200

    GH-50424: [CI] install Chrome latest for test-conda-python-emscripten 
(#50425)
    
    ### Rationale for this change
    Fix #50424 `Python Emscripten Crossbow` job with multiple failing points
    A) failing to install Chrome - `Requested Chrome major 148, but apt repo 
currently publishes 150.0.7871.100`,
    B) and underlying Abseil failure - `error: expected '(' before 
'ABSL_INTERNAL_CONSTEXPR_SINCE_CXX17'` 
[logB](https://github.com/ursacomputing/crossbow/actions/runs/28963702667/job/85941369345#step:6:2995)
    C) pytest 8.1.1 failing on three tests with the message - `E   TypeError: 
importorskip() got an unexpected keyword argument 'exc_type'` 
[logC](https://github.com/ursacomputing/crossbow/actions/runs/28972366846/job/85971005157#step:6:6354)
    
    The remaining intermittent issue be best dealt with in a follow up PR:
    D) intermittent `loadPyodide` / Selenium timeout hang - 
`selenium.common.exceptions.TimeoutException: Message: script timeout` 
[logD](https://github.com/ursacomputing/crossbow/actions/runs/28997397611/job/86049819728#step:6:6856)
 and [hang log with 
debug](https://github.com/ursacomputing/crossbow/actions/runs/29015193964/job/86108340808#step:6:7248)
    
    ### What changes are included in this PR?
    A) Changed `chrome_version: "148"` to `chrome_version: "latest"`
    B) Disabled zlib for protobuf build of the host in order to avoid conda 
include path overriding vendor Abseil headers.
    C) Added work-around for current Pyodide's bundled pytest version 8.1.1 
which lacks `importorskip(..., exc_type=...)`
    
    ### Are these changes tested?
    Yes, test-conda-python-emscripten job completed successfully on rerun. Some 
earlier runs hit the intermittent Chrome/Selenium timeout mentioned above.
    
    ### Are there any user-facing changes?
    No.
    
    * GitHub Issue: #50424
    
    Authored-by: Tadeja Kadunc <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 compose.yaml                                | 2 +-
 cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 +++-
 python/scripts/run_emscripten_tests.py      | 8 ++++++++
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/compose.yaml b/compose.yaml
index 6676a87bd5..6809d6994b 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -982,7 +982,7 @@ services:
         clang_tools: ${CLANG_TOOLS}
         llvm: ${LLVM}
         pyodide_version: "0.26.0"
-        chrome_version: "148"
+        chrome_version: "latest"
         selenium_version: "4.41.0"
         required_python_min: "(3,12)"
         python: ${PYTHON}
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake 
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 07054b4bb2..4eab2ab208 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -2073,7 +2073,9 @@ function(build_protobuf)
         "-DCMAKE_C_FLAGS="
         "-DCMAKE_INSTALL_PREFIX=${PROTOBUF_HOST_PREFIX}"
         -Dprotobuf_BUILD_TESTS=OFF
-        -Dprotobuf_DEBUG_POSTFIX=)
+        -Dprotobuf_DEBUG_POSTFIX=
+        # OFF to avoid conda include dirs leaking into vendored Abseil
+        -Dprotobuf_WITH_ZLIB=OFF)
     if(ABSL_VENDORED)
       # Force protobuf to reuse Arrow's already-extracted absl source
       # so we don't re-download and we don't have issues with multiple abseil.
diff --git a/python/scripts/run_emscripten_tests.py 
b/python/scripts/run_emscripten_tests.py
index 3cd7d5fd67..002698a77e 100644
--- a/python/scripts/run_emscripten_tests.py
+++ b/python/scripts/run_emscripten_tests.py
@@ -289,6 +289,14 @@ if "pyarrow" not in sys.modules:
     await pjs.loadPackage("numpy")
     await pjs.loadPackage("pandas")
     import pytest
+    import inspect
+    if "exc_type" not in inspect.signature(pytest.importorskip).parameters:
+        _original_importorskip = pytest.importorskip
+        def _importorskip(modname, minversion=None, reason=None, *,
+                          exc_type=ImportError):
+            return _original_importorskip(modname, minversion=minversion,
+                                          reason=reason)
+        pytest.importorskip = _importorskip
     import pandas # import pandas after pyarrow package load for pandas/pyarrow
                   # functions to work
 import pyarrow

Reply via email to