-
Notifications
You must be signed in to change notification settings - Fork 188
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Build the AWS SDK with hidden symbols. (#5223)
[SC-49529](https://app.shortcut.com/tiledb-inc/story/49529/core-abort-trap-due-to-aws-sdk-pyarrow-tiledb-interaction-again) It has been noticed that the `tiledb` PyPI package weirdly interacts with `pyarrow` and causes aborts when `pyarrow` gets `import`ed first and we make an S3 operation with `tiledb`, and conversely when `tiledb` gets `import`ed first and we make an S3 operation with `pyarrow`. After some investigations, it was theorized that the problem would be fixed if the AWS SDK in `pyarrow` was built with `-fvisibility=hidden`, which was verified by building a `tiledb` wheel with such configuration and testing that the converse case does no longer abort. Turns out however, that hiding the symbols from `tiledb` also fixes the _original_ case, which means that we don't have to change Arrow. This PR updates all macOS and Linux[^1] vcpkg triplets to pass the CMake equivalent of `-fvisibility=hidden` when building all ports that start with `aws-`. Other ports remain unchanged. The long-term fix might be to update the AWS SDK itself to build with `-fvisibility=hidden`. I don't think there will be any problems since it explicitly marks all the APIs it needs to export. Validated on macOS-arm64. To validate it yourself, you can `pip install` [one of the wheels I built with this change applied](https://github.com/teo-tsirpanis/TileDB-Py/actions/runs/10171044013), and run the following script: ```python import pyarrow import tiledb a = tiledb.open("s3://<bucket>/debug/a1") ``` [^1]: As a precaution, even though the bug has been observed so far on macOS. Windows is not susceptible, it always hides symbols by default in DLLs. --- TYPE: BUG DESC: Fix symbol clashes between `tiledb` and `pyarrow` by building the AWS SDK with its internal symbols hidden.
- Loading branch information
1 parent
378c073
commit 535097f
Showing
12 changed files
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters