#148 Multiplayer New Fleet Move Crash

closed-fixed
None
9
2005-10-05
2005-09-17
Geoff Topping
No

I started two versions of the program, one hosted a
game with the player name Host, and the other joined a
game at 127.0.0.1 with the player name Joiner. On the
first turn, I split one of Host's fleets into two
fleets by dropping one of the ships onto New Fleet. I
then gave move orders to the still-existing Home Fleet
(but not to the new fleet) and ended both players turns
(player Joiner did nothing that turn). The turn
processed fine for both players. I then gave move
orders to Host's new fleet, and ended both players'
turns, at which point Joiner's client crashed, and Host
got the usual two pop-up messages about the server
sending an end-game message, and that player Joiner's
connection to the server was lost. Host's client kept
running seemingly normally, other than the game ending.

Repeated trials have shown that the crash only occurs
when new fleets created from pre-existing ones with the
UI are then given move orders. Even if the new fleet
is created in this manner in a system that the other
player has vision of, ie. player A flies the home fleet
to player B's home system, then drags a ship onto new
fleet, and gives new fleet a move order the next turn,
player B doesn't see the new fleet in the player A
fleets window before the move order is given, and the
crash occurs for player B as described when the turn is
processed after player A gives the new fleet a move
order. New fleets made using the production screen
(ie. by building a ship) don't cause a crash when given
move orders.

Discussion

    • priority: 5 --> 9
    • assigned_to: nobody --> dennis
     
  • Geoff Topping
    Geoff Topping
    2005-09-29

    Logged In: YES
    user_id=913462

    After starting a two player game as described, and having
    the Host split its home fleet and issue a move order to the
    new fleet, then having both Host and Joiner player end
    turns, the Joiner's client crashes and displays this error
    message:

    std::runtime_error Exception caught in App::Run():
    XMLElement::Child(): The XMLElement "m_objects" contains no
    child "Fleet63".Initiating Exit (code 1 - error termination)

    Doing the same, but with the Joiner's fleet being split and
    given a move order has the same result, except that Host's
    client crashes, and displays the same message, except with
    Fleet62 instead of Fleet63. (Note: galaxy has 10 stars)

     
  • Logged In: YES
    user_id=26932

    Reason is found, but might be tricky to fix.
    I'm working on it.

     
  • Logged In: YES
    user_id=26932

    should be fixed now.
    EXTENSIVE TESTING IS REQUIRED, though; especially related to
    savegames.
    Older savegames might not work anymore; and bad things might
    happen.

     
    • status: open --> pending-fixed
     
    • status: pending-fixed --> closed-fixed