This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Syncronization Editor save/commit fails due to DPRProjectionStartInfo and DPRRootObjConnectionInfo conflict

Hi,

This is v7.1.2 - I have run into a recurring bug in the Sync Editor. If I simulate any sync project, something goes wrong with the Z order of the popups and dialogs, for example the splash screen for the report appears but I can't click on anything and won't see the report until after I have twice tried to kill the synchronization project editor process.

The first attempt to kill the process creates a modal confirmation to close the sync editor. This is unclickable, unfocusable and is stuck behind the splash screen. The second attempt closes the modal dialog, and once that's done the splash screen disappears and the sync report window opens as normal.

I've done this probably 20 times without any noticeable issue but yesterday I was working on a mature sync project which has been saved successfully on many occasions in the past, and this time the sync editor terminated completely on the first attempt (without putting up the confirmation popup).

Since restarting the sync editor, I cannot save or commit the sync project I was working on, due to the following errors:

 

[810023] Error during execution of statement: update DPRProjectionStartInfo set UID_DPRRootObjConnectionInfo = '47d44cff-baec-49b9-9b4b-95821496f364', xdateupdated = GetUTCDate(), xuserupdated = N'viadmin' where (DPRProjectionStartInfo.UID_DPRProjectionStartInfo = 'CCC-D8DD3EEBEF981947B9C167D7E7A47E90') and (isnull(DPRProjectionStartInfo.UID_DPRRootObjConnectionInfo, '') = '')
    at VI.DB.Entities.UnitOfWorkImpl.<CommitAsync>d__41.MoveNext()

[810143] Database error 547: The UPDATE statement conflicted with the FOREIGN KEY constraint "DPR_RFRL2497".
The conflict occurred in database "OneIM712", table "dbo.DPRRootObjConnectionInfo", column 'UID_DPRRootObjConnectionInfo'.
The statement has been terminated.

There is no object with this UID_DPRProjectionStartInfo value shown in this error.
There is also no object with the UID_DPRRootObjConnectionInfo shown in this error.

Is there any way to fix this without completely scrapping and rebuilding restarting the sync project? Because I now can't even roll back to the last successfully saved version of the sync project, and rebuilding it completely will take a couple of weeks.

Crash report:

2017-10-01 10:50:35    ObjectLog    Old state: Loaded, New state: Loaded, PermissionBased
2017-10-01 10:50:35    ObjectLog    Old state: Loaded, New state: Loaded, PermissionBased
2017-10-01 10:50:35    ObjectLog    Session variable: Removing ProjectorContext.
2017-10-01 10:50:35    ObjectLog    DPRProjectionStartInfo: Getting collection, load type: Bulk
2017-10-01 10:50:35    SqlLog    (1 ms) - select BulkLevel, DebugMode, Description, DisplayName, LastStart, LoadPartitionedThreshold, MaintenanceRetryCycles, MaintenanceType, Name, NameFormat, PartitionSize, ProjectionDirection, RevisionHandling, SerializationBag, UID_DPRProjectionConfig, UID_DPRProjectionStartInfo, UID_DPRRootObjConnectionInfo, UID_DPRShell, UID_DPRSystemVariableSet, UID_QBMClrType, UseSingleProcessContextExec, XDateInserted, XDateUpdated, XObjectKey, XTouched, XUserInserted, XUserUpdated from DPRProjectionStartInfo where (DPRProjectionStartInfo.UID_DPRShell = 'CCC-CEB4000E09C6F24DAE216DEC136D1B48') order by DisplayName
2017-10-01 10:50:35    ObjectLog    Collection: Run statement and fetch data done in 2ms.
2017-10-01 10:50:35    ObjectLog    Getting collection done in 2ms.
2017-10-01 10:50:35    ObjectLog    Old state: Loaded, New state: Loaded, PermissionBased
2017-10-01 10:50:35    ObjectLog    Old state: Loaded, New state: Loaded, PermissionBased
2017-10-01 10:50:35    ObjectLog    DPRProjectionStartInfo.UID_DPRRootObjConnectionInfo = c6904b08-ffe8-448e-8718-05d3815e2cda
2017-10-01 10:50:35    ObjectLog    DB sink: Putting entity 'CCC-2783FFB4BD19844E81335F3E1FE77E12' of table 'DPRProjectionStartInfo' with state Loaded, PermissionBased into database queue (level 0)
2017-10-01 10:50:35    ObjectLog    Begin transaction in read/write entity
2017-10-01 10:50:35    ObjectLog    Delayed Logic: OnSaving for CCC-2783FFB4BD19844E81335F3E1FE77E12
2017-10-01 10:50:35    ObjectLog    Initializing logic...
2017-10-01 10:50:35    ObjectLog    DPRProjectionStartInfo: Initializing Customizer
2017-10-01 10:50:35    ObjectLog    Action on SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _ProductionLevel
2017-10-01 10:50:35    ObjectLog    Result: SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Action on SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _NormalGuidsAllowed
2017-10-01 10:50:35    ObjectLog    Result: SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Executing OnLoaded...
2017-10-01 10:50:35    ObjectLog    Customizer OnLoaded
2017-10-01 10:50:35    ObjectLog    Action on SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _ProductionLevel
2017-10-01 10:50:35    ObjectLog    Result: SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Action on SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _NormalGuidsAllowed
2017-10-01 10:50:35    ObjectLog    Result: SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Fast path, because there are no colliding changes from Init or OnLoaded
2017-10-01 10:50:35    ObjectLog    Applying logic changes from init and loaded...
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Applying entity changes...
2017-10-01 10:50:35    ObjectLog    Check and execute column format Single Line with c6904b08-ffe8-448e-8718-05d3815e2cda
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Calling OnSaving logic...
2017-10-01 10:50:35    ObjectLog    Applying changes...
2017-10-01 10:50:35    ObjectLog    Delayed Logic: OnSaved for CCC-2783FFB4BD19844E81335F3E1FE77E12
2017-10-01 10:50:35    ObjectLog    Commit transaction in read/write entity
2017-10-01 10:50:35    ObjectLog    Old state: Loaded, PermissionBased, New state: Loaded, Saved, PermissionBased
2017-10-01 10:50:35    ObjectLog    DPRProjectionStartInfo.UID_DPRRootObjConnectionInfo = 47d44cff-baec-49b9-9b4b-95821496f364
2017-10-01 10:50:35    ObjectLog    DB sink: Putting entity 'CCC-D8DD3EEBEF981947B9C167D7E7A47E90' of table 'DPRProjectionStartInfo' with state Loaded, PermissionBased into database queue (level 0)
2017-10-01 10:50:35    ObjectLog    Begin transaction in read/write entity
2017-10-01 10:50:35    ObjectLog    Delayed Logic: OnSaving for CCC-D8DD3EEBEF981947B9C167D7E7A47E90
2017-10-01 10:50:35    ObjectLog    Initializing logic...
2017-10-01 10:50:35    ObjectLog    DPRProjectionStartInfo: Initializing Customizer
2017-10-01 10:50:35    ObjectLog    Action on SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _ProductionLevel
2017-10-01 10:50:35    ObjectLog    Result: SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Action on SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _NormalGuidsAllowed
2017-10-01 10:50:35    ObjectLog    Result: SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Executing OnLoaded...
2017-10-01 10:50:35    ObjectLog    Customizer OnLoaded
2017-10-01 10:50:35    ObjectLog    Action on SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _ProductionLevel
2017-10-01 10:50:35    ObjectLog    Result: SwitchToModuleGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Action on SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible depends on [IsLoaded], _Enabled, _HasModuleGuid, _NormalGuidsAllowed
2017-10-01 10:50:35    ObjectLog    Result: SwitchToNormalGuid(VI.DB.Entities.ISession, VI.DB.Entities.IEntity, System.Threading.CancellationToken) MethodVisible = False
2017-10-01 10:50:35    ObjectLog    Fast path, because there are no colliding changes from Init or OnLoaded
2017-10-01 10:50:35    ObjectLog    Applying logic changes from init and loaded...
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Applying entity changes...
2017-10-01 10:50:35    ObjectLog    Check and execute column format Single Line with 47d44cff-baec-49b9-9b4b-95821496f364
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Customizer SetValueAsync
2017-10-01 10:50:35    ObjectLog    Calling OnSaving logic...
2017-10-01 10:50:35    ObjectLog    Applying changes...
2017-10-01 10:50:35    ObjectLog    Db Operations Queue: Operation Update on <Key><T>DPRProjectionStartInfo</T><P>CCC-D8DD3EEBEF981947B9C167D7E7A47E90</P></Key> added to database queue.
2017-10-01 10:50:35    ObjectLog    Delayed Logic: OnSaved for CCC-D8DD3EEBEF981947B9C167D7E7A47E90
2017-10-01 10:50:35    ObjectLog    Commit transaction in read/write entity
2017-10-01 10:50:35    ObjectLog    Old state: Loaded, PermissionBased, New state: Loaded, Saved, PermissionBased
2017-10-01 10:50:35    ObjectLog    DB sink: Flushing database queue
2017-10-01 10:50:35    ObjectLog    Db Operations Queue: Flush triggered from outside.
2017-10-01 10:50:35    ObjectLog    Flushing 1 operations
2017-10-01 10:50:35    SqlLog    Setting DB context data to: user = viadmin, id = 247c8e73-68b2-4060-80ea-c28eb74e8185, level = 0
2017-10-01 10:50:35    SqlLog    (2 ms) - update DPRProjectionStartInfo set UID_DPRRootObjConnectionInfo = '47d44cff-baec-49b9-9b4b-95821496f364', xdateupdated = GetUTCDate(), xuserupdated = N'viadmin' where (DPRProjectionStartInfo.UID_DPRProjectionStartInfo = 'CCC-D8DD3EEBEF981947B9C167D7E7A47E90') and (isnull(DPRProjectionStartInfo.UID_DPRRootObjConnectionInfo, '') = '')
2017-10-01 10:50:35    ObjectLog    Session: Rollback Transaction
2017-10-01 10:50:35    SqlLog    Resetting DB context data.
2017-10-01 10:50:35    SqlLog    (5 ms) - ROLLBACK TRANSACTION
2017-10-01 10:50:35    SqlLog    (3166 ms) - Physical Transaction
2017-10-01 10:50:35    SqlLog    (3166 ms) - Pinned physical connection
2017-10-01 10:50:35    StopWatch    Save to database... done in 3.17s.
2017-10-01 10:50:35    VI.FormBase.ExceptionMgr    One or more errors occurred.

Parents Reply Children
No Data