Well, I left Oolite running when I left for work today, and 9 hours later it STILL hadn't crashed. My ship however had drifted away from the station's aegis though. So I flew back to the station, docked, launched and parked by the beacon.
This prompted the station to start splurging spacecraft (there was little activity when I arrived, but my docking/undocking seems to have stimulated the AI). Within minutes the memory gobbler began. There were numerous ships outside the station, I can't tell for sure but it looks like at least two were lined up for docking (one close in, and one close to the beacon).
So the common theme (on my hardware) is:
- if I'm not looking at the station, the game will run pretty much forever with no problems.
- the problem only seems to occur when there is more than one ship apparently docking.
I added some NSLogging to the AI (in the setState method), and got the following output:
Code: Select all
2006-02-17 18:13:30.986 oolite[5662] DEBUG: setState: I am <AI in state 'LURK'> and my state is set to COLLECT_LOOT
2006-02-17 18:13:30.988 oolite[5662] DEBUG: setState: I am <AI in state 'LURK'> and my state is set to COLLECT_LOOT
2006-02-17 18:13:33.191 oolite[5662] DEBUG: setState: I am <AI in state 'IDLE'> and my state is set to CHECK_FOR_DEBRIS
2006-02-17 18:13:33.340 oolite[5662] DEBUG: setState: I am <AI in state 'CHECK_FOR_DEBRIS'> and my state is set to IDLE
2006-02-17 18:13:35.921 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:35.923 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:35.925 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:35.927 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:35.928 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:35.930 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
....
....2006-02-17 18:13:37.324 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:37.327 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:37.331 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:37.335 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:37.339 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:37.342 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:37.346 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:37.350 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:37.353 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
2006-02-17 18:13:37.357 oolite[5662] DEBUG: setState: I am <AI in state 'AWAIT_COORDS'> and my state is set to GLOBAL
2006-02-17 18:13:37.361 oolite[5662] DEBUG: setState: I am <AI in state 'GLOBAL'> and my state is set to AWAIT_COORDS
This flipping between GLOBAL and AWAIT_COORDS goes on until memory is exhausted. It just spews and spews on the log output. Hopefully I'll have some more time to dig this weekend but if Giles has some more insight, we'd sure appreciate it at this stage
I'll add an AI state to my object listing (as well as output the address of the object flipping state) so the two can be tied together, unless some insight fixes this problem before I get to doing that.