apache / arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
https://arrow.apache.org/
Apache License 2.0
14.61k stars 3.55k forks source link

[Release][Ruby][CI] Verification job fails for Ruby under conda #44268

Closed amoeba closed 1 month ago

amoeba commented 1 month ago

Describe the bug, including details regarding any error messages, version, and platform.

The verification job for Ruby with USE_CONDA=1 is failing see https://github.com/ursacomputing/crossbow/actions/runs/11092813842/job/30818318871.

The specific error is:

FileNotFoundError: [Errno 2] No such file or directory: '/tmp/arrow-HEAD.dAHUd/mambaforge/envs/conda-source/bin/glib-mkenums'

I can reproduce this locally with:

 archery docker run \
          -e VERIFY_VERSION="" \
          -e VERIFY_RC="" \
          -e TEST_DEFAULT=0 \
          -e TEST_RUBY=1 \
          conda-verify-rc

Component(s)

Continuous Integration, Release, Ruby

amoeba commented 1 month ago

When I pause the job locally and try to run glib-mkenums directly, I get:

root@ed232b035d9f:/arrow-tmp# /arrow-tmp/mambaforge/envs/conda-source/bin/glib-mkenums
bash: /arrow-tmp/mambaforge/envs/conda-source/bin/glib-mkenums: /home/conda/feedstock_root/build_artifacts/glib-split_1727379927883/_build_env/bin/python3.12: bad interpreter: No such file or directory

The referenced shebang looks wrong to me:

root@ed232b035d9f:/arrow-tmp# head -n 1 /arrow-tmp/mambaforge/envs/conda-source/bin/glib-mkenums
#!/home/conda/feedstock_root/build_artifacts/glib-split_1727379927883/_build_env/bin/python3.12

I now see that an issue has been filed on glib-feedstock about this.

amoeba commented 1 month ago

I'm trying just pinning the glib version the release verification script uses which makes lets the script continue but now I'm getting an issue during bundling and installing glib2:


$ TEST_DEFAULT=0 TEST_RUBY=1 /arrow/dev/release/verify-release-candidate.sh
---snip---
Installing test-unit 3.6.2
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /arrow/c_glib/vendor/bundle/ruby/3.3.0/gems/glib2-4.2.4/ext/glib2
/arrow-tmp/mambaforge/envs/conda-source/bin/ruby extconf.rb
---snip---
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find glib-enum-types.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib-bytes.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib-gc.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib-option.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib-variant-dict.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib-variant-type.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib-variant.o: No such file or directory
/arrow-tmp/mambaforge/envs/conda-source/bin/../lib/gcc/aarch64-conda-linux-gnu/13.3.0/../../../../aarch64-conda-linux-gnu/bin/ld:
cannot find rbglib.o: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:265: glib2.so] Error 1

make failed, exit code 2
---snip---
amoeba commented 1 month ago

The above was just caused by a messy environment inside my container. After deleting $ARROW_TMPDIR, pinning glib works. I created at PR at https://github.com/apache/arrow/pull/44270 which fixes this. Once glib pushes a new release we can unpin our version.

amoeba commented 1 month ago

Issue resolved by pull request 44270 https://github.com/apache/arrow/pull/44270