Fixes windows error on large MAZ systems #760
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Turns out the error in #681 has actually been a longstanding problem, since the dawn of the use of MAZ's in ActivitySim. It's just that it has only come to light recently as it requires a particular confluence of conditions to have it cause the crash that PSRC was seeing:
Obviously this is a very narrow corner case to cause a crash. However, the bug was (slightly) more serious than that. All these conditions need to be met to cause a crash, but only a subset are needed to cause erroneous results: MAZ skim values on Windows were being incorrectly evaluated for many trips and tours where the origin or destination zone index code is larger than 32768.
This fix upcasts the index lookup values to 64 bit when necessary, solving the problem.
Many thanks to @stefancoe for his assistance in highlighting and correcting this insidious error.