-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
ARROW-7119: [C++][CI] Show automatic backtraces #6202
Conversation
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.
Example coredump https://github.com/apache/arrow/pull/6202/checks?check_run_id=399397059
It seems that the coredump isn't related.
Should we remove ~/Library/Logs/DiagnosticReports/*.core
before running our scripts?
That wasn't a segfault, no core file was genereted. Let me force a segfault. |
https://github.com/apache/arrow/pull/6202/checks?check_run_id=401063744
|
Auto backtraces are working on linux within the docker containers, it also works in the GHA jobs. I've tested it locally on macOS and it also works when the coredump gets generated, but the coredumps are not generated in the GHA job, despite that it is theoretically enabled. @kou any ideas what am I missing on macOS? |
The coredumps should be available now for macOS as well https://github.com/apache/arrow/runs/408685826 |
@kou we should reuse the print_coredumps function for the rest of the C++ dependent builds too, but in a follow-up PR. |
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
I hope that this can work without changing kernel.core_pattern
(core
is the default) on Linux in a follow-up task!
We need to change the core pattern because the tests are usually run in parallel, so we need to identify the right coredump for the test case. This PR also print the coredumps for linux, not just macOS. |
OK.
Oh, sorry. I misunderstood. |
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.
It seems to me that run-test.sh
is overly complicated. Most of the things it do is dealing with xml for jenkins, which we don't use. I'd simplify to do the following:
- setup sanitizers
- execute tests (and capture pid + return code), that might require some bash magic with jobs and waitpid.
- link coredump with pid instead of basename pattern.
- print coredump
Do we use the local stdout/stderr dumped text files @kou @wesm?
The chance of the collision vs. required bash magic tradeoff made me choose the base name. |
AFAIK, no. |
@fsaintjacques created a follow-up JIRA as suggested by @kou https://issues.apache.org/jira/browse/ARROW-7814 I think it is ready for review again. |
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 confirmed that https://github.com/apache/arrow/pull/6202/checks?check_run_id=436229364 shows backtrace.
I'll merge this after I remove needless sudo
.
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
Automatically generate coredumps and backtraces for the failing C++ tests on both Linux (including docker) and macOS.