Open lydiatliu opened 8 years ago
Suggestion: add world_state.mission_started
flag, to help debug whether mission ever started.
Suggestion: have agent_host print out something useful when mission control messages are received.
Suggestion: have agent_host ping the Mod to find out whether still running.
I have a hunch this might be a thread deadlock issue caused by MissionRecordingSpec
reuse, possibly related to #256.
Might be changing my mind... could this just be another case #118?
With the 0.17.0 release, we can investigate this issue more:
world_state.did_mission_start
to diagnose if end of mission was getting triggered somehow.Reduced to P2 since there's a workaround: to put a timeout on waiting for the mission to start.
Closing this as we can no longer reproduce it.
I believe I've just reproduced this... It's possible to accidentally "queue up" missions, due to a race condition in the client state machine. What happens is this:
Agent B's mission will eventually start, but only after A's has finished.
The more involved the XML, the longer it will take to process, so the more chance there is of catching the mod while it's in the dormant state. I've managed to create a queue of around ten missions. Obviously the tenth agent will be kept waiting while nine other missions get run.
In a single client case this is maybe not so bad, since the tenth agent will always have to wait its turn... but if there are, say, ten clients in the client pool, all agents could run simultaneously. Instead, nine clients will be sitting dormant while the first client does all the work in serial.
I get
DEBUG: Looking for client, received reply from 10.190.104.80: MALMOOK
and keep calling peekWorldState(), but world_state.is_mission_running never evaluates to True