What's new
  • Visit Rebornbuddy
  • Visit Resources
  • Visit API Documentation
  • Visit Downloads
  • Visit Portal
  • Visit Panda Profiles
  • Visit LLamamMagic

Memory leak and OOM issues

JuQiang

New Member
Joined
Jan 3, 2018
Messages
2
Reaction score
0
This is a great tool. But I found it often crashed randomly after some hours or tens of hours running.
So I captured some memory dumps, and find out some finalizable objects does NOT dispose correctly and quickly. Too many Zeta.Game.Internals.SNO.SNORecordActor objects not freed on time.

From the source code, I think you should check Trinity manager code, for example : method UpdateAvoidances(void)。

if (flag6)
{
Core.Logger.Log(LogCategory.Avoidance, string.Format("Created new Avoidance from {0} RActorId={1} ({2}, Immune: {3})", new object[]
{
actor.InternalName,
actor.RActorId,
avoidance.Definition.Name,
avoidance.IsImmune
}), Array.Empty<object>());
this._cachedActors.Add(rActorId, actor);// Removed slowly or NOT removed.
this.CurrentAvoidances.Add(avoidance);
}

I attached 3 windbg simple log files, please check it.
please check 3 attached files. U can search: !finalizequeue, then check "Zeta.Game.Internals.SNO.SNORecordActor", # of these objects are : 5657, then 6165, then 6792. For the SNORecordActor, method Zeta.Game.Internals.SNORecord.Dispose() never be called.
So, I suggest u call this method before cache remove action, or ASAP remove this object from the cache.
 

Attachments

I think so. So, can you release a hotfix ?
Now, I had to capture memory dump, write down current # of Zeta.Game.Internals.SNO.SNORecordActor from !finalizequeue. Then after some hours before I leave my computer, repeat dump and writing down again. If the number is over 20,000, I maybe quit the demonbuddy and restart the tool again to avoid OOM exception before I come back to the computer.:(
 
Back
Top