• Status Closed
  • Percent Complete
  • Task Type Bug Report
  • Category Server
  • Assigned To No-one
  • Operating System Linux
  • Severity High
  • Priority Very Low
  • Reported Version Development
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: N!tmod
Opened by André - 2012-08-08
Last edited by N!trox* - 2012-09-19

FS#57 - Memory leak

PLEASE FILL THIS FORM PROPERLY TO MAKE SURE WE HAVE ENOUGH INFORMATIONS TO REPRODUCE THE BUG AND TRY TO FIX IT ! THE FOLLOWING FORM HAS BEEN MODIFIED ON MARCH 12th 2011. * N!tmod version : 2.2 * Build Date (!about cmd) : May 31 2012 * Map : any ( http://pastebin.com/WJVWqCdr ) * Omni-Bot enabled ? : yes * If yes, bot count : 6 * Gametype : objective * Any custom mapscripts ? If yes, provide link : * Any LUA modules ? If yes, provide link : * Happens in Warmup/Playing/Intermission ? : * Explain the bug : The server is using insane amounts of RAM (see this: http://i.imgur.com/LEEjw.png ) with uptime: 3 days, 0 hours, 43 minutes. Last time I restarted the server it was at like 2GB RAM. All the other servers running on that machine use 300-400 MB. * Additional informations : Linux h1766344 2.6.32-41-server #89-Ubuntu SMP Fri Apr 27 22:33:31 UTC 2012 x86_64 GNU/Linux Server IP:
Closed by  N!trox*
Wednesday, 19 September 2012, 15:30 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed in 2.2.1
José commented on Thursday, 16 August 2012, 23:22 GMT
Same here http://www.lsdfunwar.fr/forum/gallery/image.php?mode=medium&album_id=8&image_id=147 Red=nitmod blue=etpro/etjump On the screenshot 4 nitmod servers use 8383 MB, 70% of 12Go server ram :s. When a server reaches ~ 4GB it crashes, what happens to me every day Ps: on my screenshot the server PID 23879 crashes few minutes after i started to comment Sorry for french. Comme je t'en ai deja parler nitrox des fois ils crashent avec ces erreur ou des fois un simple "crash information" ou même oom killer qui interviens quand il y a plus de ram dispo: ******************** ERROR: AllocLevel() -- FAILED ******************** ou ******************** ERROR: AllocUser() -- FAILED ******************** Comme j'utilise des binaires compilé sa pouvais venir de la, j'ai donc remis un simple 2.55+, voir même utilisé une nouvelle install dans un autre dossier, avec un etded utilisé uniquement par un seul serv comme tu m'avais demander de test, mais le prob est toujours la. J’allais réinstaller le serveur pensant que sa venais d'une librairie incompatible installé sur le serv ou autre, mais si il y a d'autres personnes qui ont le meme prob, je vais évité de perdre une demi journée de reinstall. Quoi que sa enlève pas la possibilité d'une librairie incompatible. Debian 6 a jour Linux lsdfunweb.fr 3.2.13-xxxx-std-ipv6-64-hz1000 #1 SMP Thu Mar 29 11:11:33 UTC 2012 x86_64 GNU/Linux kernel by OVH
se commented on Monday, 20 August 2012, 12:08 GMT
hey i m 7killer and i help nit on nitmod dev , as nit is pretty busy, can u contact me by pm on our forum, or on xfire at seb7seb I suspect the sql motor which cause a memory leak. Could u make an entitylist cmd on a bugged server and prepare info from yr sql database Thx for reporting, Salut, comme nit est tres occpé, es ce que tu peux me contacter en pm ou xfire seb7seb. es ce que tu peux me faire un entitylist sur un serveur buggé et préparer les infos de database. merce d'avance
N!trox* commented on Thursday, 13 September 2012, 12:41 GMT
I think i found what's causing the problem, as we can see, it's caused by AllocUser() or AllocLevel() which are part of the new admin system optimizations. As you may know, every user present in the server database is also stored in the server's RAM for faster access. AllocUser() is the function that's used to allocate memory for each user (AllocLevel() is also called by AllocUser()). But, with the new NGUID system, the existing user data (or the new one if it's a new player) can only be retrieved by the server when the client is fully connected and the server knows this client's NGUID. Meantime, for various reasons, the server sometimes needs to get some infos about this player, and since the data is not available yet, we need to allocate a "temp" user in the server's RAM to avoid crashing the server. The problem is that this "temp" user was never deleted, which caused memory usage to increase more and more until no free memory was left... Also there was a small problem when loading some of the .db files, some of the loaded data was never freed and this could also be a reason why memory usage increased. Both issues have been fixed in 2.2.1, hopefully the problem has been isolated and fixed, we'll see what happens when we release 2.2.1 ...


Available keyboard shortcuts


Task Details

Task Editing