File Masking Job Fails With: Cannot Add Self-Loop Edge on Node RECTYPE_Filter Rows (KBA5393)
KBA
KBA# 5393
Issue
This knowledge document explains the Cannot Add Self-Loop Edge on Node RECTYPE_Filter Rows
file masking failure.
Applicable Delphix Versions
- Click here to view the versions of the Delphix engine to which this article applies
-
Major Release
All Sub Releases
6.0 6.0.0.0, 6.0.1.0, 6.0.1.1, 6.0.2.0 5.3 5.3.0.0, 5.3.0.1, 5.3.0.2, 5.3.0.3, 5.3.1.0, 5.3.1.1, 5.3.1.2, 5.3.2.0, 5.3.3.0, 5.3.3.1, 5.3.4.0, 5.3.5.0 5.3.6.0, 5.3.7.0, 5.3.7.1, 5.3.8.0, 5.3.8.1, 5.3.9.0 5.2 5.2.2.0, 5.2.2.1, 5.2.3.0, 5.2.4.0, 5.2.5.0, 5.2.5.1, 5.2.6.0, 5.2.6.1 5.1
5.1.0.0, 5.1.1.0, 5.1.2.0, 5.1.3.0, 5.1.4.0, 5.1.5.0, 5.1.5.1, 5.1.6.0, 5.1.7.0, 5.1.8.0, 5.1.8.1, 5.1.9.0, 5.1.10.0
5.0
5.0.1.0, 5.0.1.1, 5.0.2.0, 5.0.2.1, 5.0.2.2, 5.0.2.3, 5.0.3.0, 5.0.3.1, 5.0.4.0, 5.0.4.1 ,5.0.5.0, 5.0.5.1, 5.0.5.2, 5.0.5.3, 5.0.5.4
Resolution
This error is caused by having two Record types set to the same section.
In the example screenshot, the Record type All Records and Body both exist in the inventory :
The two Records have the same configuration:
Body:
All Records:
A loop is caused between the two record types, which in turn generates the error.
The corrective action is to remove one of the record types. This can be done by selecting the Record Types button and pressing the red X on the unwanted record.
Troubleshooting
The masking job will fail very early in the job before any masking has taken place.
The masking logs will show the following error message:
ERROR c.d.d.m.t.MaskingMarshalling - error : java.lang.IllegalArgumentException: Cannot add self-loop edge on node RECTYPE_Filter rows, as self-loops are not allowed. To construct a graph that allows self-loops, call allowsSelfLoops(true) on the Builder. at com.google.common.base.Preconditions.checkArgument(Preconditions.java:210) at com.google.common.graph.ConfigurableMutableValueGraph.putEdgeValue(ConfigurableMutableValueGraph.java:82) at com.google.common.graph.ConfigurableMutableGraph.putEdge(ConfigurableMutableGraph.java:51) at com.dmsuite.dmsApplicator.xmlartist.XmlArtist.buildGraph(XmlArtist.java:107) at com.dmsuite.dmsApplicator.xmlartist.XmlArtist.enhance(XmlArtist.java:318) at com.dmsuite.dmsApplicator.xmlartist.XmlArtist.safeEnhance(XmlArtist.java:293) at com.dmsuite.dmsApplicator.JaxbUtil.marshal(JaxbUtil.java:86) at com.dmsuite.dmsApplicator.masking.transformation.MaskingMarshalling.generateXMLForFile(MaskingMarshalling.java:2989) at com.dmsuite.dmsApplicator.masking.transformation.MaskingMarshalling.createKettleXMLForFile(MaskingMarshalling.java:3132) at com.dmsuite.dmsApplicator.masking.transformation.RunServiceImpl.run(RunServiceImpl.java:988) at com.dmsuite.threads.JobExecutorService$JobCallable.call(JobExecutorService.java:147) at com.dmsuite.threads.JobExecutorService$JobCallable.call(JobExecutorService.java:135) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
Related Articles
The following articles may provide more information or related information to this article:
- n/a