Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Symbol not found errors when using the rerun-built arrow-cpp #4095

Closed
jleibs opened this issue Oct 30, 2023 · 1 comment
Closed

Symbol not found errors when using the rerun-built arrow-cpp #4095

jleibs opened this issue Oct 30, 2023 · 1 comment
Assignees
Labels
🪳 bug Something isn't working 🌊 C++ API C/C++ API specific
Milestone

Comments

@jleibs
Copy link
Member

jleibs commented Oct 30, 2023

Error

A user reported the following error when trying to run one of the examples:

./example_minimal
dyld[24822]: Symbol not found: __ZN5arrow11dense_unionENSt3__16vectorINS0_10shared_ptrINS_5FieldEEENS0_9allocatorIS4_EEEENS1_IaNS5_IaEEEE

Known workaround

It appears we can work around this issue by specifying

-DRERUN_ARROW_LINK_SHARED=off

Speculation

User may have a system instrall of arrow-cpp that's getting picked up at runtime instead of the version we are building.

  • I've confirmed this can happen on Linux if you happen to have a system install of arrow-cpp that matches the version we are compiling.
@jleibs jleibs added 🪳 bug Something isn't working 🌊 C++ API C/C++ API specific labels Oct 30, 2023
@jleibs jleibs added this to the 0.10.1 milestone Oct 30, 2023
@jleibs jleibs changed the title Unexpected Symbol not found errors when using the rerun-built arrow-cpp Symbol not found errors when using the rerun-built arrow-cpp Oct 30, 2023
@jleibs jleibs self-assigned this Oct 31, 2023
emilk added a commit that referenced this issue Oct 31, 2023
…inking of arrow (#4101)

### What
- Partial workarouind for: #4095

Shared libraries have some sharp corners, especially when the libraries
may be available as system libraries, which take precedence.

### Note for testing:
Because this only changes the *default* if you have an existing build
folder, this will do nothing. The default will have been cached as a
persisted configuration option. To test locally either purge your build
folder or manually invoke cmake with `-DRERUN_ARROW_LINK_SHARED=off`

After running `just cpp-test`, confirm that `ldd
build/rerun_cpp/tests/rerun_sdk_tests` does not include `arrow`

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested [demo.rerun.io](https://demo.rerun.io/pr/4101) (if
applicable)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

## Test
* [x] Mac
* [x] Windows
* ~Linux (CI)~

- [PR Build Summary](https://build.rerun.io/pr/4101)
- [Docs
preview](https://rerun.io/preview/29b846970f5188aa8a90e031a9ec09e9e7a68fee/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/29b846970f5188aa8a90e031a9ec09e9e7a68fee/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://ref.rerun.io/dev/bench/)
- [Wasm size tracking](https://ref.rerun.io/dev/sizes/)

---------

Co-authored-by: Emil Ernerfeldt <[email protected]>
@emilk
Copy link
Member

emilk commented Nov 1, 2023

This has now been mitigated. We now link with arrow statically by default:

@emilk emilk closed this as completed Nov 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🪳 bug Something isn't working 🌊 C++ API C/C++ API specific
Projects
None yet
Development

No branches or pull requests

2 participants