web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Answered

DBSync error when trying to run Service update 10.0.38 to CHE (dev vm)

(1) ShareShare
ReportReport
Posted on by 304
Hi,
I'm getting the following error that I haven't received ever before. Tried to resume installation but the same error repeats. Also tried to run db sync manually - again same error:
 
Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at configurationKeyAssociate(Char* )
   at Microsoft.Dynamics.Ax.MSIL.Interop.configurationkey2id(String configurationKey)
   at Microsoft.Dynamics.AX.Data.Management.Metadata.MetadataSupportInterOp.ConfigurationKey2Id(String configKeyName)
   at Microsoft.Dynamics.AX.Data.Management.Metadata.MetadataSupportInterOp.IsConfigurationKeyEnabled(String configKeyName)
   at Microsoft.Dynamics.AX.Data.Management.ManagedMetadataSupport.LoadConfigKeyFromMetadataAndDatabase()
   at Microsoft.Dynamics.AX.Data.Management.ManagedMetadataSupport.IsDisabledSysDeletedObjectConfigurationKey(String configKeyName)
   at Microsoft.Dynamics.AX.Data.Management.ManagedMetadataSupport.IsConfigKeyDisabled(String configKeyName)
   at Microsoft.Dynamics.Ax.Xpp.Metadata.SqlRowVersionMetadataProvider.IsSysRowVersionConfigurationKeyEnabled(IManagedMetadataSupport metadataSupport) in D://dbs//sh//l23t//0116_211200_0//cmd//u//Source//Kernel//xppil//XppSupport//Metadata//SysRowVersion//SqlRowVersionMetadataProvider.cs:line 59
   at Microsoft.Dynamics.AX.Data.Management.SysRowVersion.SqlRowVersionMetadataProvider.CheckIsSysRowVersionConfigurationKeyEnabled()
   at Microsoft.Dynamics.AX.Data.Management.SysRowVersion.SqlRowVersionMetadataProvider.<>c__DisplayClass31_0.<.ctor>b__6()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at Microsoft.Dynamics.AX.Data.Management.SysRowVersion.SqlRowVersionMetadataProvider.IsSysRowVersionConfigurationKeyEnabled()
   at Microsoft.Dynamics.AX.Data.Management.SysRowVersion.SqlRowVersionMetadataProvider.AddSqlRowVersionFieldRenameSql(StringBuilder preStmt, HashSet`1 alreadyExistingSqlFields, Int32 tableId, String sqlTableName)
   at Microsoft.Dynamics.AX.Data.Management.Delta.DeltaAddField.StrGenerator(DeltaStep step, IManagedSyncDDLBuilder ddlBuilder, HashSet`1 alreadyExistingFields)
   at Microsoft.Dynamics.AX.Data.Management.Delta.TableLevelDeltas.GenerateDelta(FieldDeltas fieldDeltas, IndexDeltas indexDeltas, IReadOnlyList`1 triggerDeltas, IReadOnlyList`1 sequenceDeltas, IManagedSyncDDLBuilder DdlBuilder, Boolean onlineMode, HashSet`1 ignoreIndexList, HashSet`1 alreadyExistingFields, Boolean hasFullTextIndex, Boolean& bNeedToDropFullIndexTemporarily, Boolean runPreCheck, LargeTableData largeTableData, SyncOptions syncOptions)
   at Microsoft.Dynamics.AX.Data.Management.IncrementalSyncTableSchemaBuilder.GenerateSqlDDL(HashSet`1 ignoreIndexList, Lazy`1 compatibilityLevel, HashSet`1 alreadyExistingFields, LargeTableData largeTableData, Boolean ignoreFulltextIndexes)
   at Microsoft.Dynamics.AX.Data.Management.ManagedSyncTableWorker.TryExecuteModifyTableViaAlterTable(AxTable newTableSchema, HashSet`1 ignoreIndexListCache, IncrementalSyncTableSchemaBuilder tableSchemaBuilder, Boolean isSharingOverrideTable)
   at Microsoft.Dynamics.AX.Data.Management.ManagedSyncTableWorker.ExecuteModifyTable(AxTable newTableSchema, AxTable oldTableSchema, Int32 tableId, Boolean isSharingOverrideTable, HashSet`1 optionalIndexes)
   at Microsoft.Dynamics.AX.Data.Management.ManagedSyncTableWorker.ModifyTable(AxTable newTableSchema, Dictionary`2 oldTableSchemaDictionary, IProducerConsumerCollection`1 modifiedViewDependencies, HashSet`1 optionalIndexes)
   at Microsoft.Dynamics.AX.Data.Management.ManagedSyncTableWorker.SyncIncremental(IList`1 requests, IList`1 dropEntities)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.BootstrapKernelSync(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider, Boolean testCreateFromScratch, Boolean checkAllKernelTables)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.StartAosCode(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.ExecuteWithinAOS(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider, Func`1 func, Action`1 errorHandler)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.NOTE_LeavingSynchronizer_CallStackAboveThisLineIsCustomCode(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider, Action`1 a)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.LegacyCodepath.RunCustomAction(SyncOptions syncOptions, String sqlConnectionString, IMetadataProvider metadataProvider, Action`1 a)
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.PreTableSync()
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.FullSync()
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.RunSync()
   at Microsoft.Dynamics.AX.Framework.Database.Tools.SyncEngine.Run(String metadataDirectory, String sqlConnectionString, SyncOptions options)
   at Microsoft.Dynamics.AX.Deployment.Setup.Program.RunFullSync(SetupConfiguration config, String targetDbConnectionStringSqlAuth, Boolean servicingSync, Boolean isMainServiceSync)
   at Microsoft.Dynamics.AX.Deployment.Setup.Program.RunServicingSync(String targetDbConnectionStringSqlAuth, SetupConfiguration config, Boolean isMainServiceSync)
   at Microsoft.Dynamics.AX.Deployment.Setup.Program.Run(SetupConfiguration config)
   at Microsoft.Dynamics.AX.Deployment.Setup.Program.Main(String[] args)
 
Any ideas what to try to fix this?
I have the same question (0)
  • Suggested answer
    Komi Siabi Profile Picture
    13,107 Most Valuable Professional on at
    Hello, 
     
    What version are you updating from?
    At what stage is the update failing ?
    Have you updated the Visual studio on the CHE ? If not, check if there are updates under. Search -> Visual studio installer, and resume the update afterwards. 
  • Migi Profile Picture
    304 on at
    Hi, thanks for good questions.
     
    I'm updating from 10.0.37
    The update fails in step 25: GlobalUpdate script for service model: AOSService on machine: xxx
    And it runs the file: AutoDeployReportAndSyncDB.ps1
    I haven't updated Visual Studio. It's still 2019 version.
  • Suggested answer
    Migi Profile Picture
    304 on at
    Solution: run in SQL and retry:
    DECLARE @KernelTables TABLE (
            TableName NVARCHAR(200),
            TableNumber Int);
    DECLARE @ResultKernelTables TABLE (
            TableNumber Int);
    -- List of all Kernel Tables, with a unique TableNumber
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('SQLDICTIONARY',1)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('SYSCONFIG',2)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('USERINFO',3)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('SECURITYROLE',4)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('DATABASELOG',5)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('AOSDUPLICATEKEYEXCEPTIONMESSAGE',6)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('TIMEZONESLIST',7)
    INSERT INTO @KernelTables(TableName, TableNumber) VALUES('TIMEZONESRULESDATA',8)
    -- get the KernelTable names
    DECLARE KernelTableName_cursor CURSOR LOCAL FOR
    SELECT TableName, TableNumber
    FROM @KernelTables
    -- (-1) : Exception happened
    -- 0  : Dropped no column
    -- 1  : Dropped atleast one Kernel Table column
    DECLARE @Result INT = 0;
    DECLARE @KernelTableName NVARCHAR(200);
    DECLARE @KernelTableNumber INT;
    DECLARE @SqlCmd NVARCHAR(500);
    BEGIN TRY
        BEGIN TRANSACTION T1
           OPEN KernelTableName_cursor;
           FETCH NEXT FROM KernelTableName_cursor INTO @KernelTableName, @KernelTableNumber;
           WHILE @@FETCH_STATUS = 0
                BEGIN
                    IF COL_LENGTH(@KernelTableName, 'SYSROWVERSIONNUMBER') IS NOT NULL
                        BEGIN
                                                                                                    SET @SqlCmd = 'ALTER TABLE dbo.' + @KernelTableName + ' DROP COLUMN SYSROWVERSIONNUMBER';
                            EXEC sp_executesql @SqlCmd;
                            SET @Result = 1;
                            INSERT INTO @ResultKernelTables(TableNumber) VALUES(@KernelTableNumber);
                        END
                    FETCH NEXT FROM KernelTableName_cursor INTO @KernelTableName, @KernelTableNumber;
                END

        COMMIT TRANSACTION T1
        SELECT @Result AS Result, TableNumber AS KernelTableNumber, 0 AS Error, '' AS ErrorMessage
        FROM @ResultKernelTables;
    END TRY
    BEGIN CATCH
        SELECT -1 AS Result, -1 AS KernelTableNumber, ERROR_NUMBER() as Error, ERROR_MESSAGE() as ErrorMessage
        ROLLBACK TRANSACTION T1
    END CATCH
     
  • Suggested answer
    Umesh Pandit Profile Picture
    9,315 User Group Leader on at

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Martin Dráb Profile Picture

Martin Dráb 544 Most Valuable Professional

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 450 Super User 2025 Season 2

#3
Sohaib Cheema Profile Picture

Sohaib Cheema 250 User Group Leader

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans