RoboCup-SSL / grSim

RoboCup Small Size Robot Soccer Simulator
https://ssl.robocup.org/league-software/
Other
127 stars 130 forks source link

Segmentation after changing 'command Listen Port' #128

Open kianbehzad opened 3 years ago

kianbehzad commented 3 years ago

Describe the bug The initial state of the commandSocket works fine. However, after changing the command Listen Port grSim crashes after receiving new commands. (this issue happens most frequently in macOS )

To Reproduce Steps to reproduce the behavior: most frequently happens in macOS, rarely in ubuntu due to its memory management policy

  1. open both grSim and the client
  2. change command Listen Port from grSim
  3. connect to the new port from the client and send new commands.
  4. grSim will be terminated

Expected behavior receive the commands from the new port and apply them.

Desktop

My opinion to fix the issue add the following line in mainwindow.cpp -> reconnectCommandSocket function (before connecting signal and slot)

glwidget->ssl->commandSocket = commandSocket;
g3force commented 3 years ago

I've run into the same or similar issue and fixed it here: https://github.com/RoboCup-SSL/grSim/pull/144/commits/06edd4f82aed8b7e6eba4af8a7158dd51ee43aa4

Can you verify if this solves your issue as well? You can test it on the feature/simulator-protocol branch.