Skip to main content

I've come to adopt a project file that seems to fail intermittently on the same input DWG file. This workspace was developed over time and it's now in an FME Server 2019.1 environment (2019.1.3.1, Build 19643 - win64) where we thought it would be a risk-free minor version upgrade, but some files now fail against it. My Workbench is also the same version in troubleshooting this. I'm at a loss now for where to look to try to resolve this. This is what I've tried:

  • Upgrade all transformers to the latest version, including the ones in embedded transformers
  • Replaced deprecated embedded transformers, such as ClosedCurveFilter (LoopFilter) and HorizontalAngleCalculator (AzimuthCalculator).
  • Changed Connection Runtime Order
  • Disabled transformers to locate the troublesome ones. They're typically on the embedded transformers, NeighborFinders, FeatureMergers, and LineOnLineOverlayers, but I'm expecting that there's no significanct change to them to make this stop working.

 

From my desktop, a change I make does allow the translation to finish successfully, but if I run it another day, let's say by re-opening the workspace or Workbench, then it would fail again.

 

This is typically where the log file ends:

2021-05-19 16:08:06|   2.5|  0.0|INFORM|Creating spatial index of 89 point features
2021-05-19 16:08:06|   2.5|  0.0|INFORM|Completed spatial index creation
Error running translation.

The "error running translation" error is very generic. I've turned on verbose logging, but it's not obvious to me that it's indicating any issue.

 

I am supplying an attaching of the workspace, DWG, and log file. The workspace should have the input params saved to run.

 

Thank you.

@janet​ Thanks for including the workspace and the test data. I was able to reproduce your error: Error running translation

The problem seems to be occurring in the PointOnLineOverlay in the "Check for polylines with more than 2 vertices" bookmark. A mixture of text, point, lines are being sent into the Line Input port. The PointOnLineOverlayer should reject the invalid text and points, but is not. It looks like this problem has been addressed in FME 2020 and higher - PointOnLineOverlayer now rejects the unexpected geometries.

 

In the meantime, add a GeometryFilter before the Line input port and only allow lines to enter. This seems to workaround the issue.


@janet​ Thanks for including the workspace and the test data. I was able to reproduce your error: Error running translation

The problem seems to be occurring in the PointOnLineOverlay in the "Check for polylines with more than 2 vertices" bookmark. A mixture of text, point, lines are being sent into the Line Input port. The PointOnLineOverlayer should reject the invalid text and points, but is not. It looks like this problem has been addressed in FME 2020 and higher - PointOnLineOverlayer now rejects the unexpected geometries.

 

In the meantime, add a GeometryFilter before the Line input port and only allow lines to enter. This seems to workaround the issue.

@Mark Stoakes​ Thank you for your suggestion! I am testing through it now...

To help with troubleshooting in the future, I'm wondering if there was anything in the log file that directed your attention to PointOnLineOverlayer?


@Mark Stoakes​ Thank you for your suggestion! I am testing through it now...

To help with troubleshooting in the future, I'm wondering if there was anything in the log file that directed your attention to PointOnLineOverlayer?

@janet​ the "Error running translation" is obviously not very helpful: usually means a memory error or some other unrecoverable error.

In this case I used a process of elimination, but disabling bookmarks, starting at the XML writer and working backwards. Very easy to do in your case, because your colleague had a nicely documented & bookmarked workspace. So I ended up with the bookmark that contained the PointOnLineOverlayer. Then I used a tool that we don't use as much now (because of feature caching) which is Add Breakpoint and Run with Breakpoint and Feature Inspection. This allows you to halt a translation at a specific connector and then step through the workspace one feature at a time. So I managed to narrow it down to PoLOverlayer in that bookmark (although PoLOverlayer was the likely candidate anyway since it was the more complex of the transformers in that bookmark)

The Debugging Guide might also be useful


Reply