Error rendering Rhino as a service

When running Deadline as a service, I’m getting errors attempting to render a Rhino file. The same file renders fine when running Deadline as an app on the slave. Error log is below. I’m running Deadline 3.0.32934 and Rhino 4.0 SR4b.

Thanks for the help.

Eric

Error Message
Exception during render: An error occurred in RenderTasks(): Dialog popup detected: Title “Rhinoceros 4.0 Startup Template Error”, Message “You must select a file name first” (Deadline.Plugins.ScriptPlugin+FailRenderException) (Deadline.Plugins.RenderPluginException)
at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)

Slave Log
NFO: Handling stdout that matches regex “Rhino instance with PID ([0-9]+) is now running”
0: INFO: Handling stdout that matches regex “Closing render window”
0: INFO: Handling stdout that matches regex “Render completed successfully”
0: INFO: Stdout Handling Enabled: True
0: INFO: Popup Handling Enabled: True
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Render Executable: “C:\Program Files\Frantic Films\Deadline\bin\deadlinerhinorenderer.exe”
0: INFO: Render Argument: " -s “C:\Documents and Settings\All Users\Application Data\Frantic Films\Deadline\slave\jobsData\houserender.3dm” -o “\arch-render\renderfarm\Output\EricK\Rhino\rhino_brazil.png” -r “Rhino Render” -c 10 -t 10"
0: INFO: Startup Directory: “C:\Program Files\Frantic Films\Deadline\bin”
0: INFO: Process Priority: BelowNormal
0: STDOUT: Rhino instance with PID 2348 is now running
0: STDOUT: Waiting 10 seconds for Rhino to start up
0: INFO: Could not find the “Cancel” button on popup “Startup Template”
0: INFO: Pressed the “Open” button on popup “Startup Template”
0: INFO: Could not find the “Cancel” button on popup “Rhinoceros 4.0 Startup Template Error”
0: INFO: Could not find the “Open” button on popup “Rhinoceros 4.0 Startup Template Error”
0: INFO: Detected popup dialog “Rhinoceros 4.0 Startup Template Error”.
0: INFO: ---- dump of dialog ----
0: INFO: Button: OK
0: INFO: Static:
0: INFO: Static: You must select a file name first
0: INFO: ---- end dump of dialog ----
Scheduler Thread - Render Thread 0 threw an error:
Scheduler Thread - Exception during render: An error occurred in RenderTasks(): Dialog popup detected: Title “Rhinoceros 4.0 Startup Template Error”, Message “You must select a file name first” (Deadline.Plugins.ScriptPlugin+FailRenderException) (Deadline.Plugins.RenderPluginException)

at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)

Error Type
RenderPluginException

Error Stack Trace
at Deadline.Plugins.Plugin.RenderTask(Int32 startFrame, Int32 endFrame)
at Deadline.Slaves.SlaveRenderThread.RenderCurrentTask()

Hi Eric,

Let’s see if we can handle that popup properly. Go to \your\repository\plugins\Rhino and open Rhino.py in a text editor (this is the main python script file for the plugin). Find this line:

self.PopupHandler.AddPopupHandleRule( r"Startup Template", "Cancel;Open" )

and change it to this:

self.PopupHandler.AddPopupHandleRule( r"Startup Template", "Cancel;Open;OK" )

The change we’re making is that Deadline will attempt to press the OK button on this dialog when it pops up. If this doesn’t help, let us know. The solution might be to go to the slave and start up Rhino manually and specify the template setting. I imagine that if this is done once, Rhino will store this setting and use it by default going forward.

Cheers,

  • Ryan

Thanks, Ryan. That clears the error message, but now, the job goes in the queue and sits there at 0% task progress, and the render slave hangs at status “Rendering” and stops responding, even after the job is suspended. Unfortunately, this is an even bigger problem, because now, rather than the slave being freed up when the job errors out, the slave gets tied up with the job and has to have the service restarted manually before it’s freed up again.

The same job does render without a problem when running the slave as an application and not a service.

Thanks for the help! It’d be great to get Deadline up and running as a service.

It is a known issue that Deadline can have problems rendering with Rhino when it is installed as a service. Deadline hooks into Rhino’s Active X control to control the rendering, which does not seem to always function properly when being run as a service. This does not seem to be a permissions issue, and unfortunately we don’t know of any workarounds other than running Deadline in non-service mode.

It could be that Rhino is waiting on that same dialog, and Deadline can’t press the OK button because it is grayed out. Have you tried starting up Rhino manually to see if that dialog still pops up? Are you aware of any ways to disable that dialog from popping up? Maybe you should undo the change we made to the Rhino.py file first. That way, we can determine if we’re actually preventing the dialog from popping up. It would be great to figure out if the problem you’re having is related to this dialog, or if it’s related to running Deadline as a service.

Cheers,

  • Ryan

I don’t get any dialog when running Rhino on the slave, or when rendering the same file in Rhino on the slave when running Deadline as an app rather than a service, so it seems like it’s related to running Deadline as a service. Not running Deadline as a service will work for our dedicated render nodes, but we’re also looking to deploy it on lab machines where it will need to run as a service, so a solution to this would be a big help. Let me know if you need more info on my end.

Cheers,

Eric

When installed as a service, does the Deadline run under a different user? When you start up Rhino manually on the slave, are you logged in as the same user that the service would normally run under? If I’m not mistaken, that dialog should only be popped up when starting Rhino for the first time, and maybe it pops up for the first time for each user.

If you change the Rhino.py file back so that Deadline doesn’t error on that popup, try letting the job run for a couple of minutes. Then go to the logs folder and grab the most recent slave log and post it (on XP, it can be found in C:\Documents and Settings\All Users\Application Data\Frantic Films\Deadline\logs). If the slave can’t get passed that popup, or it’s doing something else to cause it to hang, hopefully it prints out this info in the log.

Thanks,

  • Ryan

Hey Ryan. The service does indeed run as another user, so that it can access our shared renderfarm space. I logged in to the render slave as that user and launched Rhino without issue, then closed Rhino and ran Deadline as a service again and tried another Rhino render job, with the same results: the job hangs at rendering. I’ve attached the log file to this post. I was able to suspend the job and free up the slave this time, however.

Also, the next Rhino job I submitted after that errored out. I’ve included the errors below.

Lastly, I’ve noticed that killing the Deadline service does not actually stop the deadlineslave.exe process, which has to be killed manually.

Hope that helps.


ERROR LOG:

Error Message
Exception during render: An error occurred in RenderTasks(): An error occurred: Cannot create ActiveX component. (Deadline.Plugins.ScriptPlugin+FailRenderException) (Deadline.Plugins.RenderPluginException)
at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)

Slave Log
tching regex “V-Ray – Render Progress”
0: INFO: Ignoring popup windows with titles matching regex “Render history settings”
0: INFO: Handling popup windows with titles matching regex “Bongo” by pressing “OK”
0: INFO: Handling popup windows with titles matching regex “Startup Template” by pressing “Cancel;Open;OK”
0: INFO: Handling popup windows with titles matching regex “Rhinoceros 4.0” by pressing “No;OK”
0: INFO: Handling popup windows with titles matching regex “Rhino Plug-in Error” by pressing “OK”
0: Plugin rendering frame(s): 0
0: INFO: Starting monitored managed process Rhino
0: INFO: Handling stdout that matches regex “An error occurred:.*”
0: INFO: Handling stdout that matches regex “Rhino instance with PID ([0-9]+) is now running”
0: INFO: Handling stdout that matches regex “Closing render window”
0: INFO: Handling stdout that matches regex “Render completed successfully”
0: INFO: Stdout Handling Enabled: True
0: INFO: Popup Handling Enabled: True
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Render Executable: “C:\Program Files\Frantic Films\Deadline\bin\deadlinerhinorenderer.exe”
0: INFO: Render Argument: " -s “C:\Documents and Settings\All Users\Application Data\Frantic Films\Deadline\slave\jobsData\houserender.3dm” -o “\arch-render\renderfarm\Output\EricK\Rhino\rhinoservice3.png” -r “Rhino Render” -c 10 -t 10"
0: INFO: Startup Directory: “C:\Program Files\Frantic Films\Deadline\bin”
0: INFO: Process Priority: BelowNormal
0: STDOUT: An error occurred: Cannot create ActiveX component.
Scheduler Thread - Render Thread 0 threw an error:
Scheduler Thread - Exception during render: An error occurred in RenderTasks(): An error occurred: Cannot create ActiveX component. (Deadline.Plugins.ScriptPlugin+FailRenderException) (Deadline.Plugins.RenderPluginException)

at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)

Error Type
RenderPluginException

Error Stack Trace
at Deadline.Plugins.Plugin.RenderTask(Int32 startFrame, Int32 endFrame)
at Deadline.Slaves.SlaveRenderThread.RenderCurrentTask()
deadlineslave-Archboxx01-2008-10-15-0006.log (23.5 KB)

Yup, that’s the error that we normally see when rendering with Rhino as a service, and unfortunately there is no known workaround at the moment. We will continue to look into this, and we’ll let you know if anything changes.

Cheers,

  • Ryan

Great, thanks, Ryan.

Cheers,

Eric