https://bugs.winehq.org/show_bug.cgi?id=55818
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1|ee12556960e30fc22f276d2de28 | |33e63be90cee9 |
--- Comment #24 from Zeb Figura z.figura12@gmail.com --- (In reply to Tom M from comment #19)
OK I've done some tests and wrote a small script to output VmSize every 20 seconds.
Basically, if I log into a different zone, say a "Battleground", which has far fewer players and NPCs and generally less "stuff", I can basically stay in that zone for ages (I have tested for 6 hours and the highest VmSize would get is about 2.7 or 2.8 GB. It would fluctuate up and down slightly, perhaps 3-4 MB.
However, if I zoned into a busy zone like Camelot City or Catterick Hamlet (the RVR "frontier" zone where there's lots of players standing around, and movement and possibly spell effects), the VmSize will jump up to 3 to 3.5 GB.
If I then zone back to a quiet zone, the VmSize will not go back down, it will stay in the 3-3.5 GB range (with the slight fluctuations).
So going into a busy zone will permanently raise the VmSize, and going back out to a quieter zone will not reclaim the memory space. The only way to do that is to quit out of the client and restart it.
Hmm, okay. When I tested, I did teleport to other areas a couple of times, and it did seem to knock VmSize down by maybe 100 MB each time, but not more than that—like a bit of GC was being done, but the major leak wasn't being cleaned up.
The 7.3 to 7.4 wined3d test I did may not have been as conclusive but at the time I thought that some change between the versions had caused this.
Aside from that, the only other WINE version I tested with this specific server that I've not ever gotten it to crash, was WINE 5.0. I noticed in WINE 5, that when players had casted spells and stuff sometimes there'd be these graphical artifacts left over from the casts and they'd be hovering over the ground and never cleared away. So perhaps some garbage collection wasn't being done when it came to redrawing the graphics. (I'm not sure how that all works)
That's interesting actually. Wine doesn't really do GC (ironically, the only real GC we do, at least in d3d, is actually *introduced* by ee1255696. I did make sure to test and we aren't leaking mapped buffers, so that's almost certainly not the problem anyway.)
I'll recompile 7.3 and try and get that tested to be 100% sure the bisect isn't what this is, but WINE 5.x seemed to be fine with the game as it was (same server and zones and everything.) because I had tested on an Ubuntu 20.04 machine which still shipped with WINE 5 in their package repo.
Is there anything specific you'd like me to test and give results of VmSize?
Hrm, but this is definitely a regression, right? Is there a pattern of play for certain that you can say for sure is more likely to trigger a crash with current Wine than earlier Wine? Or something that causes VmSize to grow faster, or to start from a higher point when you enter the game? Identifying that is going to be necessary to bisect or debug.
In the meantime I'm going to remove the bisect result since it's probably incorrect right now.