You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[release/10.0] [mono][interp] Fix various leaks, primarily around dynamic methods (#120524)
This backports multiple changes that were added on main in order to fix
various leaks around interpreter and dynamic methods.
#119176#119294#119749#119990
## Customer Impact
- [x] Customer reported
- [ ] Found internally
On maui-ios, dynamic method execution is done with the interpreter.
Freeing of dynamic methods was disabled for a long time and a few leaks
were present in the interpreter, preventing completely freeing all the
data associated with an interpreter method. Interpreter is more heavily
used on maui, compared to Xamarin, so this is more likely to become a
problem. On a customer application, starting and closing a workflow 14
times resulted in leaking of around 60MB of memory.
## Regression
- [ ] Yes
- [x] No
## Testing
Tested on a heavy customer application that it works correctly. This
path is also commonly hit as part of our libraries tests and all these
changes have been in main for multiple weeks now, without any issues.
This was also validated by the customer on their app, by having the fix
deployed for early testing.
## Risk
Low-Moderate. Most of this change is quite trivial and it just adds
freeing of some data or changing the memory allocator for certain
interpreter compilation data, so that it gets freed. There is a more
complex part of the change, that adds freeing for data used by tiering.
While this part would have a moderate risk, it is isolated to the
tiering machinery, and customers have an easy way to disable tiering,
effectively mitigating the risk in my opinion.
0 commit comments