Salesforce

Replication Agent crashes applying the last ai extent

« Go Back

Information

 
TitleReplication Agent crashes applying the last ai extent
URL Name000035317
Article Number000159904
EnvironmentProduct: OpenEdge Replication
Version: 10.x, 11.1x, 11.2x, 11.3x, 11.4x, 11.5x, 11.6x
OS: All supported platforms
Other: applyextent
Question/Problem Description
Replication Agent crashes when manually applying Locked AI extents to the target database with dsrutil -C applyextent
Manually applying ai extents from a mixture of archived sources with different naming conventions fails with a Memory Violation
After the failed dsrutil applyextent, accessing the database -RO while the target is still in Pre-Transition mode does not include transactional data from this ai extent

For AI Management (AIMGT) enabled databases:
  • Applying archived extents and then the current BUSY extent copied directly from the source database fails with a memory violation
  • Applying archived extents and then non-archived ai extents from the source database fails with a memory violation
  • Applying archived extents from archive directories (-aiarcdir) with different folder depths fails with a memory violation
For AI files managed by scripts, applying renamed os copied extents and the current BUSY extent copied directly from the source database fails with a memory violation

Stack trace from rpagent reads:
rpSET_DBExitCallBack()
dbExit()
dsmFatalMsgnCallBack()
rlaiswitch()
rlaixtn()
rlwrite()
rlputnote()
rlaiApplyNote()
dsaAIApplyNote()
rpNOT_ProcessNoteBlock()
rpAPY_ApplyExtent()
rpAGT_AgentLoop()
Replication_Agent()


Stack trace from rpagent reads:
rpSET_DBExitCallBack() 
dbExit() 
drExitOnTerm() 
_thr_slot_offset() 
sema_post() 
sema_post() 
rpAGT_PollControlIPC() 
rpAGT_AgentLoop() 
Replication_Agent()
Steps to Reproduce
Clarifying Information
Applying only extents that were archived to one archive directory(-aiarcdir)  by the AI daemon succeeds.
Applying only ai extents that were copied directly from a source database succeeds.
Applying ai extents with the same naming convention succeeds.

 
Error Message(13992) The OpenEdge Replication Agent is being instructed to apply after-image extent /DR/db/source.a20ce.20160109.091330.00000091.source.a19.
(49) SYSTEM ERROR: Memory violation.
(2527) Disconnecting dead user 5.
(14003) The Replication Agent has successfully processed 0 after-image blocks from the after-image extent /DR/db/source.a20ce.20160109.091330.00000091.source.a19.
Defect NumberDefect OE00225970 / PSC00248634
Enhancement Number
Cause
The ai extent name is not null terminated. This leads to the extent name containing characters from the previous applyextent operation by the agent.

Example:

$   dsrutil target -C applyextent DR~db~source.20160109.091330.00000091.source.a19

The OpenEdge Replication Agent is being instructed to apply after-image extent /DR/db/DR~db~source.20160109.091330.00000091.source.a19. (13992)
         The Replication Agent has successfully applied the after-image extent /DR/db/DR~db~source.20160109.091330.00000091.source.a19.

$   dsrutil target -C applyextent source.a20

The OpenEdge Replication Agent is being instructed to apply after-image extent /DR/db/source.a20ce.20160109.091330.00000091.source.a19. (13992)
The Replication Agent has successfully processed 0 after-image blocks from the after-image extent /DR/db/ source.a20ce.20160109.091330.00000091.source.a19. (14003)
Resolution
Upgrade to OpenEdge 11.7.0 where Agent error handling was improved and the AI extent name is null terminated allowing variable length ai extents names to be used when manually applying multiple extents to the target database.
Workaround
When multiple ai extents need to be manually applied to the target database with DSRUTIL -C applyextent:
  1. Modify the ai extent names to be applied so that their names are all equal in length, or
  2. The ai filename increases in length when a name-change of the ai file is realised in the order in which they are applied.
Notes
Progress Article: 

What is DSRUTIL applyextent?   ​

 
Keyword Phrase
Last Modified Date11/20/2020 7:11 AM

Powered by