-
-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Server hang on communication disabling #53
Comments
Found the issue but I need suggestions.
When communication are disabled, kernel shared pointer is reset -> A possible solution is to capture a shared pointer inside the lambda instead of "raw" Drawback is that Kernel object might have connections inside it's parent hardware interface and the interface expect to have deleted the kernel immediately but in reality it might still use some callbacks or access some interface members |
In this particolar case we could just capture a copy of log ID and not capture |
This problem is partially fixed inside #59 but other lambdas passed to |
Think we should change the kernel cleanup a bit, instead of doing p.s. regarding |
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
See traintastic#53 When disabling communications, kernel object is deleted but EventLoop callback will run after and access deleted object through captured 'this' Temporary fix for this problem is to copy log ID value instead.
Describe the bug
Simple world with Z21 connected
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No hang
World export
Test Local Z21 2023-04-13_new.zip
Traintastic server/client:
Connected hardware
Z21ServerEmulator running on localhost
Additional context
A socket exception is catched on mani() so no backtrace. And it is not happening always...
The text was updated successfully, but these errors were encountered: