Target Silo became unavailable

I’m submitting a…

[ ] Regression (a behavior that topped working in a new release)
[X ] Bug report
[ ] Performance issue
[ ] Documentation issue or request

Current behavior

When running the application I am getting this Silo error. I have had this issue on every machine I use. Squidex works for the first day or so that I am doing dev work on it then the next day I come back and it’s broken. Am I doing something wrong? Literally no code changed.

Expected behavior

Minimal reproduction of the problem

Stack trace:
{
“logLevel”: “Error”,
“message”: “Caught and ignored exception: Orleans.Runtime.SiloUnavailableException with mesagge: The target silo became unavailable for message: Request S172.20.10.6:11111:270586858grn/7483D9D2/00000
000@ac82e5a7->S10.123.110.221:11111:270453664
stg/12/0000000c@S0000000c #96: . Target History is: S10.123.110.221:11111:270453664:*stg/12/0000000c:@S0000000c. See https://aka.ms/orleans-troubleshootin
g for troubleshooting help. thrown from timer callback GrainTimer. TimerCallbackHandler:OrleansDashboard.DashboardGrain->System.Threading.Tasks.Task Callback(System.Object)”,
“eventId”: {
“id”: 101413
},
“exception”: {
“type”: “Orleans.Runtime.SiloUnavailableException”,
“message”: “The target silo became unavailable for message: Request S172.20.10.6:11111:270586858grn/7483D9D2/00000000@ac82e5a7->S10.123.110.221:11111:270453664stg/12/0000000c@S0000000c #96: . Targ
et History is: S10.123.110.221:11111:270453664:*stg/12/0000000c:@S0000000c. See https://aka.ms/orleans-troubleshooting for troubleshooting help.”,
“stackTrace”: " at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at O
rleans.OrleansTaskExtentions.<g__ConvertAsync|4_0>d1.MoveNext() in D:\\build\\agent2\\_work\\13\\s\\src\\Orleans.Core\\Async\\TaskExtensions.cs:line 100\r\n--- End of stack trace from prev ious location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotif ication(Task task)\r\n at Orleans.Runtime.Management.ManagementGrain.<GetTotalActivationCount>d__25.MoveNext() in D:\\build\\agent2\\_work\\13\\s\\src\\Orleans.Runtime\\Core\\ManagementGrain.cs:line 2 23\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAw aiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.Runtime.OrleansCodeGenManagementGrainMethodInvoker.<Invoke>d__0.MoveNext() in D:\\build\\agent2\\_work\\13\\s\\src\\Orleans.Core \\obj\\Release\\netstandard2.0\\Orleans.Core.orleans.g.cs:line 3273\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDis patchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.Runtime.GrainMethodInvoker.<Invoke>d__21.MoveNext() in D:\\buil d\\agent2\\_work\\13\\s\\src\\Orleans.Runtime\\Core\\GrainMethodInvoker.cs:line 91\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServic es.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Squidex.Infrastructure.Orleans.LocalCacheFilter.<Invoke> d__2.MoveNext() in C:\\Users\\Blake\\Desktop\\SeqTek\\squidex\\src\\Squidex.Infrastructure\\Orleans\\LocalCacheFilter.cs:line 37\r\n--- End of stack trace from previous location where exception was thro wn ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.Ru ntime.GrainMethodInvoker.<Invoke>d__21.MoveNext() in D:\\build\\agent2\\_work\\13\\s\\src\\Orleans.Runtime\\Core\\GrainMethodInvoker.cs:line 71\r\n--- End of stack trace from previous location where exc eption was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at OrleansDashboard.GrainProfiler.<Invoke>d__12.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchIn fo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.Runtime.GrainMethodInvoker.<Invoke>d__21.MoveNext() in D:\\build\\agen t2\\_work\\13\\s\\src\\Orleans.Runtime\\Core\\GrainMethodInvoker.cs:line 71\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.Exce ptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.Runtime.InsideRuntimeClient.<Invoke>d__62.MoveNext() in D:\\build\\agent2\\_work\\13\\s\\src\\Orleans.Runtime\\Core\\InsideRuntimeClient.cs:line 352\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.Exce ptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.OrleansTaskExtentions.<<ToTypedTask>g __ConvertAsync|4_0>d1.MoveNext() in D:\build\agent2\_work\13\s\src\Orleans.Core\Async\TaskExtensions.cs:line 100\r\n— End of stack trace from previous location where exception was thrown —
\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at OrleansDashboard
.DashboardGrain.d__8.MoveNext()\r\n— End of stack trace from previous location where exception was thrown —\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Orleans.Runtime.GrainTimer.d__21.MoveNext() in D:\build\agent2\_work\
13\s\src\Orleans.Runtime\Timers\GrainTimer.cs:line 131"
},
“app”: {
“name”: “Squidex”,
“version”: “1.0.0.0”,
“sessionId”: “8b74bd4e-52b8-4ccc-8b2c-31720a0effa2”
},
“timestamp”: “2018-07-29T19:01:33.5497400Z”,
“category”: “Orleans.Runtime.GrainTimer”
}

Environment

  • [ ] Self hosted with version docker
  • [X ] Self hosted with IIS
  • [ ] Self hosted with other version
  • [ ] Cloud version

Browser:

  • [ X] Chrome (desktop)
  • [ ] Chrome (Android)
  • [ ] Chrome (iOS)
  • [ ] Firefox
  • [ ] Safari (desktop)
  • [ ] Safari (iOS)
  • [ ] IE
  • [ ] Edge

Others:

It is actually not a bug. Orleans uses the public IP to setup your cluster. But usually this IP changes every 24 hours for personal internet connections. So the next day you get a new IP and Orleans tries to find the silo/node with the old IP.

The easiest solution: Turn it off: https://github.com/Squidex/squidex/blob/master/src/Squidex/appsettings.json#L134

1 Like

That worked, thank you!