-
Notifications
You must be signed in to change notification settings - Fork 4k
GH-46704: [C++] Fix OSS-Fuzz build failure #46706
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
Conversation
PR apache#46408 changed by mistake list-view IPC tests to use the same data as list tests. This was detected as a duplicate corpus file by the OSS-Fuzz CI build. This PR also includes a fix for a regression in the CUDA tests, due to reading non-CPU memory.
|
@github-actions crossbow submit -g cpp |
|
Revision: 7ee42d1 Submitted crossbow builds: ursacomputing/crossbow @ actions-4d70c06e41 |
|
@brunal FYI. I should have caught this during code review :) |
|
Thank you for cleaning up after me! |
|
Any other comments @kou ? |
kou
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
| const int64_t required_bytes = sizeof(offset_type) * (array.length() + 1); | ||
|
|
||
| offset_type first_offset = 0; | ||
| RETURN_NOT_OK(MemoryManager::CopyBufferSliceToCPU( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I'll need some context here. Is this function supposed to be able to deal with non-CPU arrays? Does this rule apply to other functions in this source file too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's supposed to.
| if (!array.data()->buffers[1]->is_cpu()) { | ||
| return Status::NotImplemented("Rebasing non-CPU offsets"); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two questions:
- Is this error handling necessary to fix the "CUDA tests" mentioned in the PR description?
- It appears that if the CUDA tests were failing with accessing the non-CPU
first_offset, and the aboveMemoryManager::CopyBufferSliceToCPUis supposed to fix it, wouldn't this check fail the tests again withUnimplemented? (I assume the said tests are exercising non-CPU buffers withfirst_offset > 0.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Yes
- This codepath is only taken with a non-zero first offset, but the CUDA tests don't exercise that (otherwise they would have been crashing on git main too)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've opened #46747 for this.
WillAyd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
|
After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit 5f7d885. There were 65 benchmark results with an error:
There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 6 possible false positives for unstable benchmarks that are known to sometimes produce them. |
### Rationale for this change PR apache#46408 included a typo that changed list-view IPC tests to use the same data as list tests. This was detected as a duplicate corpus file by the OSS-Fuzz CI build. ### What changes are included in this PR? Undo mistake that led to using the same test data for lists and list-views. Also fix a regression in the CUDA tests, due to reading non-CPU memory when fetching the first offset in a list/binary array. ### Are these changes tested? Yes. ### Are there any user-facing changes? No. * GitHub Issue: apache#46704 Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
Rationale for this change
PR #46408 included a typo that changed list-view IPC tests to use the same data as list tests. This was detected as a duplicate corpus file by the OSS-Fuzz CI build.
What changes are included in this PR?
Undo mistake that led to using the same test data for lists and list-views. Also fix a regression in the CUDA tests, due to reading non-CPU memory when fetching the first offset in a list/binary array.
Are these changes tested?
Yes.
Are there any user-facing changes?
No.