Author Topic: [dupe] r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod  (Read 1907 times)

filux

  • MegaGlest Team
  • Draco Rider
  • ********
  • Posts: 310
  • was OpenSuse x64, is Debian testing x64
    • View Profile
This bug report is by tomreyn for filux:

We played a game on r4338 on Linux64 host (tomreyn hosting on atibox) and Linux64 client (Filux), rejoin was enabled. We played on a team with a CPU against 3 CPU opponents (all teamed up) - so two teams, a common setup. After the game finished fine and we had won and all enemy units and structures had been removed. Filux then chose to disconnect, then reconnected into the same slot he had played in, remaining connected for a minute or two. No problems. He repeated this. Again no problems. Then he chose to disconnect, then reconnect into an enemy CPU slot. As soon as he had rejoined he went OOS:

Code: [Select]
   [2013-05-31 02:19:31] *ERROR* In [commander.cpp::buildCommand Line: 1097]
    Can not find command type for network command = [networkCommandType = 0
    unitId = 200207
    commandTypeId = 3
    positionX = 62
    positionY = 107
    unitTypeId = 0
    targetId = 0
    wantQueue= 0
    fromFactionIndex = 0
    unitFactionUnitCount = 107
    unitFactionIndex = 2, commandStateType = 0, commandStateValue = -1, unitCommandGroupId = -1]
    Commands:  id = 0
    for unit = 200207
    [centrum ('center')]
    [
     
    HP: 643/9500
    Pancerz: 20 (kamienny 'stone')
    Zasięg wykrywania: 15
    Magazyn.: 150 żywność 'food'
    Magazyn.: 2000 złoto 'gold'
    Magazyn.: 1500 kamień 'stone'
    Magazyn.: 1200 drewno 'wood']
    actual local factionIndex = 2.
    Unit Type Info:
    [Unit Name: [zentrum] id = 19 maxHp = 9500 hpRegeneration = 0 maxEp = 0 epRegeneration = 0 maxUnitCount = 0 fields index = 0 value = 1 fields index = 1 value = 0 properties index = 0 value = 1 properties index = 1 value = 0 armor = 20 armorType Name: [stein id = 4 light = 1 lightColor = x [1] y [0.93] z [0.65] multiSelect = 0 sight = 15 size = 6 height = 6 rotatedBuildPos = 0.0000000000000000 rotationAllowed = 1 cellMap: [6] i = 0 j = 0 value = 0 i = 0 j = 1 value = 0 i = 0 j = 2 value = 0 i = 0 j = 3 value = 1 i = 0 j = 4 value = 1 i = 0 j = 5 value = 1 i = 1 j = 0 value = 1 i = 1 j = 1 value = 1 i = 1 j = 2 value = 0 i = 1 j = 3 value = 1 i = 1 j = 4 value = 1 i = 1 j = 5 value = 1 i = 2 j = 0 value = 1 i = 2 j = 1 value = 1 i = 2 j = 2 value = 0 i = 2 j = 3 value = 0 i = 2 j = 4 value = 1 i = 2 j = 5 value = 1 i = 3 j = 0 value = 1 i = 3 j = 1 value = 1 i = 3 j = 2 value = 0 i = 3 j = 3 value = 0 i = 3 j = 4 value = 1 i = 3 j = 5 value = 1 i = 4 j = 0 value = 0 i = 4 j = 1 value = 0 i = 4 j = 2 value = 0
    i = 4 j = 3 value = 0 i = 4 j = 4 value = 0 i = 4 j = 5 value = 0 i = 5 j = 0 value = 1 i = 5 j = 1 value = 1 i = 5 j = 2 value = 1 i = 5 j = 3 value = 0 i = 5 j = 4 value = 1 i = 5 j = 5 value = 1 skillTypes: [4] i = 0 Stop i = 1 Be built i = 2 Produkuje i = 3 Die commandTypes: [1] i = 0 Produkuje storedResources: [4] i = 0 żywność 'food'
    150/0 i = 1 złoto 'gold'
    2000/2000 i = 2 kamień 'stone'
    1500/1500 i = 3 drewno 'wood'
    1200/300 levels: [0] meetingPoint = 1 countInVictoryConditions = 0]
    Network unit type:
    [arbeiter]
    isCancelPreMorphCommand: 0
    Game out of synch.
    [2013-05-31 02:19:34] *ERROR* In [game.cpp::update Line: 2648] Error [Error [#3]: Game is out of sync, please check log files for details.
    Stack Trace:
    ./megaglest:Shared::Platform::megaglest_runtime_error::megaglest_runtime_error(std::string const&, bool)address [0x9fd422] line: 237
    ./megaglest:Glest::Game::Commander::buildCommand(Glest::Game::NetworkCommand const*) constaddress [0x57f2b2] line: 1115
    ./megaglest:Glest::Game::Commander::giveNetworkCommand(Glest::Game::NetworkCommand*) constaddress [0x581102] line: 963
    ./megaglest:Glest::Game::Commander::updateNetwork(Glest::Game::Game*)address [0x58439b] line: 641
    ./megaglest:Glest::Game::Game::update()address [0x5c3050] line: 2130
    ./megaglest:Glest::Game::Program::loopWorker()address [0x6af0e1] line: 459
    ./megaglest:Glest::Game::glestMain(int, char**)address [0x69d470] line: 5110
    ./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x6a1569] line: 5357
    /lib64/libc.so.6:__libc_start_main()address [0x7fe444749455] line: 0
    ./megaglest() [0x5147d9]address [0x5147d9]
    ]
« Last Edit: 31 May 2013, 00:50:40 by tomreyn »

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod
« Reply #1 on: 31 May 2013, 01:25:02 »
We just tried to reproduce it. This time we played a different game, just Filux and i and a mega CPU on one team, against a single CPU Easy. Again playing Prax, again with me hosting and Filux being the client. When the game was over, we had won, and all enemy units and structures were gone, Filux disconnected, then reconnected in the slot of our former CPU Easy opponent. There was no problem and he was on the game for 3 or so minutes. So he disconnected and rejoined again. And again there was no problem. So he did it once more, and again everything seemed to go well, but after some minutes while we were talking and I was killing some friendly units and moving my other units to my CPU team mates' main buildings, Filux suddenly went OOS.

This time we recorded DebugWorldSynch logs. Mine is at http://tomreyn.megaglest.org/SynchLin64_TomReynolds_r4338_game1.tar.xz (19MB).
Filux plans to upload his tomorrow.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

filux

  • MegaGlest Team
  • Draco Rider
  • ********
  • Posts: 310
  • was OpenSuse x64, is Debian testing x64
    • View Profile
Re: r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod
« Reply #2 on: 31 May 2013, 12:52:24 »
Code: [Select]
Client waiting for packet for frame: 31380, copyCachedLastPendingFrameCount = 0
Client waiting for packet FINISHED for frame: 31380, copyCachedLastPendingFrameCount = 31380 waitCount = 1
Resume In Progress Game: 1763
Client waiting for packet for frame: 32220, copyCachedLastPendingFrameCount = 32200
Client waiting for packet FINISHED for frame: 32220, copyCachedLastPendingFrameCount = 32220 waitCount = 12265
world.getFrameCount():32220 index 21 Client waited:7 ms
ClienttimeClientWaitedForLastMessage:7 ms  which is 0 frames
[2013-05-31 03:04:02] *ERROR* In [commander.cpp::buildCommand Line: 1097]
Can not find command type for network command = [networkCommandType = 0
unitId = 200169
commandTypeId = 2
positionX = 13
positionY = 93
unitTypeId = 3
targetId = 0
wantQueue= 0
fromFactionIndex = 0
unitFactionUnitCount = 155
unitFactionIndex = 2, commandStateType = 0, commandStateValue = -1, unitCommandGroupId = -1]
Commands:  id = 0 id = 1
for unit = 200169
[farma ('farm')]
[

HP: 1492/3000
Pancerz: 5 (drewniany 'wood')
Zasięg wykrywania: 5
Produkuje: 10 żywność 'food'
Magazyn.: 20 żywność 'food']
actual local factionIndex = 2.
Unit Type Info:
[Unit Name: [bauernhof] id = 2 maxHp = 3000 hpRegeneration = 0 maxEp = 0 epRegeneration = 0 maxUnitCount = 0 fields index = 0 value = 1 fields index = 1 value = 0 properties index = 0 value = 1 properties index = 1 value = 0 armor = 5 armorType Name: [holz id = 2 light = 0 lightColor = x [0] y [0] z [0] multiSelect = 0 sight = 5 size = 4 height = 2 rotatedBuildPos = 0.0000000000000000 rotationAllowed = 1 cellMap: [4] i = 0 j = 0 value = 1 i = 0 j = 1 value = 1 i = 0 j = 2 value = 1 i = 0 j = 3 value = 1 i = 1 j = 0 value = 1 i = 1 j = 1 value = 1 i = 1 j = 2 value = 1 i = 1 j = 3 value = 1 i = 2 j = 0 value = 0 i = 2 j = 1 value = 0 i = 2 j = 2 value = 1 i = 2 j = 3 value = 1 i = 3 j = 0 value = 1 i = 3 j = 1 value = 0 i = 3 j = 2 value = 1 i = 3 j = 3 value = 1 skillTypes: [5] i = 0 Stop i = 1 Produkuje i = 2 Ulepsz i = 3 Be built i = 4 Die commandTypes: [2] i = 0 Produkuje i = 1 Ulepsz storedResources: [1] i = 0 żywność 'food'
20/0 levels: [0] meetingPoint = 1 countInVictoryConditions = 0]
Network unit type:
[drachenturm]
isCancelPreMorphCommand: 0
Game out of synch.
[2013-05-31 03:04:05] *ERROR* In [game.cpp::update Line: 2648] Error [Error [#3]: Game is out of sync, please check log files for details.
Stack Trace:
./megaglest:Shared::Platform::megaglest_runtime_error::megaglest_runtime_error(std::string const&, bool)address [0x9fd422] line: 237
./megaglest:Glest::Game::Commander::buildCommand(Glest::Game::NetworkCommand const*) constaddress [0x57f2b2] line: 1115
./megaglest:Glest::Game::Commander::giveNetworkCommand(Glest::Game::NetworkCommand*) constaddress [0x581102] line: 963
./megaglest:Glest::Game::Commander::updateNetwork(Glest::Game::Game*)address [0x58439b] line: 641
./megaglest:Glest::Game::Game::update()address [0x5c3050] line: 2130
./megaglest:Glest::Game::Program::loopWorker()address [0x6af0e1] line: 459
./megaglest:Glest::Game::glestMain(int, char**)address [0x69d470] line: 5110
./megaglest:Glest::Game::glestMainSEHWrapper(int, char**)address [0x6a1569] line: 5357
/lib64/libc.so.6:__libc_start_main()address [0x7f2a18f12455] line: 0
./megaglest() [0x5147d9]address [0x5147d9]
]

DebugWorldSynchShort.log -> 2.80MB

...and full if someone want to see additionally ~5,5 million unimportant lines :D
debugWorldSynch.7z -> 16.65MB

softcoder

  • MegaGlest Team
  • Battle Machine
  • ********
  • Posts: 2,239
    • View Profile
Re: r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod
« Reply #3 on: 31 May 2013, 15:38:26 »
Sorry but log files are in different languages. I have made a change in svn to force logging to use english (hopefully i didn't miss any areas).

Feel free to try again and post logs.

tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod
« Reply #4 on: 31 May 2013, 22:47:29 »
We tried to reproduce this again today, once in a larger game with initially 3, later 4 people, where to the end of the game we did a lot of rejoins. And once on two separate games, one with 2 players on Linux-64 (Atze and I), the other Linux-64 and Windows-64 (Filux and Carolinus). I don't know the final results of the last game, but all other games went smoothly, no out of synchs. I assume the bug must still be present, though, since I don't see any commit messages which indicate that a fix could have been attempted regarding this since yesterday. So we'll test more.
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·

filux

  • MegaGlest Team
  • Draco Rider
  • ********
  • Posts: 310
  • was OpenSuse x64, is Debian testing x64
    • View Profile
Re: r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod
« Reply #5 on: 1 June 2013, 05:03:53 »
Our team reproduced this, but test among other things took a long time and logs are very ... very large.

The conditions were very similar (Carolinus as rejoined client):
...CPU Easy opponent. ... So he disconnected and rejoined again. And again there was no problem. So he did it once more, and again everything seemed to go well, but after some minutes while we were talking and I was killing some friendly units and moving my other units to my CPU team mates' main buildings,... suddenly went OOS.


tomreyn

  • Local Moderator
  • Airship
  • ********
  • Posts: 2,764
    • View Profile
    • MegaGlest - the free and open source cross platform 3D real-time strategy game
Re: r4338: Rejoin: OOS on linux-64 + linux-64, Prax mod
« Reply #6 on: 3 June 2013, 06:21:12 »
This is now better tracked at https://forum.megaglest.org/index.php?topic=9063.0 - closing as a [dupe].
atibox: Ryzen 1800X (8 cores @3.6GHz), 32 GB RAM, MSI Radeon RX 580 Gaming X 8G, PCI subsystem ID [1462:3417], (Radeon RX 580 chipset, POLARIS10) @3440x1440; latest stable Ubuntu release, (open source) radeon (amdgpu) / mesa video driver
atibox (old): Core2Quad Q9400 (4 cores @2.66GHz), 8 GB RAM, XFX HD-467X-DDF2, PCI subsystem ID [1682:2931], (Radeon HD 4670, RV730 XT) @1680x1050; latest stable Ubuntu release, (open source) radeon / mesa video driver
notebook: HP envy13d020ng
internet access: VDSL2+

· · · How YOU can contribute to MG · Latest development snapshot · How to build yourself · Megapack techtree · Currently hosted MG games · · ·