-
-
Notifications
You must be signed in to change notification settings - Fork 482
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
Make polynomial rings collectable after arithmetic operations #27095
Comments
comment:1
Here is verification that in principle polynomial rings can be garbage collected:
And here is evidence that they cannot if an arithmetic operation occurs. I am studying different operations, each time in a new session, just to be on the safe side:
So, apparently the leak occurs in the action of the base ring on the polynomial ring. |
comment:2
See #27083 . Increasing memory usage that flattens off is not an indication of a memory leak. It may even be the case (if You would want to check that no such cache is in effect here. If it is, you'd need to check that there are more than 128 polynomial rings remaining in memory at some point. And I think you'd want to see if they are on the python heap using the usual Of course the leak you describe (if it exists!) is almost certainly on the python side, but finding the offending objects on the heap and backtracing their references should be a pretty quick way of finding where the leak occurs. The graphs produced by |
comment:3
Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually) |
comment:4
As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9). |
By #13447, polynomial rings can be garbage collected. However, they cannot if its elements were involved in an arithmetic operation. So, apparently some strong reference chain is created in the coercion system.
The purpose of this ticket is to find that reference chain and invent means to remove it. Perhaps related with #26811?
Depends on #13447
CC: @jdemeyer
Component: memleak
Issue created by migration from https://trac.sagemath.org/ticket/27095
The text was updated successfully, but these errors were encountered: