skiros2 icon indicating copy to clipboard operation
skiros2 copied to clipboard

Skill creation: Not naming skill primitive correctly leads to pickle error

Open matthiashh opened this issue 4 years ago • 1 comments

When expanding a skill like this:

        skill.setProcessor(Selector())
        skill(
            self.skill("check_if_reached", ""), 
            self.skill("PoseThreeAxis", "pose_three_axis"),
        )    

instead of this

        skill.setProcessor(Selector())
        skill(
            self.skill("Check", "check_if_reached"), 
            self.skill("PoseThreeAxis", "pose_three_axis"),
        )    

leads to a

Exception in thread Thread-17:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/ar-14/catkin_ws/src/libs/skiros2/skiros2/skiros2_skill/src/skiros2_skill/ros/skill_manager.py", line 61, in _run
    printer.traverse(t)
  File "/home/ar-14/catkin_ws/src/libs/skiros2/skiros2/skiros2_skill/src/skiros2_skill/core/visitors.py", line 40, in traverse
    self._setState(root.visit(self))
  File "/home/ar-14/catkin_ws/src/libs/skiros2/skiros2/skiros2_skill/src/skiros2_skill/core/skill.py", line 223, in visit
    return visitor.process(self)
  File "/home/ar-14/catkin_ws/src/libs/skiros2/skiros2/skiros2_skill/src/skiros2_skill/core/visitors.py", line 51, in process
    state = self.processChildren(procedure)
  File "/home/ar-14/catkin_ws/src/libs/skiros2/skiros2/skiros2_skill/src/skiros2_skill/core/visitors.py", line 106, in processChildren
[...]
  File "/usr/lib/python2.7/copy.py", line 182, in deepcopy
    rv = reductor(2)
TypeError: can't pickle thread.lock objects

that is not very descriptive.

matthiashh avatar Oct 23 '19 09:10 matthiashh

#80 is related - one could tackle them at the same time

matthias-mayr avatar Mar 01 '24 18:03 matthias-mayr