apache / arrow-rs

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

`parquet / Build wasm32 (pull_request)` CI check failing on main #5565

Closed alamb closed 5 months ago

alamb commented 5 months ago

Describe the bug parquet / Build wasm32 (pull_request) CI check is failing on main , evenwi

To Reproduce Make a PR with no code changes, for example https://github.com/apache/arrow-rs/pull/5564

It fails like https://github.com/apache/arrow-rs/actions/runs/8474125669/job/23219908414?pr=5564

Run cargo build -p parquet --target wasm32-unknown-unknown
  cargo build -p parquet --target wasm3[2](https://github.com/apache/arrow-rs/actions/runs/8474125669/job/23219908414?pr=5564#step:6:2)-unknown-unknown
  shell: sh -e {0}
  env:
    RUSTFLAGS: -C debuginfo=1
    RUST_BACKTRACE: 1
   Compiling autocfg v1.2.0
   Compiling libm v0.2.8
   Compiling libc v0.2.15[3](https://github.com/apache/arrow-rs/actions/runs/8474125669/job/23219908414?pr=5564#step:6:3)
...
Compiling arrow-cast v51.0.0 (/__w/arrow-rs/arrow-rs/arrow-cast)
The following warnings were emitted during compilation:

warning: zstd-sys@2.0.10+zstd.1.5.6: In file included from zstd/lib/common/zstd_common.c:18:
warning: zstd-sys@2.0.10+zstd.1.5.6: In file included from zstd/lib/common/zstd_internal.h:35:
warning: zstd-sys@2.0.10+zstd.1.5.6: zstd/lib/common/xxhash.h:3157:22: error: called object type 'int' is not a function or function pointer
warning: zstd-sys@2.0.10+zstd.1.5.6:     XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t));
warning: zstd-sys@2.0.10+zstd.1.5.6:     ~~~~~~~~~~~~~~~~~^
warning: zstd-sys@2.0.10+zstd.1.5.6: zstd/lib/common/xxhash.h:3600:22: error: called object type 'int' is not a function or function pointer
warning: zstd-sys@2.0.10+zstd.1.5.6:     XXH_STATIC_ASSERT(sizeof(XXH[64](https://github.com/apache/arrow-rs/actions/runs/8474125669/job/23219908414?pr=5564#step:6:65)_canonical_t) == sizeof(XXH64_hash_t));
warning: zstd-sys@2.0.10+zstd.1.5.6:     ~~~~~~~~~~~~~~~~~^
warning: zstd-sys@2.0.10+zstd.1.5.6: 2 errors generated.
...

Expected behavior CI checks should pass when no code is chanegd

Additional context Reported by @XiangpengHao on https://github.com/apache/arrow-rs/pull/5564

Jefffrey commented 5 months ago

(Just some random notes as I investigate a bit)

Success: https://github.com/apache/arrow-rs/actions/runs/8441272186/job/23120055830

Failure: https://github.com/apache/arrow-rs/actions/runs/8466052041/job/23193980665

Also of note: https://github.com/gyscos/zstd-rs/issues/269

Edit: seems like it is due to bump from zstd-sys v2.0.9+zstd.1.5.5 -> zstd-sys v2.0.10+zstd.1.5.6

See https://github.com/apache/arrow-rs/pull/5567

kylebarron commented 5 months ago

The shim defining XXH_STATIC_ASSERT is pretty old. So my guess is that zstd.1.5.5 -> zstd.1.5.6 used XXH_STATIC_ASSERT in a new way that's incompatible with the shim?

alamb commented 5 months ago

Thank you @kylebarron and @Jefffrey for debugging and fixing this issue

tustvold commented 4 months ago

label_issue.py automatically added labels {'arrow'} from #5525

tustvold commented 4 months ago

label_issue.py automatically added labels {'parquet'} from #5567

alamb commented 3 months ago

This may be another symptom of https://github.com/apache/arrow/issues/41637 (aka a really old glibc version in the integration tests)