无法在 Orleans Runtime 中激活 Grains

问题描述 投票:0回答:1

我在激活谷物时遇到问题。我成功地建立了筒仓,但是grain激活抛出了TaskCanceledException。

以下日志可能有助于理解问题:

[Error] Orleans.Grain: Error activating grain [Activation: S192.168.1.33:10025:58975009/Placement=RandomPlacement State=Activating]
System.Threading.Tasks.TaskCanceledException: Timed out waiting for OnActivateAsync to complete
---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at Orleans.Internal.OrleansTaskExtentions.MakeCancellable(Task task, CancellationToken cancellationToken) in /_/src/Orleans.Core/Async/TaskExtensions.cs:line 188
   at Orleans.Internal.OrleansTaskExtentions.WithCancellation(Task taskToComplete, String message, CancellationToken cancellationToken) in /_/src/Orleans.Core/Async/TaskExtensions.cs:line 145
   
 
[Error] Orleans.Runtime.GrainDirectory.ClientDirectory: Exception publishing client routing table to silo 
 
Orleans.Runtime.OrleansMessageRejectionException: The target silo is no longer active: target was ......(silo details).. but this silo is ......(silo details)... The rejected message is Request [......(silo details)..  Orleans.Runtime.GrainDirectory.IRemoteClientDirectory.OnUpdateClientRoutes(System.Collections.Immutable.ImmutableDictionary`2[Orleans.Runtime.SiloAddress,System.ValueTuple`2[System.Collections.Immutable.ImmutableHashSet`1[Orleans.Runtime.GrainId],System.Int64]]) #2.
   at Orleans.Serialization.Invocation.ResponseCompletionSource.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) in /_/src/Orleans.Serialization/Invocation/ResponseCompletionSource.cs:line 98
   at System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c.<.cctor>b__4_0(Object state)
--- End of stack trace from previous location ---

我的猜测是我的谷物无法与筒仓通信。

尝试过的场景:

1.配置 Host Builder 时,将 Grain 的 ActivationTimeout 更改为 3 分钟(默认为 2 分钟)。

2.检查长时间运行的应用程序的 OnActivateAsync 方法。

请帮忙解决这个问题。

orleans silo
1个回答
0
投票

您可以分享一些代码重现来澄清问题吗?这很大程度上表明存在某种异步/等待错误,因为它正在超时。

© www.soinside.com 2019 - 2024. All rights reserved.