-
-
Notifications
You must be signed in to change notification settings - Fork 445
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
Attempting to avoid segfault in OctoTiger during initialization #6415
Conversation
The PR helps, but it appears that there was more than one issue. I am still encountering segmentation faults, they are just occurring at a different place now:
|
@G-071 could you please try one more time? |
Still not quite it, I get a segfault at
Full backtrace:
|
Hmmm, still the same as before - not sure what's going on :/ |
@G-071 does it happen in Debug mode as well? |
@G-071 Unrelated comment: the function could be implemented as future<std::shared_ptr<node_server>> node_client::get_ptr() const {
return hpx::get_ptr<node_server>(get_unmanaged_gid());
} (note the changed return type). Not sure if this would change anything, though. At least, rewrite if (hpx::find_here() != hpx::get_colocation_id(get_gid()).get()) as if (hpx::get_locality_id() != hpx::naming::get_locality_id_from_id(get_unmanaged_id())) as this check can be done locally (without invoking any possibly remote operations). |
@G-071 I have added a couple of (somewhat desparate) changes here. I however think that the changes to OctoTiger I suggest above would be more appropriate. |
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
4d2cca5
to
9f23e8a
Compare
I am not opposed to this, however, I would need to check what other parts I would need to change for this. This part of Octo-Tiger pre-dates my involvement in the project by quite a bit, so I am not too familiar with it.
Did you mean get_unmanaged_gid here instead of get_unmanaged_id here? (that's what the compiler suggested when it could not find get_unmanaged_id) Replacing the branch condition with if (hpx::get_locality_id() != hpx::naming::get_locality_id_from_id(get_unmanaged_gid())) { seems to actually resolve the issue entirely (at least on my local machine) and all Octo-Tiger tests pass! This even seems to work without this PR. |
Yah, that works around the issue as it removes the failing code. Let's go with that for the time being. I'll merge the PR anyways as it resolves at least one (other) real issue. |
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesYou may notice some variations in coverage metrics with the latest Coverage engine update. For more details, visit the documentation |
Fixes #6414
@G-071 could you please verify whether this fixes the segfault you reported?