View Issue Details
ID | Project | Category | Date Submitted | Last Update | |
---|---|---|---|---|---|
0001190 | AI War 1 / Classic | Crash/Exception | Nov 8, 2010 4:49 pm | Jan 3, 2011 11:45 am | |
Reporter | Toll | Assigned To | Chris_McElligottPark | ||
Status | closed | Resolution | unable to reproduce | ||
Product Version | 4.028 | ||||
Summary | 0001190: Crash when the AI empties too many barracks at once | ||||
Description | I attacked a planet with eight barracks of 200 ships each, and destroyed its command station (this was 19 hours in, and the planet had been untouched with a Dyson Sphere Golem). The result wasn't quite what I expected: Instead of a massive wave, I got a fatal error in gc: Too many heap sections. After clicking OK in the dialogs, the game became unresponsive and had to be forcefully closed. | ||||
Tags | No tags attached. | ||||
Internal Weight | |||||
|
Most likely this was a coincidence, and you simply ran over the memory limit in general. Certainly these pushed you over, obviously, but 1000 ships in general shouldn't do that. Unless this is something reproducible, that is, which would indicate some sort of infinite loop or something. Do you have a save which can reproduce this? |
|
Please tell me you can post a save from before destroying the command station :) |
|
I do have an autosave from a few minutes earlier... I'll play it up to the point where I'm sending in my bombers and save it just before. |
|
|
|
Okay, the save is up, and there are quite a few bombers at Fener. It didn't crash this time around, but maybe you can dig something else up... |
|
I was under the impression that never more than one barracks (per system) would be created nowadays? (the rest become carriers, right?) |
|
That's true, but from any older saves pre-carriers there could still be many barracks sitting around. Toll, from the sound of it you just got pushed over the memory limit, unfortunately. |
|
Yeah, me too... but there were carriers created as well (or at least it said it created carriers; I honestly never noticed them). I figured it was one barracks per guard post, since those numbers match (six normal guard posts and two wormhole guard posts on that planet). |
|
Oh, and regarding the "only one barrack"... this game was started only a few days ago; it's definitely post-carrier. |
|
Yeah, I realized that a bit ago -- turns out carriers were always being created as barracks, but the 4.030 version I just put out fixes that. :) So, there should never be this many barracks in the future anyway, and I think it was a general out of memory thing to begin with, so for now I'm marking this as unable to reproduce as I don't think it's a specific bug related to barracks or anything like that. |
|
Right. Me having played for about 12-14 game hours might've contributed a bit as well ;) Yay for +10 speed. |
|
Wow, that might do it, yeah. It shouldn't do that, but playing on +10 speed would actually make it a bit more likely to eventually do that, because it's going to be longer between Garbage Collections in terms of gametime, which means "transient objects" have a larger impact on overall memory footprint. We could probably solve some of this by having it do a Garbage Collection right before it does a big wave or anything else that spawns a lot of ships, but actually as we get the transient memory usage down over time that should be a decreasing issue and ultimately this should never happen even now except with super long gametimes, possibly on extra-fast usages, or with incredibly high ship counts (High ship count and large maps is a recipe for possible out of memory errors after a few hours in a single sitting). Anywho, that's stuff that's gradually improving, and it's pretty rare already. It's good to hear yours was definitely in the realm of the unusual with that, though. :) |
|
Wait a second, this version of Mono's garbage collector can only collect so much per collection? I think that is a pretty big flaw. :P |
|
No, that's not what I meant. What I meant was that if it's about to run critically out of RAM, and could run a garbage collection to have HUNDREDS of megabytes of actual working space, it won't do so and will instead die with the Too Many Heap Sections error. A different, but no less big, flaw. That means that we have to make sure we GC collect right before anything that allocates a large amount of temporary memory, or if it happens to be near the redline on a given computer at the time, it can push itself over the limit without even bothering to try to save itself. |
Date Modified | Username | Field | Change |
---|---|---|---|
Nov 8, 2010 4:49 pm | Toll | New Issue | |
Nov 8, 2010 4:52 pm | Chris_McElligottPark | Note Added: 0002977 | |
Nov 8, 2010 4:52 pm | Chris_McElligottPark | Assigned To | => Chris_McElligottPark |
Nov 8, 2010 4:52 pm | Chris_McElligottPark | Status | new => feedback |
Nov 8, 2010 4:52 pm | keith.lamothe | Note Added: 0002978 | |
Nov 8, 2010 4:55 pm | Toll | Note Added: 0002980 | |
Nov 8, 2010 4:55 pm | Toll | Status | feedback => assigned |
Nov 8, 2010 4:59 pm | Toll | File Added: Before heap crash.sav | |
Nov 8, 2010 5:00 pm | Toll | Note Added: 0002981 | |
Nov 8, 2010 5:07 pm | Lancefighter | Note Added: 0002984 | |
Nov 8, 2010 5:09 pm | Chris_McElligottPark | Note Added: 0002985 | |
Nov 8, 2010 5:10 pm | Toll | Note Added: 0002986 | |
Nov 8, 2010 5:30 pm | Toll | Note Added: 0002993 | |
Nov 8, 2010 5:45 pm | Chris_McElligottPark | Note Added: 0002997 | |
Nov 8, 2010 5:45 pm | Chris_McElligottPark | Status | assigned => resolved |
Nov 8, 2010 5:45 pm | Chris_McElligottPark | Resolution | open => unable to reproduce |
Nov 8, 2010 5:48 pm | Toll | Note Added: 0002999 | |
Nov 8, 2010 6:21 pm | Chris_McElligottPark | Note Added: 0003004 | |
Nov 8, 2010 7:32 pm | TechSY730 | Note Added: 0003022 | |
Nov 8, 2010 7:33 pm | TechSY730 | Note Edited: 0003022 | |
Nov 9, 2010 9:08 am | Chris_McElligottPark | Note Added: 0003056 | |
Jan 3, 2011 11:45 am | Chris_McElligottPark | Status | resolved => closed |
Apr 14, 2014 9:27 am | Chris_McElligottPark | Category | Bug - Crash or Exception => Crash/Exception |