Giter Club home page Giter Club logo

Comments (8)

Sanic avatar Sanic commented on May 31, 2024

Hi @Hemofektik
Is this issue somehow related to your latest fixes? In 9f7468e you referenced some premature tcp disconnects and introduced locking operations for the callback topics which brought me back to this issue....

from rosintegration.

Hemofektik avatar Hemofektik commented on May 31, 2024

Hi,

the premature disconnects and the locking operation was for incoming messages only. But the problems fixed by that sound exactly as described by @aaronsnoswell but not for publishing messages.
Race conditions with topic->publish could only happen if you use one or multiple topics from different threads. That is not supported yet. @aaronsnoswell Do you use multiple threads.

P.S.: I already checked in queued publishers that would allow this behavior to work (additionally to the main feature to send messages asynchronously to the rosbridge and queue the messages). I will make a pull request for that soon.

from rosintegration.

Hemofektik avatar Hemofektik commented on May 31, 2024

Please check if #23 fixes your problem.

from rosintegration.

aaronsnoswell avatar aaronsnoswell commented on May 31, 2024

@Hemofektik No I don't believe I was using multiple threads. Sorry I don't have my project where I was testing this library available any more so I'm unable to test :(

from rosintegration.

Hemofektik avatar Hemofektik commented on May 31, 2024

I just read your initial post again and I think what you experienced was the GraceTime of the TCPConnection. It tries to send the message forcefully over a period of 4 seconds before it gives up and discards the message. This blocks the main thread for 4 seconds. This will happen for each message send as soon as the connection to the rosbridge_server is lost.

IMHO, this GraceTime thingy has to be removed anyway because this type of error handling is way too deep buried into the Plugin and nobody is able anymore to decide by themselves to handle such situations differently.

from rosintegration.

Hemofektik avatar Hemofektik commented on May 31, 2024

The handling of ROS Connections/sockets/publishing was refactored very much since back then. This problem most probably no longer exists.

from rosintegration.

Sanic avatar Sanic commented on May 31, 2024

Thanks for the info. Then i'll close this issue. For future readers: Please don't hesitate to open new tickets when the problem appears again. Please reference this issue when you see this problem again.

from rosintegration.

finger563 avatar finger563 commented on May 31, 2024

I'm seeing this on the latest codebase (with the required fixes to run on UE 4.24). I'm publishing TransformedStamped data (multiple transforms) each @ about 2 Hz. After a minute or two UE4 crashes and points to where I call TransformTopic->Publish( ... ) Any ideas why I might be seeing this? the network connection is fine (windows host running UE4 to Linux VM in VMWare) and up until the crash I'm getting all my data just fine. Sometimes the editor doesn't crash, but the publishers stop sending data (e.g. the publish code is still running in UE4, and rosbridge still shows that the client is connected, but no topics are received anymore). I think the two issues are related.

EDIT: it seems the issue may have been not having UPROPERTY() on my topic pointers in my class header as mentioned here: #32. Adding that seems to ensure i keep sending data and there is no crash :)

from rosintegration.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.