search cancel

SMP Upgrade Failing: Configuration Task Configuring database... Failed: Arithmetic overflow error converting expression to data type bigint.

book

Article ID: 164162

calendar_today

Updated On:

Products

IT Management Suite

Issue/Introduction

The Customer is upgrading their environment from ITMS 7.6 HF7 to ITMS 8.0 HF5.
During the upgrade, the customer is getting a failure message during the database configuration:

ConfigureNS - task_Completed(): Configuration Task Configuring database...
Failed: Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.

Message 1:
Configuring task 11 of 122: Configuring database...
-------------------------------------------------------------------------------------------------
Date: 1/5/2017 10:20:04 AM, Tick Count: 9383725 (02:36:23.7250000), Size: 372 B
Process: SymantecInstallationManager (4800), Thread ID: 27, Module: SymantecInstallationManager.exe
Priority: 4, Source:
Symantec.Installation.Automation.ConsoleEvents.InstallManager_ConfigureProgressEvent

Message 2:
Failure 2 during product configure:(exception: Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.). Trying again in 20 seconds....
-------------------------------------------------------------------------------------------------
Date: 1/5/2017 10:23:32 AM, Tick Count: 9591815 (02:39:51.8150000), Size: 469 B
Process: SymantecInstallationManager (4800), Thread ID: 27, Module: SymantecInstallationManager.exe
Priority: 4, Source: Symantec.Installation.ConfigureNS.task_Completed

Error 1:
ConfigureNS - task_Completed(): Configuration Task Configuring database...
Failed: Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.
Arithmetic overflow error converting expression to data type bigint.
The statement has been terminated.
   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,
SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet
bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String
methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1
completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean
asyncWrite)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Altiris.NS.DataAccessLayer.DatabaseAbilities.ExecuteNonQuery(String
sql)
   at Altiris.NS.ContextManagement.AdminDatabaseContext.
<>c__DisplayClass1`1.
<PerformTransactedDeadlockRetry>b__0(IDatabaseContext ctx)
   at Altiris.NS.ContextManagement.AdminDatabaseContext.PerformTransactedDeadlockR
etry (Action`1 action, String deadlockMessage, String category)
   at Altiris.NS.ItemManagement.ItemHelper.ImportSqlNodes(XmlNodeList nodes,
Boolean installing, Boolean resetConnection)
   at Altiris.NS.ItemManagement.ItemHelper.ImportSqlNodes(XmlNodeList nodes)
   at Altiris.NS.ItemManagement.ItemHelper.ImportSql(XmlNode itemNode,
Boolean
inner)
   at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.InstallSQL()
   at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()

SQL Exception details: code=8115, line=20

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.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
   at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
   at Symantec.Installation.ConfigureNS.StartCurrentTask()
   at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
   at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
   at Symantec.Installation.ConfigureNS.StartCurrentTask()
   at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
   at Symantec.Installation.NSConfiguration.Tasks.InstallSQLTask.StartAsync()
   at Symantec.Installation.ConfigureNS.StartCurrentTask()
   at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
   at Symantec.Installation.NSConfiguration.Tasks.ConfigurationServicesTask.StartA
sync ()
   at Symantec.Installation.ConfigureNS.StartCurrentTask()
   at Symantec.Installation.ConfigureNS.task_Completed(Object sender,
CompletedEventArgs e)
   at Symantec.Installation.ReportingTask.EndAsync(IAsyncResult result)
   at System.Web.Services.Protocols.WebClientAsyncResult.Complete()
   at System.Web.Services.Protocols.WebClientProtocol.ProcessAsyncResponseStreamResult
(WebClientAsyncResult client, IAsyncResult asyncResult)
   at System.Web.Services.Protocols.WebClientProtocol.ReadAsyncResponseStream(WebClientAsyncResult client)
   at System.Web.Services.Protocols.WebClientProtocol.ReadAsyncResponse(WebClientA
sync Result client)
   at System.Web.Services.Protocols.WebClientProtocol.GetResponseAsyncCallback(IAs
yncResult asyncResult)
   at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
   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.Net.ContextAwareResult.Complete(IntPtr userToken)
   at System.Net.HttpWebRequest.ProcessResponse()
   at System.Net.HttpWebRequest.SetResponse(CoreResponseData
coreResponseData)
   at System.Net.ConnectionReturnResult.SetResponses(ConnectionReturnResult
returnResult)
   at System.Net.Connection.ReadComplete(Int32 bytesRead, WebExceptionStatus
errorStatus)
   at System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
   at System.Net.ContextAwareResult.Complete(IntPtr userToken)
   at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)

-------------------------------------------------------------------------------------------------
Date: 1/5/2017 10:27:39 AM, Tick Count: 9838671 (02:43:58.6710000), Size: 5.49 KB
Process: SymantecInstallationManager (4800), Thread ID: 27, Module: SymantecInstallationManager.exe
Priority: 1, Source: Symantec.Installation.ConfigureNS.task_Completed

Environment

Upgrade from ITMS 7.6 HF7 to 8.0

Cause

Known issue. Dev has updated the query for upgrade from SecurityACEData/SecurityTrusteePermission (7.6) to sec_EntityTrustee (8.0+).

Resolution

This issue has been reported to Symantec Development team. A fix has been added to the ITMS 8.0 HF6 release.

In case you already tried to upgrade and it failed, the following has been provided as a workaround:

 

Please execute following steps:

1. backup all security tables:

SELECT *
    INTO _tmp_SecurityEntity
    FROM SecurityEntity
SELECT *
    INTO _tmp_SecurityEntityACESource
    FROM SecurityEntityACESource
SELECT *
    INTO _tmp_SecurityACEData
    FROM SecurityACEData
SELECT *
    INTO _tmp_SecurityPermission
    FROM SecurityPermission
SELECT *
    INTO _tmp_SecurityPrivilegeTrustee
    FROM SecurityPrivilegeTrustee
SELECT *
    INTO _tmp_SecurityRole
    FROM SecurityRole
SELECT *
    INTO _tmp_SecurityTrustee
    FROM SecurityTrustee
SELECT *
    INTO _tmp_SecurityTrusteePermission
    FROM SecurityTrusteePermission

2. execute following SQL-script:

IF NOT EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sec_EntityTrustee]') AND type = N'U' ) BEGIN
    CREATE TABLE [dbo].[sec_EntityTrustee]
    (
        EntityGuid          uniqueidentifier        NOT NULL,
        TrusteeGuid         uniqueidentifier        NOT NULL,
        Permission          bigint                  NOT NULL,
        Inherited           bit                     NOT NULL,
        CONSTRAINT [PK_sec_EntityTrustee] PRIMARY KEY CLUSTERED ( TrusteeGuid, EntityGuid, Inherited )
    )
    CREATE INDEX [IX_sec_EntityTrustee_TrusteeGuidPermission] ON [dbo].[sec_EntityTrustee] ( TrusteeGuid, Permission DESC ) INCLUDE ( EntityGuid )

    CREATE INDEX [IX_sec_EntityTrustee_EntityGuidPermission] ON [dbo].[sec_EntityTrustee] ( EntityGuid, Permission ) INCLUDE ( TrusteeGuid )

    -- Upgrade from SecurityACEData/SecurityTrusteePermission (7.6) to sec_EntityTrustee (8.0)

    IF EXISTS ( SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SecurityACEData]') AND type = N'U' )
    BEGIN
        DECLARE @AppIdentityGuid2 uniqueidentifier
        SELECT  @AppIdentityGuid2 = [Value] FROM ServerSettingGuids WHERE [Name] = 'AppIdentityGuid'

        INSERT INTO     [dbo].[sec_EntityTrustee]
            SELECT      EntityGuid,
                        TrusteeGuid,
                        CASE WHEN SUM(Permission) >= 0x4000000000000000 THEN 0x7FFFFFFFFFFFFFFF ELSE SUM(Permission) END AS [Permission],
                        Inherited
                FROM  ( SELECT   DISTINCT sa.EntityGuid, stp.TrusteeGuid, sa.Inherited, CASE sp.Mask WHEN 0x7FFFFFFFFFFFFFFF THEN 0x4000000000000000 ELSE sp.Mask END AS [Permission]
                            FROM sec_Entity                se
                            JOIN SecurityACEData           sa  ON sa.EntityGuid = se.EntityGuid
                            JOIN SecurityTrusteePermission stp ON stp.Id = sa.TrusteePermissionId
                            JOIN sec_Permission            sp  ON sp.Guid = stp.PermissionGuid
                            JOIN sec_Trustee               st  ON st.TrusteeGuid = stp.TrusteeGuid
                            WHERE st.TrusteeGuid NOT IN ('2E1F478A-4986-4223-9D1E-B5920A63AB41', @AppIdentityGuid2)
                            AND ( sa.Inherited = 0 OR se.Flags = 64 )
                      ) AS a
                GROUP BY EntityGuid, TrusteeGuid, Inherited
                ORDER BY 2, 1, 4
    END
END

 

3. Start SIM. On main page you will see that all products are now 8.0 and are unconfigured. Now select Symantec Management Platform 8.0 and start configuration for it. SIM must reconfigure all products in this case. You can check, after configuration gets finished, that SIM shows products without warnings.

Note: In some cases you may notice that some stored procedures for Task Management are out-of-sync even after a repair from SIM. To make sure things are in the expected way for Task Management, run aexconfig.exe /configure against TaskManagement.config and TaskManagement_Hotfix.config (under ...\program files\altiris\TaskManagement) from the command prompt as administrator:

C:\Program Files\Altiris\Notification Server\Bin> aexconfig.exe /configure "C:\Program Files\Altiris\TaskManagement\Config\TaskManagement.config"

C:\Program Files\Altiris\Notification Server\Bin> aexconfig.exe /configure "C:\Program Files\Altiris\TaskManagement\Config\TaskManagement_Hotfix.config"

4. If all right remove temporary tables (see item 1)