Shavlik Protect 9.1 Randomly Crashes After Upgrade

Version 2

    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:


    1. Enable verbose logging in Tools > Options > Logging and restart Protect.
    2. Wait for the crash to occur and then navigate to where the logs are stored: C:\ProgramData\LANDesk\Shavlik Protect\Logs
    3. 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.

     

    1. Navigate to C:\ProgramData\LANDesk\Shavlik Protect\Console\Arrivals
    2. 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