apache / arrow-rs

Official Rust implementation of Apache Arrow
https://arrow.apache.org/
Apache License 2.0
2.62k stars 802 forks source link

Don't attempt to run 64-bit tests on 32-bit platforms #6678

Open drauschenbach opened 2 weeks ago

drauschenbach commented 2 weeks ago

Which issue does this PR close?

Closes #109.

I'm not qualified to enable arm32v7 in the CI environment, but this PR performs periodic maintenance to get all the tests to pass.

Rationale for this change

Tests should pass on the world's top 3 best-selling computers of all time. Also Arrow is great for edge computing, where hardware refresh cycles are considerably longer than in the datacenter.

What changes are included in this PR?

Tests that are specifically for 64-bit platforms are no longer attempted on 32-bit platforms.

Are there any user-facing changes?

Hopefully not. If so, I made a mistake.

drauschenbach commented 2 weeks ago

Testing on Raspberry Pi 4B

Running in armhf mode. The easy way to put it into that mode is by installing Raspbian 10.

$ cargo test
(all tests pass)

Environment

$ dpkg --print-architecture
armhf

$ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
tustvold commented 2 weeks ago

I think if we want to support 32-bit platforms we probably want to come up with a holistic plan first. As it stands we don't test against 32-bit architectures and so I likely lots of things won't work correctly.

I suspect there are probably people in the ecosystem interested in this, e.g. for WASM32, but I think we should ensure we're all on the same page and have a coherent plan of action, including for ongoing maintenance.

If this is something you want to drive forwards, perhaps you might file an issue to start the discussion? Unfortunately I have very limited capacity atm.

drauschenbach commented 2 weeks ago

I think if we want to support 32-bit platforms we probably want to come up with a holistic plan first. As it stands we don't test against 32-bit architectures and so I likely lots of things won't work correctly.

I suspect there are probably people in the ecosystem interested in this, e.g. for WASM32, but I think we should ensure we're all on the same page and have a coherent plan of action, including for ongoing maintenance.

If this is something you want to drive forwards, perhaps you might file an issue to start the discussion? Unfortunately I have very limited capacity atm.

The comprehensive 32-bit support is already being tracked here: https://github.com/apache/arrow-rs/issues/262. This PR only attempts to close a bug about broken tests.

tustvold commented 2 weeks ago

This PR only attempts to close a bug about broken tests

Right, but I'm pretty lukewarm about simply disabling failing tests, many are legitimate bugs. Not only could this mislead people about the current state of support, it would also likely complicate any potential future initiative to actually provide proper support for such architectures.

drauschenbach commented 2 weeks ago

Right, but I'm pretty lukewarm about simply disabling failing tests, many are legitimate bugs. Not only could this mislead people about the current state of support, it would also likely complicate any potential future initiative to actually provide proper support for such architectures.

Thanks for the suggestion @tustvold. I've started the discussion here: https://github.com/apache/arrow-rs/discussions/6681.