Solved

FME server engine crashes using ESRI ArcGIS Desktop python interpreter

  • 10 January 2020
  • 1 reply
  • 7 views

Badge +1

We've just upgraded an FME server from 2018.1 to 2019. When running any of the workbenches that have the python interpreter set to "ESRI ArcGIS Desktop (Python 2.7)" the FME engine mysteriously crashes and restarts the job when it hits the python code. I cannot find any reason for this. If I switch it to the Python 3.7 interpreter the workspace fails with a python error, which I'd expect because its the wrong python version, but at least the server engine doesn't restart itself.

Has anyone seen this behaviour and any idea what could be causing it? Using 64-bit FME, 64-bit python and 64-bit ArcGIS.

icon

Best answer by hollyatsafe 14 January 2020, 00:27

View original

1 reply

Badge +2

Hi @tris_w,

I see you were able to resolve this issue by corresponding with Safe Software Support. I just wanted to post the resolution on here in case any other users encounter an issue with similar symptoms.

First if you are experiencing a crash you should check the Engine log files located in Resources > Logs on FME Server for any additional information on the error. If there is nothing reported you can also take a look in Windows Event Viewer to try and get some more info.

 

 

In this particular case there was a rogue fmeobjects.pyd file located in an ArcGIS Python directory and this was causing a conflict in FME, preventing the Engine from finding the correct fmeobject to load. Removing this file resolved the issue.

If you suspect this may be the issue you are encountering please create a new workspace with the Python Compatibility set to an FME Interpreter that will run successfully. Then add a Creator > PythonCaller and set the script to:

import fme
import fmeobjects
class FeatureProcessor(object):
    def __init__(self):
        pass
    def input(self,feature):
        import sys
        print("logging path")
        for p in sys.path:
            print(p)
        self.pyoutput(feature)
    def close(self):
        pass

This should print a list of file paths in the translation log, check these locations for any fmeobjects, if any exist outside of the FME Server install directory, they do not belong there and this is preventing FME from being able to load the correct one. First try temporarily renaming this file and see if that resolves the issue. If it does, you should be ok to go ahead and delete the file, if you have any concerns about doing this then please contact Safe Software Support.

Reply