|
|
|
@@ -1,4 +1,7 @@ |
|
|
|
use std::collections::{HashMap, HashSet}; |
|
|
|
use std::{ |
|
|
|
collections::{HashMap, HashSet}, |
|
|
|
intrinsics::mir::Len, |
|
|
|
}; |
|
|
|
|
|
|
|
use dora_core::{ |
|
|
|
config::NodeId, |
|
|
|
@@ -6,7 +9,7 @@ use dora_core::{ |
|
|
|
daemon_messages::{DaemonReply, DataflowId, Timestamped}, |
|
|
|
message::uhlc::{Timestamp, HLC}, |
|
|
|
}; |
|
|
|
use eyre::{bail, Context}; |
|
|
|
use eyre::{bail, Context, ContextCompat}; |
|
|
|
use tokio::{net::TcpStream, sync::oneshot}; |
|
|
|
|
|
|
|
use crate::tcp_utils::tcp_send; |
|
|
|
@@ -128,11 +131,20 @@ impl PendingNodes { |
|
|
|
None => Ok(()), |
|
|
|
} |
|
|
|
} else { |
|
|
|
let node_id_message = if self.exited_before_subscribe.len() == 1 { |
|
|
|
self.exited_before_subscribe |
|
|
|
.iter() |
|
|
|
.next() |
|
|
|
.map(|node_id| node_id.to_string()) |
|
|
|
.unwrap_or("<node_id>".to_string()) |
|
|
|
} else { |
|
|
|
"<node_id>".to_string() |
|
|
|
}; |
|
|
|
Err(format!( |
|
|
|
"Some nodes exited before subscribing to dora: {:?}\n\n\ |
|
|
|
This is typically happens when an initialization error occurs |
|
|
|
in the node or operator. To check the output of the failed |
|
|
|
nodes, run `dora logs {} <node_id>`.", |
|
|
|
nodes, run `dora logs {} {node_id_message}`.", |
|
|
|
self.exited_before_subscribe, self.dataflow_id |
|
|
|
)) |
|
|
|
}; |
|
|
|
|