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
Crash in (PointCloud)OctomapUpdater after PlanningSceneMonitor::clearOctomap() has been called #399
Comments
Did you rebuild your full workspace? |
Yes, did a full rebuild (several times ;) ). I found some places in our code where the validation failed and fixed them. I can generally execute trajectories just fine. It only crashes once a update to the octomap is triggered. |
Hm, @rhaschke reviewed the locking code there some time ago, but I don't know whether he has time to look at this at the moment. Could you try a from-source build with debug symbols? |
I'm trying that at the moment but getting different errors, maybe I should uninstall the binaries first |
Hm, if you also build ompl in that workspace, that's probably a problem, but otherwise it should work. |
Theres a lot of octomap-related PRs here: https://github.com/ros-planning/moveit_ros/pulls |
So compiling kinetic-devel from trunk worked and it's running until the same or similar issue. Here is the relevant part of the backtrace: https://gist.github.com/simonschmeisser/6f1c2e5d1cf91912478148a28cfcb814 I'm a bit confused if the error might be on my side. I'm locking the PlanningSceneUpdater to create a copy, then afterwards I do some collision checking on that copy while a update to the Octomap of the "main" PlanningScene arrives. Those two should not interfere (if I'm doing things right at least). Here's the relevant code
(Note: somehow actually the two sleeps above where not sufficient and we're running into the case where cloning happens before the relevant octomap/pointcloud is processed) |
I did some further investigation and it turns out my code is running fine unless I either call
or the following code (that looks a bit strange) that we apparently use to reset the PlanningScene/PlanningSceneMonitor entirely
As soon as the next PointCloud arrives, I get a segfault in PointCloudOctomapUpdater. This should be reproducible using just a MoveGroup and a (PointCloud)OctomapUpdater and doing a publish, resetOctomap, publish https://gist.github.com/simonschmeisser/e52ad234018d4dae7d1c352de4437f88 |
There is a fix in the devel branch of octomap, just needs to be released ... |
Thanks for debugging this! |
Description
I am currently updating from a kinetic snapshot from 2016-07-24 to released kinetic binaries. Now I always get crashes when a new PointCloud arrives and is processed by PointCloudOctomapUpdater while TrajectoryExecutionManager::waitForExecution() is running.
Do I need to lock the PlanningSceneMonitor during trajectory execution? Should not be necessary right?
Your environment
Backtrace or Console output
Here is the backtrace of the three relevant threads, I fear it doesn't help too much
https://gist.github.com/simonschmeisser/c7f1d1be6591952d505fa05b307af982
The text was updated successfully, but these errors were encountered: