-
Notifications
You must be signed in to change notification settings - Fork 35
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
segmentation fault on nodelet close #39
Comments
Are you using external triggering? |
Not in this case. I am using strobe output, but I don't that should matter. On Wed, Jul 9, 2014 at 12:58 PM, jack-oquin [email protected]
|
Would you mind running the same test with the |
I am using hydro actually.
|
The backtrace implies you built it from source in the I wanted to know if the current released version (camera1394-1.9.5) has the same problem. One easy way to do that is:
Or, you can check out the |
You are right, I didn't realize. I just tried the system installed version (1.9.4) and it also happens:
|
You are still running |
Sorry again. I have now removed everything from my workspace and it seems a [left-2] killing on exit (no backtrace this time) On Fri, Jul 11, 2014 at 4:06 PM, jack-oquin [email protected]
|
This happens intermittently? Not every time? It's always on exit, right? |
Yes (to all questions) On Sat, Jul 12, 2014 at 8:38 PM, jack-oquin [email protected]
|
Hard to solve this without more information. |
Ok, maybe when I compile the driver from the git repo to address the offset On Sat, Jul 12, 2014 at 9:23 PM, jack-oquin [email protected]
|
Good idea. Thanks for helping. |
Hi, |
Hi, can you verify that the nodelet is correctly calling the destructors as expected? I been having some difficulties using nodelets and it seems, after recent updates in several ROS core packages, things have improved. I added "std::cout" messages in destructors (ROS_INFO* does not work at such stage) to ensure my destructors are called and it now seems to be working much more robustly. However, I have a roslaunch file which loads a nodelet manager where both the camera1394 nodelets (left and right) and my nodelets are loaded. My destructors were not being called whenever I CTRL+C'd. I now switched to using camera1394 nodes instead of nodelets and my destructors are being called correctly. It all seems to point that the nodelet manager dies due to camera1394 nodelets. I see you have some ROS_INFO calls on destructors but as I said these will never be visible. Would you check if switching to std::cout makes the messages appear? Otherwise, I suspect something is not completely correct in how the nodelets are shut-down. |
PS: I still get the double free from time to time |
PS2: it is not just with nodelets. I switched to regular nodes since this crashing made the manager crash and so did all my own nodelets and they were not deinitialized correctly. Now this problem does not affect my nodelets but it is still present. I get the double free message sometimes at shutdown and some times it hangs there after this message and eventally ROS kills when it realizes it is not responding. |
Knowing that it affects nodes, too, is helpful. Is it possible to get a backtrace of that failure, as well? |
Hi, #0 0x00007ffff594de94 in free () from /usr/lib/libc.so.6 |
PS: I would guess that the driver is being polled after deinitialization has happened, since this occurs when CTRL+C-ing the node. |
Maybe this is the offending line? https://github.com/ros-drivers/camera1394/blob/master/src/nodes/driver1394.cpp#L395 It appears the close is called without locking the mutex and moreover the driver is closed before the CLOSED flag is set, therefore a call to publish() may be issued while the driver is being closed, right? |
Sounds plausible, I'll take look at it. Thanks for doing all this work! |
any news on this? I'm still suffering this crash very often |
I have the following launch file:
And, when doing CTRL+C, sometimes I get:
The text was updated successfully, but these errors were encountered: