Hi everyone,
We’ve just released ServiceControl 5.6.1.
Fixed bugs
- #4185 Large messages in the audit queue cannot be processed
- #3980 The API used by the ServicePulse monitoring page does not work for certain messages
How to know if you are affected
- You are affected by #4185 if you are using ServiceControl 5.0.0 or later and you send large messages from an audited endpoint.
- You are affected by #3980 if you are using ServiceControl 4.32.3 or later and, when you attempt to open the monitoring page for an endpoint in ServicePulse, it fails to load.
Symptoms
#4185
When a large message is sent from an audited endpoint, ingestion of the message fails and a message similar to the following is logged:
2024-05-21 08:03:46.8118|16|Fatal|ServiceControl.Audit.Auditing.AuditIngestion|OnCriticalError. 'Failed to import too many times'|System.InvalidOperationException: The link 'G6:14740510:amqps://**namespace removed**.servicebus.windows.net/-dd910ad4;0:7:8' is force detached by the broker because publisher(link3082) received a batch message with no data in it. Detach origin: Publisher.
#3980
The ServicePulse monitoring page fails to load, and message similar to the following is logged by ServiceControl:
Visiting /monitored-endpoints/<EndpointName>?history=5 for a problem endpoint locally (i.e. using localhost on the SC server itself) gives the following error (for version 5.0.3):
{
"message": "An error has occurred.",
"exceptionMessage": "Object reference not set to an instance of an object.",
"exceptionType": "System.NullReferenceException",
"stackTrace": " at ServiceControl.Monitoring.Http.Diagrams.DiagramApiController.GetSingleEndpointMetrics(String endpointName) in /_/src/ServiceControl.Monitoring/Http/Diagrams/DiagramApiController.cs:line 158\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\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 System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.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 System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.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 System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()"
}
When to upgrade
You should upgrade immediately if you are affected. Otherwise, you should upgrade during your next maintenance window.
Where to get it
You can download the new version of ServiceControl from our website or Docker Hub.
Please read our support policy for more details.
With thanks,
The team in Particular