-
Notifications
You must be signed in to change notification settings - Fork 9
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
1395 Fix GreedyLB Bug #1470
1395 Fix GreedyLB Bug #1470
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #1470 +/- ##
===========================================
- Coverage 83.00% 82.99% -0.01%
===========================================
Files 783 783
Lines 29465 29505 +40
===========================================
+ Hits 24457 24488 +31
- Misses 5008 5017 +9
|
#define BROADCAST 0 | ||
|
||
#if SCATTER | ||
std::size_t max_recs = 1, max_bytes = 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.
This is the actual bug fix. max_recs
must be at least 1 due to how the data is read (the first record is meta-data that contains the number of records)
Could you trim this down to just the bug fix? The alternative communication schemes should only be added if they serve an independent purpose. |
I think I agree with Phil here. Do you forsee using the other options? |
44bd509
to
55d6f79
Compare
@nlslatt Please re-review this! |
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.
You need to provide a hash function for the enum now that you're using the LBArgsEnumConverter
. After that fix and one recommended by Codecy, this should be ready to go.
fbda3c1
to
79efa85
Compare
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.
Looks good
Fixes #1395
See how the home is corruption (negative value), which is never allowed.
I think I have identified the edge case, which is when the scatter has zero elements in it. This might be what is causing the problem.
I'm writing a new scatter unit test to provide coverage over this devolved use case.It turns out that the bug is unrelated to the scatter implementation which works perfectly fine. But the zero element edge case is the one causing problems due to a bug in the computed
max_recs
when no data exists. I have solved the bug, and run ctest/gtest 1000s of times with the fix and it never fails anymore with this fix.