fix(link): reconnect after RPC send failures [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful

This commit is contained in:
justme committed 2026-10-12 00:21:12 +08:00
1 parent 6cf6b23585
commit fe049c97fa
2 files changed
+38 -4

No files matched your search

+7 -2
View File
@@ -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";
}
}