Occasionally, for several hours at a time, /vg/station (and possibly other SS13 codebases) will experience completely unexplainable runtimes related to any list named "turfs". This has happened even while our repo was inaccessible, meaning that there could not even theoretically have been a change to our code to cause it, and it resolved itself before the repo was accessible again.
This is extremely inconsistent, generally happening for several consecutive rounds once every couple months. The exact runtimes are different each time, but there are two common threads:
1. "Out of resources!" is the most common (but not only) type of runtime that occurs during these periods. It never occurs otherwise.
2. The runtimes always have to do with either reading from or writing to a list called "turfs". It is not always the SAME list called "turfs", though.
Generally, 2-3 distinct runtimes occur each time this happens.
It is important to note that we have a globally-scoped list named "turfs", which contains references to all turfs in the world. (Exactly 1.5 million on our current maps.) However, this also happens with lists named "turfs" that are locally-scoped to individual procs, often before they even contain anything.
I'm not 100% sure about this, but I don't believe this happened when our maps were smaller. It's possible that the main turfs list encounters trouble simply due to being preposterously large. That still shouldn't affect other lists, though.
At the moment, on our test server, a runtime is happening in the generation of the main turfs list.
turfs = new/list(maxx*maxy*maxz)
world.log << "DEBUG: TURFS LIST LENGTH [turfs.len]"
Sorry about the rest of the bug report not being particularly helpful. We just don't have the kind of information to answer all of these questions.
Numbered Steps to Reproduce Problem:
I wish I knew.
Code Snippet (if applicable) to Reproduce Problem:
It would take years of testing to find a single simple snippet that could reproduce this, more than likely.
Expected Results:
Don't get runtimes that shouldn't be possible.
Actual Results:
Get runtimes that shouldn't be possible.
Does the problem occur:
Every time? Or how often?
Rarely, but for several server restarts in a row when it does.
In other games?
Unknown.
In other user accounts?
It's serverside.
On other computers?
Unknown.
When does the problem NOT occur?
Most of the time.
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
It's too inconsistent to know for sure.
Workarounds:
Wait a few hours to a day for it to fix itself.
The name of the list is obviously irrelevant unless for any reason that caused a change to the compilation that treated it differently; but since turfs is not a reserved word or a keyword used anywhere by default, that's not possible. "Out of resources" on the other hand comes up when list.Copy()--and it's specific to that exact routine--can't allocate memory.
My suspicion is that your server is already running high on memory, and something is pushing it over the edge. That also explains the erratic nature of your runtimes; they happen inconsistently because you hit the limit inconsistently and in different ways. The turfs list however is a large list, and that allocation is probably big enough to trigger the problem more reliably than a smaller list would. That's why you're seeing problems with that list most of the time.