Я не вижу ничего очевидного в том, почему этот запрос дает вам переполнение стека. Однако, глядя на вашу трассировку стека, я полагаю (хотя и не уверен), что ваша проблема связана с вашим оператором return. Возможно, вы захотите разбить ваш запрос на более мелкие куски, чтобы увидеть, где возникает проблема.
Sidenote: вот подсказка, чтобы сделать ваш запрос более кратким:
.outE('priority').inV --write as--> out('priority')
Если единственное, что вы рассуждаете на ребре, это метка, то вы можете просто перепрыгивать между вершинами, а не касаться ребер.
Наконец, обратите внимание, что Gremlin 1.4 обеспечит функциональность "emit" с помощью шага loop (). Таким образом, вам не нужно sideEffect {} сохранять элементы во время цикла в списке, вы можете просто их лениво генерировать. Таким образом, будет легче сказать: «верните все, к чему я прикасаюсь, когда я зацикливаюсь на этой ветви».
Извинения за отсутствие прямого решения ....
Marko.
http://markorodriguez.com