-
Notifications
You must be signed in to change notification settings - Fork 112
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
Fix t8code ocassionally segfaults #2043
Conversation
Review checklistThis checklist is meant to assist creators of PRs (to let them know what reviewers will typically look for) and reviewers (to guide them in a structured review process). Items do not need to be checked explicitly for a PR to be eligible for merging. Purpose and scope
Code quality
Documentation
Testing
Performance
Verification
Created with ❤️ by the Trixi.jl community. |
Thanks! This closes #1845, right? |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2043 +/- ##
=======================================
Coverage 96.30% 96.30%
=======================================
Files 467 467
Lines 37263 37265 +2
=======================================
+ Hits 35886 35888 +2
Misses 1377 1377
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Maybe then @patrickersing can take a look? |
I would be happy to help, but I have no experience with t8code or MPI, so it would be good if someone who is more familiar with this does a review. |
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.
Thanks! I just have a question - if it's fine, this can be merged afterward
Especially in GitHub's CI the pipeline randomly fails due to segfaults caused by T8codeMesh. This is due to the undeterministic order of clean-up by Julia's GC. t8code allocates several MPI objects which have to be cleaned up before the MPI runtime shuts down. This PR provides a workaround by explicitly finalizing the T8codeMesh objects in each elixir. I observed that this prevents the segfaults.
Any input for a better, more elegant solution is welcome.
This PR closes #1845.