Description
Hi,
Sorry if this explanation sounds a bit convoluted, but we have been running into this intermittent issue for a while now. A sequence followed by a timeout connected to a retry node would sometimes fail with an exception stating that "This shouldn't happen". The timeout node was somehow returning IDLE to its parent.
I took a look, and it seems the timer runs in its own thread, halting its child and setting a flag if the timeout ever kicks in. This flag is later checked in the tick function.
On the other hand, the retry node returns its own status by calling status() if its child returns FAILURE and there are still tries left.
I think what's happening is that the timer kicks in and halts the retry node at the same time its tick function is being called, thus making it return IDLE at the end.
What do you think? Is this possible?