ID:1953651
 
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.
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.
Hrm, that's not ringing any bells for me either.
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.
that's a good idea. How does one retrieve memory stats?
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) )
Do you guys see anything abnormal in the Memory Stats.
5 million lists. That's... That's uh... A lot.
I like list :D
Aha! It was Mr. Cartwright under the mask all along!
<--- Sadly doesn't get the reference.
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
Does anything on your map have a list attached?
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.
I find this pretty shocking. I literally logged on an empty map and here are the results.
Page: 1 2