wg-perception / object_recognition_ros

ROS components usable byt the object_recognition pipeline
16 stars 31 forks source link

app/server always escalates to SIGTERM on Ctrl+C #20

Open corot opened 8 years ago

corot commented 8 years ago

This happens only after at least one call to the action server. On Ctrl+C, the executions gets stuck on the final rospy.spin() until SIGTERM signal is received. It happens both with tabletop and tod detectors, so I think the problem is in the underlying ecto infraestructure. Another clue on this is that it seems to be a problem with a destroyed thread/mutex, and tabletop don't use threads at all (afaik):

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
[tabletop_object_recognition_server-7] escalating to SIGTERM

I tried also to manually handle the Ctrl+C signal as in here; surprisingly enough, it also scalate to SIGTERM but some times with different message:

[tabletop_object_recognition_server-7] escalating to SIGTERM
[senz3d-4] escalating to SIGTERM
[tabletop_object_recognition_server-7] escalating to SIGKILL
[rosout-1] killing on exit
[master] killing on exit
Shutdown errors:
 * process[tabletop_object_recognition_server-7, pid 370]: required SIGKILL. May still be running.
shutting down processing monitor...
... shutting down processing monitor complete

The non-server version of tabletop doesn't have this problem, but it calls the ecto cells in a completely different way (at least it seems so to me!).

Puzzling....