Unverified Commit 6337afec authored by Neelay Shah's avatar Neelay Shah Committed by GitHub
Browse files

chore: update for error messages (#3549)

parent 60ba7b25
......@@ -229,9 +229,9 @@ impl EndpointConfigBuilder {
// client.register_service()
let info = Instance {
component: component_name,
endpoint: endpoint_name,
namespace: namespace_name,
component: component_name.clone(),
endpoint: endpoint_name.clone(),
namespace: namespace_name.clone(),
instance_id: lease_id,
transport: TransportType::NatsTcp(subject),
};
......@@ -243,9 +243,16 @@ impl EndpointConfigBuilder {
.kv_create(&etcd_path, info, Some(lease_id))
.await
{
tracing::error!("Failed to register discoverable service: {:?}", e);
tracing::error!(
component_name,
endpoint_name,
error = %e,
"Unable to register service for discovery"
);
cancel_token.cancel();
return Err(error!("Failed to register discoverable service"));
return Err(error!(
"Unable to register service for discovery. Check discovery service status"
));
}
task.await??;
......
......@@ -95,16 +95,29 @@ impl Client {
let ((client, lease_id), rt) = build_in_runtime(
async move {
let client =
etcd_client::Client::connect(config.etcd_url, config.etcd_connect_options)
.await?;
let client = etcd_client::Client::connect(
config.etcd_url.clone(),
config.etcd_connect_options,
)
.await
.with_context(|| {
format!(
"Unable to connect to etcd server at {}. Check etcd server status",
config.etcd_url.join(", ")
)
})?;
let lease_id = if config.attach_lease {
let lease_client = client.lease_client();
let lease = create_lease(lease_client, 10, token)
.await
.context("creating primary lease")?;
.with_context(|| {
format!(
"Unable to create lease. Check etcd server status at {}",
config.etcd_url.join(", ")
)
})?;
lease.id
} else {
......@@ -177,9 +190,9 @@ impl Client {
Ok(())
} else {
for resp in result.op_responses() {
tracing::warn!("kv_create etcd op response: {resp:?}");
tracing::warn!(response = ?resp, "kv_create etcd op response");
}
Err(error!("failed to create key"))
Err(error!("Unable to create key. Check etcd server status"))
}
}
......@@ -220,11 +233,17 @@ impl Client {
Some(response) => match response {
TxnOpResponse::Txn(response) => match response.succeeded() {
true => Ok(()),
false => Err(error!("failed to create or validate key")),
false => Err(error!(
"Unable to create or validate key. Check etcd server status"
)),
},
_ => Err(error!("unexpected response type")),
_ => Err(error!(
"Unable to validate key operation. Check etcd server status"
)),
},
None => Err(error!("failed to create or validate key")),
None => Err(error!(
"Unable to create or validate key. Check etcd server status"
)),
}
}
}
......
......@@ -20,7 +20,10 @@ pub async fn create_lease(
match keep_alive(lease_client, id, ttl, child).await {
Ok(_) => tracing::trace!("keep alive task exited successfully"),
Err(e) => {
tracing::info!("keep alive task failed: {:?}", e);
tracing::error!(
error = %e,
"Unable to maintain lease. Check etcd server status"
);
token.cancel();
}
}
......@@ -61,9 +64,11 @@ pub async fn keep_alive(
loop {
// if the deadline is exceeded, then we have failed to issue a heartbeat in time
// we maybe be permanently disconnected from the etcd server, so we are now officially done
// we may be permanently disconnected from the etcd server, so we are now officially done
if deadline < std::time::Instant::now() {
return Err(error!("failed to issue heartbeat in time"));
return Err(error!(
"Unable to refresh lease - deadline exceeded. Check etcd server status"
));
}
tokio::select! {
......@@ -78,7 +83,7 @@ pub async fn keep_alive(
deadline = create_deadline(ttl)?;
if resp.ttl() == 0 {
return Err(error!("lease expired or revoked"));
return Err(error!("Unable to maintain lease - expired or revoked. Check etcd server status"));
}
}
......@@ -98,7 +103,11 @@ pub async fn keep_alive(
// immediately try to tick the heartbeat
// this will repeat until either the heartbeat is reestablished or the deadline is exceeded
if let Err(e) = heartbeat_sender.keep_alive().await {
tracing::warn!(lease_id, "keep alive failed: {:?}", e);
tracing::warn!(
lease_id,
error = %e,
"Unable to send lease heartbeat. Check etcd server status"
);
ttl = 0;
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment