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

GH-38798: [Integration] Enable C Data Interface integration testing on Rust #38799

Merged
merged 2 commits into from
Nov 21, 2023

Conversation

pitrou
Copy link
Member

@pitrou pitrou commented Nov 20, 2023

Rationale for this change

Arrow Rust has added entrypoints for C Data Interface integration testing, so this can now be enabled on our side:
apache/arrow-rs#5080

Are these changes tested?

Yes.

Are there any user-facing changes?

No.

Copy link

⚠️ GitHub issue #38798 has been automatically assigned in GitHub to PR creator.

@github-actions github-actions bot added the awaiting review Awaiting review label Nov 20, 2023
return True

def record_allocation_state(self):
# FIXME is it possible to measure the amount of Rust-allocated memory?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to add your name or an issue ID to this or is it fine to keep it as is in these scripts?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can open an issue, though this depends on Rust exposing appropriate primitives:
apache/arrow-rs#5080 (comment)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I filed #38822

raise RuntimeError(
f"Rust C Data Integration call failed: {error}")
finally:
self.dll.arrow_rs_free_error(rs_error)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cand self.ffi.string(..) fail and if that happens is it safe to pass rs_error to arrow_rs_free_error in the finally block?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's unrelated. rs_error is valid regardless of whether self.ffi.string fails or not (I suppose it can raise MemoryError if it fails allocating the Python bytestring, though that's highly unlikely).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@github-actions github-actions bot added awaiting committer review Awaiting committer review and removed awaiting review Awaiting review labels Nov 20, 2023
@pitrou pitrou force-pushed the rust-cdata-integration branch from dde5927 to f0ce845 Compare November 21, 2023 11:09
@pitrou
Copy link
Member Author

pitrou commented Nov 21, 2023

Thanks for the review @felipecrv ! I'm going to merge now.

@pitrou pitrou merged commit 9a36c42 into apache:main Nov 21, 2023
@pitrou pitrou removed the awaiting committer review Awaiting committer review label Nov 21, 2023
@pitrou pitrou deleted the rust-cdata-integration branch November 21, 2023 13:17
@pitrou
Copy link
Member Author

pitrou commented Nov 21, 2023

@tustvold Hopefully this will work fine on the arrow-rs repo.

Copy link

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit 9a36c42.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details. It also includes information about 1 possible false positive for unstable benchmarks that are known to sometimes produce them.

@tustvold
Copy link
Contributor

Looks like it might not be quite working - https://github.com/apache/arrow-rs/actions/runs/6954459872/job/18921320582#step:10:1

@pitrou
Copy link
Member Author

pitrou commented Nov 22, 2023

@tustvold Sorry. Since you're not using the docker setup, you have to set ARROW_RUST_EXE_PATH explicitly. See

ARROW_RUST_EXE_PATH: /build/rust/debug

@tustvold
Copy link
Contributor

Thank you that seems to have done the trick 👍

dgreiss pushed a commit to dgreiss/arrow that referenced this pull request Feb 19, 2024
…ting on Rust (apache#38799)

### Rationale for this change

Arrow Rust has added entrypoints for C Data Interface integration testing, so this can now be enabled on our side:
apache/arrow-rs#5080

### Are these changes tested?

Yes.

### Are there any user-facing changes?

No.
* Closes: apache#38798

Authored-by: Antoine Pitrou <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Integration] Enable C Data Interface integration testing on Rust
3 participants