You may have noticed the following warnings coming from the agent logs while trying to establish a Task Server connection with the SMP Server (in this case, the SMP Server had the Task Service enabled so it could serve as a Task Server too):
Log entry from a client machine:
Tickle: Connection error occurred: CAtrsException exception, error: Error reading data from socket. You may see this exception if atrshost service was restarted or if connection from Client to Task Server tickle port: '50124' is lost by some reasons, OS error: An existing connection was forcibly closed by the remote host (10054), at line 596
re-throw at CTaskServerDirectConnection::_OnReceiveReady
-----------------------------------------------------------------------------------------------------
Date: 3/26/2024 12:30:37 PM, Tick Count: 97115109 (1.02:58:35.1090000), Size: 650 B
Process: AeXNSAgent.exe (1260), Thread ID: 16464, Module: client task agent.dll
Priority: 2, Source: Client Task Agent
And in the NS logs, we can see these entries when the warning above is occurring:
(socket) failed to finish processing tickle connection: '10.0.0.156:47289' (#29126747)
Failed to decrypt data[471] from client ('10.0.0.156:47289' (#29126747)): xxxxxxB9082C59E6B272997149BFBB7AE5824954C5A98BCB2C0B9978CBBE5DC14E11EE71D3780282FCF6EC0E8BF79C8D4B4CFED66FA0D16ED912040183F7A56E7E60F9A843D8A039CE5890F6A1964E561B6C5B72E308F7374D733DCDDF8197A324EB97B6B5DAC91B2871212E8D35CD1F9B7CCBA338CA00AA3AA5152F11C17E5FE4C757D912A18157F026A7FC2BFB744282381C61501A987B471A5AB8E6DB4E5A3328E3423CD2427D60793CEF633D030447C84429BA9666DFCFE7592AD84EAED83038C1802CA17E90A16AF897ACAA295C3E402C2ED75E87615CF760BFA1D73A803FA3874645B3028961E0CFDC2B850E3B39864895E64F036D933A141C0F192AC16870948EBB5B7608C72BAE45B88B0FF4330E5889F924AF58FE2F01EE6CB821D53F7EB4CC13186CE0FFBD64176C18162ACB6C9CBE2B7E03FA96533A81FFE71EAB0D65B4A37000FB80F6DA364D6C1210F8E78E11E15DCBC73084643464E7FC544F3ECFCC8A9FF3B2DB16A50C93DB51ACAE85A5C7AF0F90E3E254AC1F73B0CD93712AB363B7CED020324E93C015DF4EC93EFCFB7385CC451BA30E1B424B9CD220850EF407824A580992CBE9xxxxxxx
[System.Exception @ Altiris.ClientTask.Server]
at Altiris.ClientTask.Server.RemoteClientTaskManager.GetResourceGuidFromEncryptedClientData(Byte[] clientData, Socket clientSocket)
at Altiris.ClientTask.Server.RemoteClientTaskManager.FinishProcessingClientConnection(Byte[] clientData, Socket clientSocket)
DecryptData failure. Error 2148073477
[System.Runtime.InteropServices.COMException @ Altiris.TaskManagement.Common]
at Symantec.NSAgent.AgentStorage.DecryptData(Byte[] encryptedData, UInt32 flags)
at Altiris.TaskManagement.Common.ClientTask.Communication.NsIdentityContext.EnsureExecutedAsLocalSystemIdentity[TResult](Func`1 fn, ThrottledLogAction`2 logAction)
at Altiris.ClientTask.Server.RemoteClientTaskManager.GetResourceGuidFromEncryptedClientData(Byte[] clientData, Socket clientSocket)
COM Exception errcode: 0x80090005
Exception logged from:
at Altiris.DotNetLib.Logging.AtrsLog.ExceptionMessage(String message, Exception exception)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnSocketException(Int32 level, String message, Nullable`1 epGuid, Socket sock, Exception ex)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnSocketException(String message, Nullable`1 epGuid, Socket sock, Exception ex)
at Altiris.ClientTask.Server.RemoteClientTaskManager.FinishProcessingClientConnection(Byte[] clientData, Socket clientSocket)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnReceivePendingConnectionData(Socket sock, SocketWatchEvent eventType, Boolean& bReEnableRead)
at Altiris.DotNetLib.Sockets.SocketWatchThread.ServePendingRead(WatchLoopData data, SocketWatchEntry poll)
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 <p0>)
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.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.Task.InternalRunSynchronously(TaskScheduler scheduler, Boolean waitForCompletion)
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`2 body)
at Altiris.DotNetLib.Sockets.SocketWatchThread.ServeLoop(WatchLoopData data)
at Altiris.DotNetLib.Sockets.SocketWatchThread.WatchThreadProc()
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()
-----------------------------------------------------------------------------------------------------
Date: 3/26/2024 12:32:16 PM, Tick Count: 97214281 (1.03:00:14.2810000), Size: 5.21 KB
Process: AtrsHost (8028), Thread ID: 126, Module: Altiris.ClientTask.Server.dll
Priority: 1, Source: RemoteClientTaskManager
(socket) failed to process incoming tickle connection: #29126747
Failed to decrypt data[471] from client ('10.0.5.156:47289' (#29126747)): xxxxxxB9082C59E6B272997149BFBB7AE5824954C5A98BCB2C0B9978CBBE5DC14E11EE71D3780282FCF6EC0E8BF79C8D4B4CFED66FA0D16ED912040183F7A56E7E60F9A843D8A039CE5890F6A1964E561B6C5B72E308F7374D733DCDDF8197A324EB97B6B5DAC91B2871212E8D35CD1F9B7CCBA338CA00AA3AA5152F11C17E5FE4C757D912A18157F026A7FC2BFB744282381C61501A987B471A5AB8E6DB4E5A3328E3423CD2427D60793CEF633D030447C84429BA9666DFCFE7592AD84EAED83038C1802CA17E90A16AF897ACAA295C3E402C2ED75E87615CF760BFA1D73A803FA3874645B3028961E0CFDC2B850E3B39864895E64F036D933A141C0F192AC16870948EBB5B7608C72BAE45B88B0FF4330E5889F924AF58FE2F01EE6CB821D53F7EB4CC13186CE0FFBD64176C18162ACB6C9CBE2B7E03FA96533A81FFE71EAB0D65B4A37000FB80F6DA364D6C1210F8E78E11E15DCBC73084643464E7FC544F3ECFCC8A9FF3B2DB16A50C93DB51ACAE85A5C7AF0F90E3E254AC1F73B0CD93712AB363B7CED020324E93C015DF4EC93EFCFB7385CC451BA30E1B424B9CD220850EF407824A580992CBE9xxxxxxx
[System.Exception @ Altiris.ClientTask.Server]
at Altiris.ClientTask.Server.RemoteClientTaskManager.GetResourceGuidFromEncryptedClientData(Byte[] clientData, Socket clientSocket)
at Altiris.ClientTask.Server.RemoteClientTaskManager.FinishProcessingClientConnection(Byte[] clientData, Socket clientSocket)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnReceivePendingConnectionData(Socket sock, SocketWatchEvent eventType, Boolean& bReEnableRead)
DecryptData failure. Error 2148073477
[System.Runtime.InteropServices.COMException @ Altiris.TaskManagement.Common]
at Symantec.NSAgent.AgentStorage.DecryptData(Byte[] encryptedData, UInt32 flags)
at Altiris.TaskManagement.Common.ClientTask.Communication.NsIdentityContext.EnsureExecutedAsLocalSystemIdentity[TResult](Func`1 fn, ThrottledLogAction`2 logAction)
at Altiris.ClientTask.Server.RemoteClientTaskManager.GetResourceGuidFromEncryptedClientData(Byte[] clientData, Socket clientSocket)
COM Exception errcode: 0x80090005
Exception logged from:
at Altiris.DotNetLib.Logging.AtrsLog.ExceptionMessage(String message, Exception exception)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnSocketException(Int32 level, String message, Nullable`1 epGuid, Socket sock, Exception ex)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnSocketException(String message, Nullable`1 epGuid, Socket sock, Exception ex)
at Altiris.ClientTask.Server.RemoteClientTaskManager.OnReceivePendingConnectionData(Socket sock, SocketWatchEvent eventType, Boolean& bReEnableRead)
at Altiris.DotNetLib.Sockets.SocketWatchThread.ServePendingRead(WatchLoopData data, SocketWatchEntry poll)
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 <p0>)
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.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued)
at System.Threading.Tasks.Task.InternalRunSynchronously(TaskScheduler scheduler, Boolean waitForCompletion)
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`2 body)
at Altiris.DotNetLib.Sockets.SocketWatchThread.ServeLoop(WatchLoopData data)
at Altiris.DotNetLib.Sockets.SocketWatchThread.WatchThreadProc()
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()
-----------------------------------------------------------------------------------------------------
Date: 3/26/2024 12:32:16 PM, Tick Count: 97214281 (1.03:00:14.2810000), Size: 5.21 KB
Process: AtrsHost (8028), Thread ID: 126, Module: Altiris.ClientTask.Server.dll
Priority: 1, Source: RemoteClientTaskManager
ITMS 8.7
This issue was caused by having a duplicate communication profile for the SMP Server under the "Site Server Communication Servers" page. Due to this, the SMP Server was unable to process the tickle connections between the client machines and itself.
This tickle error definitely has something to do with these:
resource keys,
encryption keys,
agent GUIDs.
Data mismatch in the database can easily cause the decryption problems because the agent and the server try using encryption keys belonging to the different computer resources.
Remove the duplicate communication profile for your SMP Server. Please refer to the following KB for the steps to follow:
SMP Server has a duplicated communication profile after migrating to a new server