Purpose
This document will provide details and a possible workaround of Shavlik Protect 9.1 crashing issue after upgrading from a previous version.
Description
Shavlik Protect starts to crash at seemingly random intervals after upgrading from a previous version.
To verify this you are encountering the same issue described in this article:
- Enable verbose logging in Tools > Options > Logging and restart Protect.
- Wait for the crash to occur and then navigate to where the logs are stored: C:\ProgramData\LANDesk\Shavlik Protect\Logs
- Open the ST.ServiceHost.managed.log and search for the following error.
Program.cs:26|System.InvalidOperationException: The associated product level must be persisted prior to merging the patch product level.
at ST.Data.Protect.Patches.Results.PatchProductLevel.PrepareForInsert()
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
at ST.Data.Protect.Patches.Results.PatchProductLevel.BulkMerge(ICollection`1 patchProductLevels, Connection connection)
at ST.Data.Protect.Patches.Results.PatchResultBatch.SaveResults(Connection connection)
at ST.Data.Protect.Results.ScanResultBatch.SaveRelatedResultBatch(Connection connection, TimeSpan timeout)
at ST.Data.Protect.Results.ScanResultBatch.Save(String connectionString, TimeSpan timeout)
at ST.Services.Import.BatchImporter.PersistResultPipeline.AttemptSave(PendingResultBatch pendingResultBatch)
at ST.Services.Import.BatchImporter.PersistResultPipeline.PersistResults()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Cause
Invalid data contained in a scan result(s) is causing the import process to fail and crash the Shavlik Protect Console service.
Resolution
You need to delete the result file causing the import crash.
- Navigate to C:\ProgramData\LANDesk\Shavlik Protect\Console\Arrivals
- Delete any XML file(s) you find in the sub-folders.
Normally, this is a 'one-off' issue and should not repeat itself. If it does, you should contact support directly to work through what could be causing these invalid results.
Affected Products(s)
Shavlik Protect 9.1