Fix HPC-GAP crash when calling IntFFE
repeatedly
#5500
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.
The kernel function
INT_FF
had a bug under HPC-GAP that could lead to it allocating more and more memory (that it did not actually need), eventually causing GAP to come to a halt or the system running out of memory.This kernel function is called by e.g.
IntFFE
and other user facing code. As a result, this code did not terminate (with the fix it runs in a few milliseconds):For the experts: the code was directly calling
GrowPlist
, which does not perform a check to see if the list is actually already big enough. So each timeINT_FF
was called ended up increasing an internal list by a certain small percentage. But doing this often enough still leads to exponential growth of the size of that list...I did not include a test case (other than the one in the commit message) because the test really only can test whether GAP hangs and/or gets slow or not, which is not terribly useful by itself. Besides, PR #5495 adds a test which also triggers this problem.