Put 2 nodes into the graph, create an edge between the two.
mark that edge, delete it.
Problem: noflo-ui sends removeedge, but then a changeedge on the deleted edge which does not exist any more.
An error is returned.
INFO flowd_rs > response: sending network:edges response
INFO flowd_rs > --- end of message handling iteration
INFO flowd_rs > waiting for next message
INFO flowd_rs > got a text|binary message
INFO flowd_rs > got graph:removeedge message
INFO flowd_rs > remove_edge: GraphNodeSpec { node: "Repeat_7x9cc", port: "OUT", index: None } == GraphNodeSpec { node: "Repeat_7x9cc", port: "OUT", index: None } && GraphNodeSpec { node: "Drop_dn79b", port: "IN", index: None } == GraphNodeSpec { node: "Drop_dn79b", port: "IN", index: None } ?
INFO flowd_rs > yes
INFO flowd_rs > edge count now: 0
INFO flowd_rs > response: sending graph:removeedge response
INFO flowd_rs > --- end of message handling iteration
INFO flowd_rs > waiting for next message
INFO flowd_rs > got a text|binary message
INFO flowd_rs > got graph:changeedge message
ERROR flowd_rs > graph.change_edge() failed: edge with that src+tgt not found
INFO flowd_rs > response: sending graph:error response
INFO flowd_rs > --- end of message handling iteration
INFO flowd_rs > waiting for next message
Seems to be some data race, because most of the time the changeede arrives first, but not always.
Anyway, why call changeedge when it gets removed anyway? removeedge includes/implies changeedge
the changeedge just contains metatdata {route: ""} - seems unneccessary
To reproduce: