MSS
MSS copied to clipboard
develop: multiple flightpath dockingwidget updates only local new flighpathes
When starting with local fligtpathes and the multiple flightpath dockingwidget a traceback occures when you then login. Also the new operation is not shown.
So, I tried debugging the errors I've been encountering while switching between operations.
I was able to consistently reproduce the errors (e.g., KeyError: 10, AttributeError: 'NoneType' object has no attribute 'all_waypoint_data', WARNING: Failed to load XML content for op_id: 9) by creating or deleting operations, followed by attempting to switch operations. Sometimes the error does occurs but sometimes if i do sometime differently it doesn't occurs.
So far i think that the dict_operations dictionary, which stores information about the operations, might be out of sync with the server-side state. This could happen due to:
- Issues with how the application adds/removes entries upon creation/deletion of operations.
- Potential timing problems where the code tries to use operation data before the server-side changes are fully reflected.
I'll be digging deeper into the operationsAdded and operationRemoved functions to ensure they properly update dict_operations.
their might be a race conditions idk.
I'm still unsure of the exact cause of the synchronization issue or what i think is correct or not, but I'll continue investigating and provide further updates. what do you think?
You can write a test which reproduces the problem.
In tests/_test_msui/test_mscolab.py are examples for login etc.
An other problem I look at https://github.com/Open-MSS/MSS/pull/2278
You can write a test which reproduces the problem.
In tests/_test_msui/test_mscolab.py are examples for login etc.
yes i have been trying to figure out that
An other problem I look at #2278
okey
The issue shows two bugs, the list of operations in the widget gots not extended and it crashes with selection of the not listed operation.
The previous changes have not fixed it. I assume that not updating the list is the major issue
Are you going to work on this now?
There are two ways how we can get new operations in the list, one is to add an operation the other is someone adds you to an operation. In both cases the docking widget needs to update its list.
This means always when the UI reloads the operation list because of an event the docking widgets list needs to become updated too.
Both ways currently are not working when we have the case described above.
A workaround is to cycle login.
Are you going to work on this now?
No, I want to make a 9.0.0 release, and the work on this likly get's continued by you :) after the release.
I provided a test which currently uses the add_operation which is a second path to get to new operations and some infra structure so it could become implemented. The create "new", or "delete" operation is not covered by that test yet. I also set it to xfail because we know that it fails. The two other features can become derived from the test. Once the problem is solved the test will succeed.