You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How to Reproduce
This can be easily reproduced by building the Sample BehaviorTree.CPP Project. I did so using colcon and modifying the static const char* xml_text on line 6 with the behavior trees shown above.
The text was updated successfully, but these errors were encountered:
recursive behavior tree are not supported and will never be. This should not be accepted in the first place, therefore the "bug" is allowing you to try doing it, without giving a proper error message
Wow, fast response! I was in the process of writing this suggestion:
Suggestions
I am assuming that recursive behavior trees should not be encouraged by design, so these are related to preventing their creation:
In XMLParser::PImpl::recursivelyCreateSubtree when subtrees nodes are created, check that the subtree ID does not already exist in its prefix.
Uh oh!
There was an error while loading. Please reload this page.
Describe the bug
Behavior trees can be provided their own ID as a Subtree leading to a stack overflow during parsing (this also works for cycles).
Example simple recursive behavior tree (slightly modified from btcpp_sample):
Resulted in this backtrace:
More complex example of a cyclical recursive behavior tree (again, slightly modified from btcpp_sample):
How to Reproduce
This can be easily reproduced by building the Sample BehaviorTree.CPP Project. I did so using
colcon
and modifying thestatic const char* xml_text
on line 6 with the behavior trees shown above.The text was updated successfully, but these errors were encountered: