ServiceControl 4.3.4 - Critical patch release available

Hi everybody,

We’ve just released ServiceControl 4.3.4.

Fixed bugs

  • #1792 Failed message payload is deleted if larger than 100 KB

How to know if you’re affected

All users of ServiceControl 4.x are affected.

Symptoms

When ServiceControl ingests a failed message with a body of more than 100 KB, the message body is not stored. This means the message cannot be retried, and is effectively lost.

Should you upgrade immediately

You should upgrade immediately.

If you are unable to upgrade, apply the following workaround immediately to avoid message loss:

  1. Shutdown ServiceControl (ServiceControl Audit doesn’t have to be shut down).
  2. Add <add key="ServiceControl/MaxBodySizeToStore" value="2147483647" /> to ServiceControl.exe.config.
  3. Restart ServiceControl.

How to know whether failed messages have been stored without a body

  1. Switch ServiceControl into maintenance mode.
  2. In the RavenDB Studio indexes view, create a new index by selecting Indexes/+New index.
  3. Give the index a name. For example, FailedMessagesWithoutPayload.
  4. Copy the following snippet into the Maps field:
from message in docs.FailedMessages
where message.Status != 4
let last = DynamicEnumerable.LastOrDefault(message.ProcessingAttempts)
where ((bool)last.MessageMetadata["BodyNotStored"]) == true && ((int)last.MessageMetadata["ContentLength"]) > 0
select new {
    MessageId = last.MessageId,
}
  1. Save the index by clicking the save button or pressing Alt+S.
  2. Wait until the status indicator at the bottom of the RavenDB Studio shows no stale indexes.
  3. Query the index by clicking the play button or pressing Alt+Q.
  4. The results returned are the failed messages that were stored without a body. If no results are returned then no message bodies have been lost.
  5. Delete the index in the indexes view.
  6. Stop maintenance mode and restart ServiceControl.

Where to get it

You can download this release from our website.

With thanks,
The team in Particular

Please read our release policy for more details. Follow @ParticularNews to be notified of new releases and bug fixes.