[MtoA] The case of the renderer that failed to register


In this case, a customer running Maya 2013 on Ubuntu reported this error when he tried to load the mtoa plugin:

API error detected in plugins/mtoa/Main.cpp at line 710: (kFailure): Unexpected Internal Failure 
ERROR | Failed to register renderer 'arnold' 

That specific line in plugins/mtoa/Main.cpp runs these two lines of Python:

import mtoa.cmds.registerArnoldRenderer
mtoa.cmds.registerArnoldRenderer.registerArnoldRenderer()

So I asked the customer to run that Python in the Maya script editor, and that gave us this error:

# Error: ImportError: file 
/usr/autodesk/maya2013-x64/lib/python26.zip/hashlib.py line 63: No module 
named _md5 # 

Now we’re cooking with EVIL gas! I’ve seen these kinds of errors before…

This appears to be general problem with Maya 2013 and pymel (I found a few different posts about this via Google search). For example, this thread from the pymel project, or the Troubleshooting section on this page.

In brief: you need to create some symlinks to the right versions of the libssl.

Another case of a missing entry point


entry_point_not_found
In this case, a user installed the latest MtoA, but when he went to load mtoa.mll in the Plug-in Manager, he got this error:

---------------------------
Settings/Preferences: maya.exe - Entry Point Not Found
---------------------------
The procedure entry point ?IsRenderablePath@CArnoldSession@@SA_NVMDagPath@@@Z could not be located in the dynamic link library mtoa_api.dll. 

From past experience, I knew that the problem was probably the Maya.env file. And sure enough, it looked something like this:

MAYA_RENDER_DESC_PATH = C:\solidangle\mtoadeploy\2013.0.22.0
PATH = %PATH%;C:\solidangle\mtoadeploy\2013.0.22.0\bin;
solidangle_LICENSE=5053@SOLIDANGLE-PC

MAYA_RENDER_DESC_PATH = C:\solidangle\mtoadeploy\2013.0.22.1
PATH = %PATH%;C:\solidangle\mtoadeploy\2013.0.22.1\bin;

Notice that there are two MAYA_RENDER_DESC_PATH and PATH settings. Maya reads just the top two, which are for an older version of mtoa, so when Maya loads mtoa.mll we end up with a “missing entry point” error.

How did this happen? Well, in this case, in-between installs and uninstalls of different versions MtoA, the user had updated Maya.env with his own MAYA_RENDER_DESC_PATH and PATH settings for MtoA. And then the next install of MtoA appended its own settings to the Maya.env file.

The MtoA Installer works like this:

  • Installs make a backup of the existing Maya.env, and then append the environment settings to the existing Maya.env.
  • Uninstalls restore the backup version of Maya.env.

So if your Maya.env already has MtoA settings for MAYA_RENDER_DESC_PATH and PATH settings, then when you install another MtoA, you end up with a problem (because the new settings will be at the bottom, where they are ignored).

Ok, so that’s problem solved. Just remove those extra entries from Maya.env.