Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
dynamo
Commits
6337afec
Unverified
Commit
6337afec
authored
Oct 13, 2025
by
Neelay Shah
Committed by
GitHub
Oct 13, 2025
Browse files
chore: update for error messages (#3549)
parent
60ba7b25
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
19 deletions
+54
-19
lib/runtime/src/component/endpoint.rs
lib/runtime/src/component/endpoint.rs
+12
-5
lib/runtime/src/transports/etcd.rs
lib/runtime/src/transports/etcd.rs
+28
-9
lib/runtime/src/transports/etcd/lease.rs
lib/runtime/src/transports/etcd/lease.rs
+14
-5
No files found.
lib/runtime/src/component/endpoint.rs
View file @
6337afec
...
@@ -229,9 +229,9 @@ impl EndpointConfigBuilder {
...
@@ -229,9 +229,9 @@ impl EndpointConfigBuilder {
// client.register_service()
// client.register_service()
let
info
=
Instance
{
let
info
=
Instance
{
component
:
component_name
,
component
:
component_name
.clone
()
,
endpoint
:
endpoint_name
,
endpoint
:
endpoint_name
.clone
()
,
namespace
:
namespace_name
,
namespace
:
namespace_name
.clone
()
,
instance_id
:
lease_id
,
instance_id
:
lease_id
,
transport
:
TransportType
::
NatsTcp
(
subject
),
transport
:
TransportType
::
NatsTcp
(
subject
),
};
};
...
@@ -243,9 +243,16 @@ impl EndpointConfigBuilder {
...
@@ -243,9 +243,16 @@ impl EndpointConfigBuilder {
.kv_create
(
&
etcd_path
,
info
,
Some
(
lease_id
))
.kv_create
(
&
etcd_path
,
info
,
Some
(
lease_id
))
.await
.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
();
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
??
;
task
.await
??
;
...
...
lib/runtime/src/transports/etcd.rs
View file @
6337afec
...
@@ -95,16 +95,29 @@ impl Client {
...
@@ -95,16 +95,29 @@ impl Client {
let
((
client
,
lease_id
),
rt
)
=
build_in_runtime
(
let
((
client
,
lease_id
),
rt
)
=
build_in_runtime
(
async
move
{
async
move
{
let
client
=
let
client
=
etcd_client
::
Client
::
connect
(
etcd_client
::
Client
::
connect
(
config
.etcd_url
,
config
.etcd_connect_options
)
config
.etcd_url
.clone
(),
.await
?
;
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_id
=
if
config
.attach_lease
{
let
lease_client
=
client
.lease_client
();
let
lease_client
=
client
.lease_client
();
let
lease
=
create_lease
(
lease_client
,
10
,
token
)
let
lease
=
create_lease
(
lease_client
,
10
,
token
)
.await
.await
.context
(
"creating primary lease"
)
?
;
.with_context
(||
{
format!
(
"Unable to create lease. Check etcd server status at {}"
,
config
.etcd_url
.join
(
", "
)
)
})
?
;
lease
.id
lease
.id
}
else
{
}
else
{
...
@@ -177,9 +190,9 @@ impl Client {
...
@@ -177,9 +190,9 @@ impl Client {
Ok
(())
Ok
(())
}
else
{
}
else
{
for
resp
in
result
.op_responses
()
{
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!
(
"
fai
le
d
to create key"
))
Err
(
error!
(
"
Unab
le to create key
. Check etcd server status
"
))
}
}
}
}
...
@@ -220,11 +233,17 @@ impl Client {
...
@@ -220,11 +233,17 @@ impl Client {
Some
(
response
)
=>
match
response
{
Some
(
response
)
=>
match
response
{
TxnOpResponse
::
Txn
(
response
)
=>
match
response
.succeeded
()
{
TxnOpResponse
::
Txn
(
response
)
=>
match
response
.succeeded
()
{
true
=>
Ok
(()),
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"
)),
}
}
}
}
}
}
...
...
lib/runtime/src/transports/etcd/lease.rs
View file @
6337afec
...
@@ -20,7 +20,10 @@ pub async fn create_lease(
...
@@ -20,7 +20,10 @@ pub async fn create_lease(
match
keep_alive
(
lease_client
,
id
,
ttl
,
child
)
.await
{
match
keep_alive
(
lease_client
,
id
,
ttl
,
child
)
.await
{
Ok
(
_
)
=>
tracing
::
trace!
(
"keep alive task exited successfully"
),
Ok
(
_
)
=>
tracing
::
trace!
(
"keep alive task exited successfully"
),
Err
(
e
)
=>
{
Err
(
e
)
=>
{
tracing
::
info!
(
"keep alive task failed: {:?}"
,
e
);
tracing
::
error!
(
error
=
%
e
,
"Unable to maintain lease. Check etcd server status"
);
token
.cancel
();
token
.cancel
();
}
}
}
}
...
@@ -61,9 +64,11 @@ pub async fn keep_alive(
...
@@ -61,9 +64,11 @@ pub async fn keep_alive(
loop
{
loop
{
// if the deadline is exceeded, then we have failed to issue a heartbeat in time
// if the deadline is exceeded, then we have failed to issue a heartbeat in time
// we may
be
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
()
{
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!
{
tokio
::
select!
{
...
@@ -78,7 +83,7 @@ pub async fn keep_alive(
...
@@ -78,7 +83,7 @@ pub async fn keep_alive(
deadline
=
create_deadline
(
ttl
)
?
;
deadline
=
create_deadline
(
ttl
)
?
;
if
resp
.ttl
()
==
0
{
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(
...
@@ -98,7 +103,11 @@ pub async fn keep_alive(
// immediately try to tick the heartbeat
// immediately try to tick the heartbeat
// this will repeat until either the heartbeat is reestablished or the deadline is exceeded
// this will repeat until either the heartbeat is reestablished or the deadline is exceeded
if
let
Err
(
e
)
=
heartbeat_sender
.keep_alive
()
.await
{
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
;
ttl
=
0
;
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment