Skip to content

Conversation

@raulcd
Copy link
Member

@raulcd raulcd commented Jan 19, 2026

Rationale for this change

nodejs 12 is currently being installed on conda. CI jobs are failing and or segfaulting due to azurite failing with old versions.

2026-01-13T18:32:39.6961900Z #15 [ 9/11] RUN /arrow/ci/scripts/install_azurite.sh
2026-01-13T18:32:39.9624124Z #15 0.417 Node.js version = v12.4.0
2026-01-13T18:32:42.2087322Z #15 2.663 npm WARN deprecated [email protected]: Rimraf versions prior to v4 are no longer supported
2026-01-13T18:32:42.3917601Z #15 2.846 npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
2026-01-13T18:32:51.4870197Z #15 11.94 npm WARN deprecated [email protected]: Glob versions prior to v9 are no longer supported
2026-01-13T18:32:51.7035681Z #15 12.01 npm WARN deprecated [email protected]: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
2026-01-13T18:33:02.1406491Z #15 22.59 /opt/conda/envs/arrow/bin/azurite -> /opt/conda/envs/arrow/lib/node_modules/azurite/dist/src/azurite.js
2026-01-13T18:33:02.3841290Z #15 22.60 /opt/conda/envs/arrow/bin/azurite-queue -> /opt/conda/envs/arrow/lib/node_modules/azurite/dist/src/queue/main.js
2026-01-13T18:33:02.3842792Z #15 22.60 /opt/conda/envs/arrow/bin/azurite-blob -> /opt/conda/envs/arrow/lib/node_modules/azurite/dist/src/blob/main.js
2026-01-13T18:33:02.3844216Z #15 22.60 /opt/conda/envs/arrow/bin/azurite-table -> /opt/conda/envs/arrow/lib/node_modules/azurite/dist/src/table/main.js
2026-01-13T18:33:02.3846002Z #15 22.66 npm WARN [email protected] requires a peer of applicationinsights-native-metrics@* but none is installed. You must install peer dependencies yourself.
2026-01-13T18:33:02.3847278Z #15 22.66 
2026-01-13T18:33:02.3847564Z #15 22.66 + [email protected]
2026-01-13T18:33:02.3848038Z #15 22.66 added 376 packages from 296 contributors in 20.644s
2026-01-13T18:33:02.3848830Z #15 22.69 /opt/conda/envs/arrow/bin/azurite
2026-01-13T18:33:02.8929329Z #15 23.35 /opt/conda/envs/arrow/lib/node_modules/azurite/node_modules/fs-extra/lib/util/async.js:14
2026-01-13T18:33:02.8930231Z #15 23.35         (err) => err ?? new Error('unknown error')
2026-01-13T18:33:02.8930740Z #15 23.35                       ^

The job on PyArrow was segfaulting due to an Exception being thrown but not catch. In general we were using Azure::Storage::StorageException but Azure::Core::Http::TransportException could also be thrown on some cases.
Bot are final but inherit from Azure::Core::RequestFailedException.

What changes are included in this PR?

  • Pin minimum nodejs version to 16 so the failure doesn't happen again.
  • Update catching Azure::Storage::StorageException to Azure::Core::RequestFailedException so Azure::Core::Http::TransportException is also catch.

Are these changes tested?

Yes on CI.

Are there any user-facing changes?

No

@raulcd
Copy link
Member Author

raulcd commented Jan 19, 2026

@github-actions crossbow submit test-conda-*

@github-actions
Copy link

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

@github-actions github-actions bot added the awaiting committer review Awaiting committer review label Jan 19, 2026
@github-actions
Copy link

Revision: 3fabe1d

Submitted crossbow builds: ursacomputing/crossbow @ actions-cd25c6296c

Task Status
test-conda-cpp GitHub Actions
test-conda-cpp-valgrind GitHub Actions
test-conda-python-3.10 GitHub Actions
test-conda-python-3.10-hdfs-2.9.2 GitHub Actions
test-conda-python-3.10-hdfs-3.2.1 GitHub Actions
test-conda-python-3.10-pandas-1.3.4-numpy-1.21.2 GitHub Actions
test-conda-python-3.11 GitHub Actions
test-conda-python-3.11-dask-latest GitHub Actions
test-conda-python-3.11-dask-upstream_devel GitHub Actions
test-conda-python-3.11-hypothesis GitHub Actions
test-conda-python-3.11-pandas-latest-numpy-latest GitHub Actions
test-conda-python-3.11-spark-master GitHub Actions
test-conda-python-3.12 GitHub Actions
test-conda-python-3.12-cpython-debug GitHub Actions
test-conda-python-3.12-pandas-latest-numpy-1.26 GitHub Actions
test-conda-python-3.12-pandas-latest-numpy-latest GitHub Actions
test-conda-python-3.13 GitHub Actions
test-conda-python-3.13-pandas-nightly-numpy-nightly GitHub Actions
test-conda-python-3.13-pandas-upstream_devel-numpy-nightly GitHub Actions
test-conda-python-3.14 GitHub Actions
test-conda-python-emscripten GitHub Actions

@raulcd raulcd marked this pull request as ready for review January 19, 2026 12:11
@raulcd raulcd marked this pull request as draft January 19, 2026 13:20
@raulcd
Copy link
Member Author

raulcd commented Jan 19, 2026

Moving this back to draft to investigate the segfault before fixing the nodejs version.

…age::StorageException so we also catch Azure::Core::Http::TransportException
@raulcd
Copy link
Member Author

raulcd commented Jan 19, 2026

@github-actions crossbow submit -g cpp

@github-actions
Copy link

Revision: 3ccfdb7

Submitted crossbow builds: ursacomputing/crossbow @ actions-d7c2a57735

Task Status
example-cpp-minimal-build-static GitHub Actions
example-cpp-minimal-build-static-system-dependency GitHub Actions
example-cpp-tutorial GitHub Actions
test-build-cpp-fuzz GitHub Actions
test-conda-cpp GitHub Actions
test-conda-cpp-valgrind GitHub Actions
test-debian-12-cpp-amd64 GitHub Actions
test-debian-12-cpp-i386 GitHub Actions
test-debian-experimental-cpp-gcc-15 GitHub Actions
test-fedora-42-cpp GitHub Actions
test-ubuntu-22.04-cpp GitHub Actions
test-ubuntu-22.04-cpp-20 GitHub Actions
test-ubuntu-22.04-cpp-bundled GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions
test-ubuntu-22.04-cpp-no-threading GitHub Actions
test-ubuntu-24.04-cpp GitHub Actions
test-ubuntu-24.04-cpp-bundled-offline GitHub Actions
test-ubuntu-24.04-cpp-gcc-13-bundled GitHub Actions
test-ubuntu-24.04-cpp-gcc-14 GitHub Actions
test-ubuntu-24.04-cpp-minimal-with-formats GitHub Actions
test-ubuntu-24.04-cpp-thread-sanitizer GitHub Actions

@raulcd raulcd changed the title GH-48894: [Python] Set minimum nodejs on conda env to 16 for Azurite to work GH-48894: [Python][C++] Set minimum nodejs on conda env to 16 for Azurite to work and use base Azure::Core::RequestFailedException instead of final Azure::Storage::StorageException Jan 20, 2026
@raulcd raulcd marked this pull request as ready for review January 20, 2026 08:40
@raulcd
Copy link
Member Author

raulcd commented Jan 20, 2026

@pitrou is this what you expected? About factoring out the exception-catching code we can follow on a different issue if you want, I am unsure what that would require.
I initially started this PR to fix our current CI failures only.

@raulcd raulcd requested a review from pitrou January 20, 2026 08:43
@pitrou
Copy link
Member

pitrou commented Jan 20, 2026

@pitrou is this what you expected?

Yes, it is. Did you check that it averted the crashes by turning them into proper errors?

About factoring out the exception-catching code we can follow on a different issue if you want, I am unsure what that would require.

Looking at the code, I'm not sure there's much to do about it, actually.

@raulcd
Copy link
Member Author

raulcd commented Jan 20, 2026

@github-actions crossbow submit test-conda-python-3.13

@github-actions
Copy link

Revision: b9b1ab6

Submitted crossbow builds: ursacomputing/crossbow @ actions-35c166620c

Task Status
test-conda-python-3.13 GitHub Actions

@raulcd
Copy link
Member Author

raulcd commented Jan 20, 2026

@github-actions crossbow submit test-conda-python-3.13

@github-actions
Copy link

Revision: a86bb98

Submitted crossbow builds: ursacomputing/crossbow @ actions-6ceafde0b6

Task Status
test-conda-python-3.13 GitHub Actions

@raulcd
Copy link
Member Author

raulcd commented Jan 20, 2026

Did you check that it averted the crashes by turning them into proper errors?

Yes, I did locally but I've pushed a job without the nodejs bump so we can see it there. Pytest finishes running all tests, it doesn't crash anymore but tests fail as expected:
https://github.com/ursacomputing/crossbow/actions/runs/21166071337/job/60871016940#step:6:6596

opt/conda/envs/arrow/lib/python3.13/site-packages/pyarrow/tests/test_fs.py:329: in azurefs
    fs.create_dir(container)
pyarrow/_fs.pyx:638: in pyarrow._fs.FileSystem.create_dir
    ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   OSError: Failed to create a container: pyarrow-filesystem: http://127.0.0.1:35357/devstoreaccount1/pyarrow-filesystem Azure Error: [] Fail to get a new connection for: http://127.0.0.1:35357. Could not connect to server

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants