fix(link): reconnect after RPC send failures [CI]
This commit is contained in:
1 parent
6cf6b23585
commit
fe049c97fa
2 files changed
+38
-4
No files matched your search
@@ -214,7 +214,7 @@ public sealed class FleetLink
|
||||
|
||||
Task cancellation = Task.Delay(Timeout.Infinite, ct);
|
||||
Task finished = await Task.WhenAny(run, pump, heartbeat, cancellation);
|
||||
string finishedReason = DescribeFinishedTask(finished, run, pump, heartbeat);
|
||||
string finishedReason = DescribeFinishedTask(finished, run, pump, heartbeat, session.TransportFailure);
|
||||
if (ct.IsCancellationRequested)
|
||||
{
|
||||
try
|
||||
@@ -409,7 +409,7 @@ public sealed class FleetLink
|
||||
}
|
||||
}
|
||||
|
||||
private static string DescribeFinishedTask(Task finished, Task run, Task pump, Task heartbeat)
|
||||
private static string DescribeFinishedTask(Task finished, Task run, Task pump, Task heartbeat, string? transportFailure)
|
||||
{
|
||||
if (finished.IsFaulted)
|
||||
{
|
||||
@@ -417,6 +417,11 @@ public sealed class FleetLink
|
||||
return $"{taskName} failed: {finished.Exception?.GetBaseException().Message ?? "unknown error"}";
|
||||
}
|
||||
|
||||
if (finished == run && transportFailure is not null)
|
||||
{
|
||||
return "transport send failed: " + transportFailure;
|
||||
}
|
||||
|
||||
return finished == run ? "closed by server" : "link task stopped";
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user