Symantec Installation Manager will not launch when logged in with a specific User account: SIM has encountered a fatal exception and cannot continue.

book

Article ID: 170498

calendar_today

Updated On:

Products

Management Platform (Formerly known as Notification Server)

Issue/Introduction

An error occurs while launching SIM when logged in with an specific account. The customer gets the generic message:

Symantec Installation Manager has encountered a fatal exception and cannot continue. Please see the log file for more information.

The error was in the SIM logs:

Uncaught Exception in Application
One or more errors occurred.

[System.AggregateException @ mscorlib]
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2
bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState,
Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
at Symantec.Installation.Managers.ProductListingManager.GetAndLoadProductListings(ProductListingInfo mainPL)
at Symantec.Installation.Managers.ProductListingManager.LoadCurrentProductListings(
)
at Symantec.Installation.Managers.ProductListingManager.LoadAndUpdateProductListings()
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()

The file exists.

[System.IO.IOException @ mscorlib]
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Path.InternalGetTempFileName(Boolean checkHost)
at Symantec.Installation.Managers.ProductListingManager.ReadProductListingFile(Stri
ng productListingFile, String productListingLanguageFile, ProcessorType filterPlatform, Boolean skipValidation)
at Symantec.Installation.Managers.ProductListingManager.LoadProductListingData(String xmlFile, String xmlLangFile, Boolean populatePL)
at Symantec.Installation.Managers.ProductListingManager.GetAndLoadMainPL(ProductListingInfo pli)
at Symantec.Installation.Managers.ProductListingManager.<>c__DisplayClass38.<GetAndLoadProductListings>b__2c(ProductListingInfo pli)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )

Exception logged from:
at Symantec.Installation.Logging.LogActivity.ReportException(Int32 severity, String strMessage, String category, Exception exception, String footer)
at Symantec.Installation.Logging.LogActivity.ReportException(String strMessage, String category, Exception exception)
at Symantec.Installation.SimApplication.CurrentDomain_UnhandledException(Object sender, UnhandledExceptionEventArgs e)
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2
bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState,
Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body)
at Symantec.Installation.Managers.ProductListingManager.GetAndLoadProductListings(ProductListingInfo mainPL)
at Symantec.Installation.Managers.ProductListingManager.LoadCurrentProductListings(
)
at
Symantec.Installation.Managers.ProductListingManager.LoadAndUpdateProductListings()
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

The error was occurring after the Product Listing (PL) retrieving process: while trying to write the PL temp file. SIM was trying to write the PL file and it was erroring out with
(as mentioned in the SIM log entry above):
Uncaught Exception in Application
One or more errors occurred.
...
The file exists.

We found that this exception is thrown when there are more than 65000 temp files in the %TEMP% folder for this User.
That is why when the customer was launching SIM with a different account, it worked. The other user didn't have as many temp files in there.

Environment

ITMS 8.1
SIM 8.1.5429

Resolution

We looked at "C:\Users\USERNAME\AppData\Local\Temp" and we found that for this User, the temp directory had 65,580 files in there.

In order to solve this issue:

  1. Delete a couple of those temp files (reduce the total to something less than 60,000 files)
  2. Launch SIM again with the same problematic User account.

Attachments