Code:
Problem description:
Recently a peculiar rebooting bug has appeared in my game. Basically when rebooting or even purely stopping a dream daemon server the game and dream daemon will begin not responding for 2-5 minutes. I've done endless amounts of test with others trying to assist me, I've tried removing all proc related to world New/Reboot/Del()and mob Login/Logout(). I'm fresh out of ideas on getting clues to pinpoint the problem, and am seeking serious help with someone who has extensive knowledge on how dm coding works.
1
2
ID:1953651
Oct 2 2015, 10:19 pm
|
|
Oct 2 2015, 10:37 pm
|
|
Have you tried using the profiler?
|
For sure. Doesn't give me any clues. I can see if I can post an img of it right after a reboot.
|
This profile is right after one of those long reboots. |
I need to know the steps or processes that happens when the server closes. Cause that's when the freezing happens on the brink of closing or rebooting the server. I don't know of any strategies to pinpoint the problem. Since I've already done testing on the obvious possible solutions like world del and reboot and it proved to be apart of a process that happens right before a world is closed or reopened. The problem reminds me of an issue I ran into a month ago where I foolishly assigned a fairly big array to an atom, what happened during runtime is whenever a del() was called it would cause extreme lag or freezing. For a problem like this could you explain exactly what is happening? Is it possibly there's too much space or resources being set aside causing the recycling that goes on during the deletion process to go at a very slow rate. Anyways the source of this issue was impossible to track, I got lucky in fixing, I realize it was the really larger array on the atom and just change the array to a global variable. But I feel like the issue may have some sort of relation to that.
|
On server shutdown or reboot, a lot of cleanup operations are done. Animations, vars, atoms, datums, appearances, strings, etc. are all cleared out. If you have an exceptionally large number of any of these (probably not strings) it might explain a lot about what's happening. I would suggest that before shutdown or reboot you get some memory stats from the server that says what types of server things are in use. Maybe you have something like 100K objs and that's causing a slowdown, or something along those lines.
|
In response to Fat Albert
|
|
Fat Albert wrote:
that's a good idea. How does one retrieve memory stats? Using Dream Daemon , (World > Memory Stats (Ctrl+M) ) |
In response to Fat Albert
|
|
Fat Albert wrote:
<--- Sadly doesn't get the reference. Can't find your glasses? |
Thanks for pointing that out though. I'm scanning my source and asking myself how the hell do I have 5 million list. It doesn't make any sense. Do you think most of them are created when I'm declaring variables or during realtime? Runtime seems the most logical, but the 5 million list are there as soon as the server boots up
|
Runtime seems the most logical, but the 5 million list are there as soon as the server boots up 400x400x10 map. 1.6 million turfs. 4,948,398 / 1,600,000 = 3.09274875 3 lists per turf. 148,398 remainder. My guess is that you have three list variables being initialized per /turf or possibly per /atom. The remainder are probably specific lists belonging to turf subtypes as well as normal lists being generated at operation. Even if you only had 148,398 lists, I'd argue that something very gravely wrong is going on in your source code. If you can wait around until Sunday, after I've recovered from GIAD, I'd be happy to browse through your source code and find the root of your problem. |
Lol such a hard question super saiyan X, not intentionally. I'm going to create an empty map and and show you the result I get from it.
|
1
2