typedb
typedb copied to clipboard
Unexpected error during traversal plan optimisation
Running grabl on new cluster get this:
[scip_sol.c:349] ERROR: invalid SCIP stage <10>
13:06:42.555 g.c.t.p.GraphPlanner ERROR [127.0.0.1:11729::cluster-client-rpc::2] - Graph Planner: {
vertices:
$n [thing] { hasIID: false, types: [name], predicates: [] } (end)
$o [thing] { hasIID: false, types: [organisation], predicates: [] } (start)
edges:
($o H[HAS]T $n)
}
13:06:42.556 g.c.t.p.GraphPlanner ERROR [127.0.0.1:11729::cluster-client-rpc::2] - \ Generated by MPModelProtoExporter
\ Name :
\ Format : Free
\ Constraints : 15
\ Variables : 14
\ Binary : 14
\ Integer : 0
\ Continuous : 0
Minimize
Obj:
Subject to
vertex_con_$o_has_incoming_edges: +1 vertex_var_$o_has_incoming_edges -1 edge_var_($n_H[HAS]T_$o)_is_selected = 0
vertex_con_$o_has_outgoing_edges: +1 vertex_var_$o_has_outgoing_edges -1 edge_var_($o_T[HAS]H_$n)_is_selected = 0
vertex_con_$o_starting_or_incoming: +1 vertex_var_$o_is_starting_vertex +1 vertex_var_$o_has_incoming_edges = 1
vertex_con_$o_ending_or_outgoing: +1 vertex_var_$o_is_ending_vertex +1 vertex_var_$o_has_outgoing_edges = 1
vertex_con_$n_has_incoming_edges: +1 vertex_var_$n_has_incoming_edges -1 edge_var_($o_T[HAS]H_$n)_is_selected = 0
vertex_con_$n_has_outgoing_edges: +1 vertex_var_$n_has_outgoing_edges -1 edge_var_($n_H[HAS]T_$o)_is_selected = 0
vertex_con_$n_starting_or_incoming: +1 vertex_var_$n_is_starting_vertex +1 vertex_var_$n_has_incoming_edges = 1
vertex_con_$n_ending_or_outgoing: +1 vertex_var_$n_is_ending_vertex +1 vertex_var_$n_has_outgoing_edges = 1
planner_vertex_con_one_starting_vertex: +1 vertex_var_$o_is_starting_vertex +1 vertex_var_$n_is_starting_vertex = 1
edge_con_($o_H[HAS]T_$n)_one_direction: +1 edge_var_($o_T[HAS]H_$n)_is_selected +1 edge_var_($n_H[HAS]T_$o)_is_selected = 1
edge_con_($o_T[HAS]H_$n)_order_if_selected: -1 edge_var_($o_T[HAS]H_$n)_is_selected +1 edge_var_($o_T[HAS]H_$n)_order_assignment[0] = 0
edge_con_($o_T[HAS]H_$n)_assign_order_number: -1 edge_var_($o_T[HAS]H_$n)_order_number +1 edge_var_($o_T[HAS]H_$n)_order_assignment[0] = 0
edge_con_($n_H[HAS]T_$o)_order_if_selected: -1 edge_var_($n_H[HAS]T_$o)_is_selected +1 edge_var_($n_H[HAS]T_$o)_order_assignment[0] = 0
edge_con_($n_H[HAS]T_$o)_assign_order_number: -1 edge_var_($n_H[HAS]T_$o)_order_number +1 edge_var_($n_H[HAS]T_$o)_order_assignment[0] = 0
planner_edge_con_one_edge_at_order_01: +1 edge_var_($o_T[HAS]H_$n)_order_assignment[0] +1 edge_var_($n_H[HAS]T_$o)_order_assignment[0] = 1
Bounds
0 <= vertex_var_$o_is_starting_vertex <= 1
0 <= vertex_var_$o_is_ending_vertex <= 1
0 <= vertex_var_$o_has_incoming_edges <= 1
0 <= vertex_var_$o_has_outgoing_edges <= 1
0 <= vertex_var_$n_is_starting_vertex <= 1
0 <= vertex_var_$n_is_ending_vertex <= 1
0 <= vertex_var_$n_has_incoming_edges <= 1
0 <= vertex_var_$n_has_outgoing_edges <= 1
0 <= edge_var_($o_T[HAS]H_$n)_is_selected <= 1
0 <= edge_var_($o_T[HAS]H_$n)_order_number <= 1
0 <= edge_var_($o_T[HAS]H_$n)_order_assignment[0] <= 1
0 <= edge_var_($n_H[HAS]T_$o)_is_selected <= 1
0 <= edge_var_($n_H[HAS]T_$o)_order_number <= 1
0 <= edge_var_($n_H[HAS]T_$o)_order_assignment[0] <= 1
Binaries
vertex_var_$o_is_starting_vertex
vertex_var_$o_is_ending_vertex
vertex_var_$o_has_incoming_edges
vertex_var_$o_has_outgoing_edges
vertex_var_$n_is_starting_vertex
vertex_var_$n_is_ending_vertex
vertex_var_$n_has_incoming_edges
vertex_var_$n_has_outgoing_edges
edge_var_($o_T[HAS]H_$n)_is_selected
edge_var_($o_T[HAS]H_$n)_order_number
edge_var_($o_T[HAS]H_$n)_order_assignment[0]
edge_var_($n_H[HAS]T_$o)_is_selected
edge_var_($n_H[HAS]T_$o)_order_number
edge_var_($n_H[HAS]T_$o)_order_assignment[0]
End
13:06:42.559 g.c.r.RocksStorage ERROR [127.0.0.1:11729::cluster-client-rpc::2] - [INT11] Invalid Internal State: Unexpected error during traversal plan optimisation.
grakn.core.common.exception.GraknException: [INT11] Invalid Internal State: Unexpected error during traversal plan optimisation.
at grakn.core.common.exception.GraknException.of(GraknException.java:55)
at grakn.core.traversal.planner.GraphPlanner.throwPlanningError(GraphPlanner.java:372)
at grakn.core.traversal.planner.GraphPlanner.optimise(GraphPlanner.java:355)
at grakn.core.traversal.planner.Planner.tryOptimise(Planner.java:34)
at grakn.core.traversal.Traversal.producer(Traversal.java:128)
at grakn.core.traversal.TraversalEngine.producer(TraversalEngine.java:54)
at grakn.core.traversal.TraversalEngine.producer(TraversalEngine.java:48)
at grakn.core.reasoner.Reasoner.producer(Reasoner.java:165)
at grakn.core.reasoner.Reasoner.lambda$execute$3(Reasoner.java:101)
at grakn.core.common.iterator.MappedIterator.next(MappedIterator.java:40)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at grakn.core.common.iterator.AbstractResourceIterator.toList(AbstractResourceIterator.java:136)
at grakn.core.reasoner.Reasoner.execute(Reasoner.java:101)
at grakn.core.query.Matcher.execute(Matcher.java:120)
at grakn.core.query.Matcher.execute(Matcher.java:116)
at grakn.core.query.QueryManager.match(QueryManager.java:71)
at grakn.core.server.rpc.query.QueryHandler.match(QueryHandler.java:104)
at grakn.core.server.rpc.query.QueryHandler.handleRequest(QueryHandler.java:71)
at grakn.core.server.rpc.TransactionRPC.handleRequest(TransactionRPC.java:101)
at grakn.core.server.rpc.TransactionStream.handleRequest(TransactionStream.java:118)
at grakn.core.server.rpc.TransactionStream.onNext(TransactionStream.java:82)
at grakn.core.server.rpc.TransactionStream.onNext(TransactionStream.java:48)
at io.grpc.stub.ServerCalls$StreamingServerCallHandler$StreamingServerCallListener.onMessage(ServerCalls.java:255)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.messagesAvailableInternal(ServerCallImpl.java:309)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.messagesAvailable(ServerCallImpl.java:292)
at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1MessagesAvailable.runInContext(ServerImpl.java:782)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
@haikalpribadi can't seem to reproduce this anymore :(
Okay we'll move this to backlog for now, till we can reproduce it again, @lriuui0x0
Log from another instance of this happening:
14:32:28.299 g.c.t.p.GraphPlanner ERROR [grakn-core-service::0] - Graph Planner: {
vertices:
$n [thing] { hasIID: false, types: [name], predicates: [] } (start)
$o [thing] { hasIID: false, types: [organisation], predicates: [] } (end)
edges:
($o T[HAS]H $n)
}
14:32:28.299 g.c.t.p.GraphPlanner ERROR [grakn-core-service::0] - \ Generated by MPModelProtoExporter
\ Name :
\ Format : Free
\ Constraints : 15
\ Variables : 14
\ Binary : 14
\ Integer : 0
\ Continuous : 0
Minimize
Obj:
Subject to
vertex_con_$n_has_incoming_edges: +1 vertex_var_$n_has_incoming_edges -1 edge_var_($o_T[HAS]H_$n)_is_selected = 0
vertex_con_$n_has_outgoing_edges: +1 vertex_var_$n_has_outgoing_edges -1 edge_var_($n_H[HAS]T_$o)_is_selected = 0
vertex_con_$n_starting_or_incoming: +1 vertex_var_$n_is_starting_vertex +1 vertex_var_$n_has_incoming_edges = 1
vertex_con_$n_ending_or_outgoing: +1 vertex_var_$n_is_ending_vertex +1 vertex_var_$n_has_outgoing_edges = 1
vertex_con_$o_has_incoming_edges: +1 vertex_var_$o_has_incoming_edges -1 edge_var_($n_H[HAS]T_$o)_is_selected = 0
vertex_con_$o_has_outgoing_edges: +1 vertex_var_$o_has_outgoing_edges -1 edge_var_($o_T[HAS]H_$n)_is_selected = 0
vertex_con_$o_starting_or_incoming: +1 vertex_var_$o_is_starting_vertex +1 vertex_var_$o_has_incoming_edges = 1
vertex_con_$o_ending_or_outgoing: +1 vertex_var_$o_is_ending_vertex +1 vertex_var_$o_has_outgoing_edges = 1
planner_vertex_con_one_starting_vertex: +1 vertex_var_$n_is_starting_vertex +1 vertex_var_$o_is_starting_vertex = 1
edge_con_($o_T[HAS]H_$n)_one_direction: +1 edge_var_($o_T[HAS]H_$n)_is_selected +1 edge_var_($n_H[HAS]T_$o)_is_selected = 1
edge_con_($o_T[HAS]H_$n)_order_if_selected: -1 edge_var_($o_T[HAS]H_$n)_is_selected +1 edge_var_($o_T[HAS]H_$n)_order_assignment[0] = 0
edge_con_($o_T[HAS]H_$n)_assign_order_number: -1 edge_var_($o_T[HAS]H_$n)_order_number +1 edge_var_($o_T[HAS]H_$n)_order_assignment[0] = 0
edge_con_($n_H[HAS]T_$o)_order_if_selected: -1 edge_var_($n_H[HAS]T_$o)_is_selected +1 edge_var_($n_H[HAS]T_$o)_order_assignment[0] = 0
edge_con_($n_H[HAS]T_$o)_assign_order_number: -1 edge_var_($n_H[HAS]T_$o)_order_number +1 edge_var_($n_H[HAS]T_$o)_order_assignment[0] = 0
planner_edge_con_one_edge_at_order_01: +1 edge_var_($o_T[HAS]H_$n)_order_assignment[0] +1 edge_var_($n_H[HAS]T_$o)_order_assignment[0] = 1
Bounds
0 <= vertex_var_$n_is_starting_vertex <= 1
0 <= vertex_var_$n_is_ending_vertex <= 1
0 <= vertex_var_$n_has_incoming_edges <= 1
0 <= vertex_var_$n_has_outgoing_edges <= 1
0 <= vertex_var_$o_is_starting_vertex <= 1
0 <= vertex_var_$o_is_ending_vertex <= 1
0 <= vertex_var_$o_has_incoming_edges <= 1
0 <= vertex_var_$o_has_outgoing_edges <= 1
0 <= edge_var_($o_T[HAS]H_$n)_is_selected <= 1
0 <= edge_var_($o_T[HAS]H_$n)_order_number <= 1
0 <= edge_var_($o_T[HAS]H_$n)_order_assignment[0] <= 1
0 <= edge_var_($n_H[HAS]T_$o)_is_selected <= 1
0 <= edge_var_($n_H[HAS]T_$o)_order_number <= 1
0 <= edge_var_($n_H[HAS]T_$o)_order_assignment[0] <= 1
Binaries
vertex_var_$n_is_starting_vertex
vertex_var_$n_is_ending_vertex
vertex_var_$n_has_incoming_edges
vertex_var_$n_has_outgoing_edges
vertex_var_$o_is_starting_vertex
vertex_var_$o_is_ending_vertex
vertex_var_$o_has_incoming_edges
vertex_var_$o_has_outgoing_edges
edge_var_($o_T[HAS]H_$n)_is_selected
edge_var_($o_T[HAS]H_$n)_order_number
edge_var_($o_T[HAS]H_$n)_order_assignment[0]
edge_var_($n_H[HAS]T_$o)_is_selected
edge_var_($n_H[HAS]T_$o)_order_number
edge_var_($n_H[HAS]T_$o)_order_assignment[0]
End
The planner has now been overhauled with added fallbacks in case of planning errors. Resolved.