FreeOrion

Forums for the FreeOrion project
It is currently Tue Jul 17, 2018 4:15 am

All times are UTC




Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: Tue Jul 03, 2018 3:48 am 
Offline
Krill Swarm

Joined: Wed Jun 27, 2018 7:40 am
Posts: 10
Hi,

RE: FreeOrionCH v0.4.8 (Linux)
[build 2018-06-14.3f22a75] CMake

I am trying to nail down a bug report for 0.4.8. Sometimes when I hit the invasion or establish outpost etc button between turns, ie after the end turn button has been pressed, but before the next turn has begun, I get the following behaviour:

- Turn begins and invasion/colonisation button then becomes available again
- If the button is pressed during the following turn, this action can no longer be performed on the planet, invasion etc is always unsuccessful from that point on, ship remains in the system.
- If the ship performing the action on the planet is destroyed and a new ship is brought in, the new ship cannot invade etc either.
- If the button is not pressed during the following turn, the player is presented with a cancel button after the next turn (2 turns after initial attempt)
- If the player cancels and attempts to repeat the action, the action can be performed on the planet as per normal.
- If the player waits several turns before revisiting the planet, the cancel button must be pressed as many times as turns have passed in order for the action to be performed as usual.

This is a bit of a late game bug as it is very difficult to attempt to perform the action between turns in a small galaxy or at the beginning of the game, as the time between turns is quite short. As the time between turns increases, so does the chances that the player will attempt to perfom actions between turns.

My sources were downloaded from Sourceforge and did not include the .git directory, so I am unable to currently replicate this bug very easily in the latest version, as I have limited Internet access.

I do have a save game where this bug is present.

I am currently unaware as to which part of the interim between turns is responsible for the bug.

If someone coud replicate this bug and provide more info it would be very helpful.

Thanks.


Top
 Profile  
 
PostPosted: Tue Jul 03, 2018 4:52 am 
Offline
Krill Swarm

Joined: Wed Jun 27, 2018 7:40 am
Posts: 10
Here is an archive containing an uncompressed save file with the issue present.


Attachments:
File comment: Save file containing colonisation bug.
warandpeace.sav.tar.bz2 [2.7 MiB]
Not downloaded yet
Top
 Profile  
 
PostPosted: Tue Jul 03, 2018 3:39 pm 
Offline
AI Lead, Programmer
User avatar

Joined: Sat Sep 22, 2012 6:25 pm
Posts: 4679
rallytoshelly wrote:
Sometimes when I hit the invasion or establish outpost etc button between turns, ie after the end turn button has been pressed, but before the next turn has begun
I don't have time to dig through the details right now, but this part caught my eye.

There is a bit of a sloppy aspect to the UI right now in how it handles that initial portion of a turn, in that for a short period the UI will look & act as if you can enter a variety of orders, but until the post-combat update arrives any such order attempts won't "stick". It can still be useful to click on systems and see (or remind yourself) what's there during that time.

We should get around to making the Map Window (well, all the main windows, really) aware of the current stage of turn processing, so that it doesn't even let you try to enter orders at a time when they would just get discarded. Feel free to open an Issue about that on github.

_________________
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0


Top
 Profile  
 
PostPosted: Tue Jul 03, 2018 4:26 pm 
Offline
Programming, Design, Admin
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 12231
Location: Munich
Dilvish wrote:
We should get around to making the Map Window (well, all the main windows, really) aware of the current stage of turn processing, so that it doesn't even let you try to enter orders at a time when they would just get discarded.
Some parts of the UI already do get disabled and re-enabled during turn processing, in part to avoid orders being issued when they can't be / won't stock. Definitely needs improvement, though.


Top
 Profile  
 
PostPosted: Tue Jul 03, 2018 5:45 pm 
Offline
Krill Swarm

Joined: Wed Jun 27, 2018 7:40 am
Posts: 10
The curious thing was that the order didn't get discarded, it became unavailable if repeated in the next turn, and then the error started stacking itself somehow.

I think I was able to trigger this as I am playing on relatively low end hardware.

Greying out the ability to trigger the order at this time would solve this issue, though, sorry for the long post. I found this one tricky to explain. I was able to trigger this problem a couple of times, but not determine exactly which part of the new turn sequence it emerged. Possibly I could use an even slower computer :)


Top
 Profile  
 
PostPosted: Tue Jul 03, 2018 6:14 pm 
Offline
Space Floater

Joined: Sat May 12, 2018 9:28 am
Posts: 34
rallytoshelly wrote:
The curious thing was that the order didn't get discarded, it became unavailable if repeated in the next turn, and then the error started stacking itself somehow.

I think I was able to trigger this as I am playing on relatively low end hardware.

Greying out the ability to trigger the order at this time would solve this issue, though, sorry for the long post. I found this one tricky to explain. I was able to trigger this problem a couple of times, but not determine exactly which part of the new turn sequence it emerged. Possibly I could use an even slower computer :)

i saw the same thing
there is a refresh state in the middle of the turn calculation. you can click on the invasion button or on some ships move with a weird result.
the autosaved turn file is damaged and store the bad state. restarting is not a solution.
you have to start back form the preceding turn N-1 to clean the things


Top
 Profile  
 
PostPosted: Tue Jul 03, 2018 7:57 pm 
Offline
Space Floater

Joined: Sat May 12, 2018 9:28 am
Posts: 34
last turn the troop ships were 1 tun movement from their target
during the turn calculation there was the "refresh" and the troop ships moved to their target raising the "invasion button"
so i pushed the button before the turn start

found in freeorion.log
Code:
 
21:15:21.323824 [debug] timer : ScopedTimer.cpp:179 : MapWnd::InitTurn - refresh production wnd time:       38 ms
21:15:21.323849 [debug] timer : ScopedTimer.cpp:179 : MapWnd::InitTurn - refresh indicators     time:       14 ms
21:15:21.323879 [debug] timer : ScopedTimer.cpp:179 : MapWnd::InitTurn - dispatch exploring     time:     3719 µs
21:15:21.323905 [debug] timer : ScopedTimer.cpp:189 : MapWnd::InitTurn                          time:     3872 ms
21:15:21.405220 [debug] timer : ScopedTimer.cpp:34 : SidePanel::RefreshImpl time:       34 ms
21:15:21.425133 [debug] timer : ScopedTimer.cpp:34 : SidePanel::RefreshImpl time:       19 ms
21:15:22.833708 [debug] FSM : HumanClientFSM.cpp:953 : Sending Save Game Data to Server
21:15:22.899897 [debug] FSM : HumanClientFSM.cpp:1048 : (PlayerFSM) PlayingGame::DispatchCombatLogs message received
21:15:22.900012 [debug] client : HumanClientApp.cpp:1005 : HCL Update Combat Logs
>>>
21:15:35.527074 [error] client : Order.cpp:668 : InvadeOrder::UndoImpl ship is not about to invade planet
...
21:15:39.975999 [error] client : Order.cpp:668 : InvadeOrder::UndoImpl ship is not about to invade planet
<<<
21:15:40.000465 [debug] timer : ScopedTimer.cpp:34 : RotatingPlanetControl::Refresh time:     1388 µs
21:15:40.312476 [error] client : Order.cpp:668 : InvadeOrder::UndoImpl ship is not about to invade planet
21:15:40.312611 [error] client : Order.cpp:668 : InvadeOrder::UndoImpl ship is not about to invade planet
21:15:42.109890 [debug] client : MapWnd.cpp:5502 : PlotFleetMovement
21:15:43.257773 [debug] client : Universe.cpp:1478 : Issue times: planet species: 0.239 ship species: 1.126 specials: 4.709 techs: 40.974 buildings: 3.624 hulls/parts: 5.993 fields: 0.565
21:15:43.257870 [debug] client : Universe.cpp:1485 : Evaluation time: 249.244 reorder time: 0.494
21:15:43.264977 [debug] timer : ScopedTimer.cpp:34 : Universe::ExecuteEffects time:     4268 µs
21:15:43.265193 [debug] timer : ScopedTimer.cpp:34 : Universe::UpdateMeterEstimatesImpl on 21 objects time:      145 ms
21:15:43.325760 [debug] timer : ScopedTimer.cpp:34 : SidePanel::RefreshImpl time:       59 ms
21:15:43.363873 [debug] timer : ScopedTimer.cpp:34 : SidePanel::RefreshImpl time:       38 ms
21:15:43.983407 [debug] client : MapWnd.cpp:5502 : PlotFleetMovement


from freeoriond.log
Code:
21:15:19.033854 [debug] IDallocator : IDAllocator.cpp:283 : Serialize IDAllocator()  server id = -1 empire id = 19
21:15:19.033885 [debug] IDallocator : IDAllocator.cpp:341 : Serialized [empire = 19 next id = 30769, ]
21:15:19.066250 [debug] server : SerializeUniverse.cpp:152 : Universe::serialize : serializing 18 types of statistic
21:15:19.066344 [debug] server : SerializeUniverse.cpp:154 : Universe::serialize : serializing done
21:15:19.066383 [debug] server : SerializeUniverse.cpp:157 : Universe::serialize : Cleaning up temporary data
21:15:19.067601 [debug] server : SerializeUniverse.cpp:173 : Universe::serialize done
21:15:19.089434 [debug] server : ServerApp.cpp:3397 : ServerApp::PostCombatProcessTurns done
21:15:19.089548 [debug] timer : ScopedTimer.cpp:34 : ServerApp::PostCombatProcessTurns time:    20237 ms
21:15:19.104175 [debug] FSM : ServerFSM.cpp:2130 : (ServerFSM) PlayingGame::RequestCombatLogs message received
21:15:19.105757 [debug] server : ServerApp.cpp:985 : UpdateCombatLogs returning 8 logs to player 1
21:15:22.848761 [debug] server : Message.cpp:1040 : deserializing orders
21:15:22.849032 [debug] server : Message.cpp:1042 : checking for ui data
21:15:22.849088 [debug] server : Message.cpp:1045 : deserializing UI data
21:15:22.849809 [debug] server : Message.cpp:1048 : checking for save state string
21:15:22.850047 [debug] FSM : ServerFSM.cpp:2605 : Finished ClientSaveData from outside of if.
....
21:16:17.802957 [debug] FSM : ServerFSM.cpp:2605 : Finished ClientSaveData from outside of if.
21:16:23.882848 [debug] server : Message.cpp:1040 : deserializing orders
21:16:23.893041 [debug] server : Message.cpp:1042 : checking for ui data
21:16:23.893720 [debug] server : Message.cpp:1048 : checking for save state string
21:16:23.893993 [debug] server : Message.cpp:1051 : deserializing save state string
21:16:23.898089 [debug] server : SaveLoad.cpp:114 : SaveGame(zlib-xml) filename: /home/phocas/.local/share/freeorion/save/auto/FreeOrion_Joueur_Empire_0232_20180703_211517.sav
21:16:23.898205 [debug] server : SaveLoad.cpp:117 : Compiling save empire and preview data
21:16:23.898691 [debug] server : SaveLoad.cpp:182 : Allocating buffers for XML serialization...


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group