Starting to mess around with some stuff in vray 3.6 for SketchUp and for whatever reason Deadline will always error out on submitted vrscene’s, spitting out this error:
[2017/Nov/21|14:25:46] error: Error loading plugin library "C:\Program Files\Chaos Group\V-Ray\V-Ray for SketchUp\extension\vrayappsdk\bin\plugins\vray_BRDFSimbiont.dll": LoadLibrary failed (126): The specified module could not be found.
at Deadline.Plugins.PluginWrapper.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage, AbortLevel& abortLevel)
I checked, and there is definitely a dll in that location and all seems square, but can’t figure this one out. I’m GUESSING its something with the new vray standalone, but will test a bit more right now. Vray 3.6 works within SU but beyond the folder location, I’m not sure what else changed in 3.6
update: just tested standalone from the command line and it throws the same error, but keeps rendering and the image seems ok. I’ve reported to CG, so we’ll see what they say on their end
apparently the error is not a big deal (which I knew) and can be ignored, however, its stopping our entire render process because its causing Deadline not to proceed. Is there a way in Deadline to set standalone vray projects to ignore errors until Chaos can fix this? I checked the plugin configuration and don’t see anything, but I’m really hoping there is a workaround
We do actually have a mechanism that can help you here, but it requires modifying the existing plugin. Our plugins detect errors using regexs and we usually have 1 or 2 generic catch-alls for when the renderer spits out errors. In this case, the message:
which is essentially just “V-Ray says it had an error”. So what we can do here, is add another stdout handler that catches on that specific DLL failing to load and implement a method that will warn the user about it (in the logs). Something like…
def handleStdoutFailedLoadingDLL( self ):
self.LogWarning( "V-Ray failed to load the following DLL. If this is a critical error, please contact Deadline support." )
self.LogWarning( self.GetRegexMatch( 0 ) )
Anyways, technical details aside, I’ve gone ahead and implemented this as an exception and will now only warn (instead of fail) on this specific DLL not loading. Would you mind testing this for us? If it works well, we might include this in a future release.
Back up “DeadlineRepository10\plugins\Vray\Vray.py”
Unzip, and copy the attached file to the above path
Morgan to the vray rescue for the second time! Can’t tell you all how great it is to have a dev that responds so quick to these issues.
As for the updated plugin, it WORKS (as in it doesn’t fail out immediately), however, it doesn’t count the job as “complete” when it finishes and saves, presumably because of the error. So we’re still technically getting a error on task (again, even though its complete and has saved succesfully) and then the node flips onto the next task/tile.
Also, you’re very close to being correct! The reason why Deadline considers it a failed render is the fact that it’s a non-zero exit code (3), which IS because of the failed DLL load. This requires a slight modification, which I’ve included with this post.
If you wouldn’t mind testing again, that’d be greatly appreciated ! Follow the same back-up instructions as before.
Yup, this seems to have solved the issue. Thanks for the update!
Quick question: when vray DOES release a fix for the missing DLL, will this build still be OK or would that require another tweak/patch for deadline? Just curious, although CG has been slow on the releases lately so I don’t expect it anytime soon