Wrong nodes in plans
arikon opened this issue · comments
В Plan попадают узлы, которые туда не должны попадать ни при каких обстоятельствах.
Эти узлы не связаны ни с корнем, ни с одним другим узлом. При этом выполняются во время выполнения плана.
Баг всплыл благодаря ассертам.
Проблема была в проверке при рекурсовной линковке узлов в план (Plan.injectSubArch()
) — проверка была неправильной. Важно было проверять, что parent существует в плане, а проверялось на существование одного из узлов (child || parent). Из-за этого возникали ситуации, когда в качестве parent к существующей ноде в плане линковалась нода, никак не связанная с корнем плана. В момент, когда её child выполнялся, она становилась непривязанной ни к одному узлу.