I am currently trying to render using Rhino 4.0 and Deadline 4.0. I believe Deadline is installed and running in normal mode–we’ve already encountered the ActiveX errors mentioned when trying to run Deadline as a service.
(ActiveX error was the same as found in this thread: viewtopic.php?f=11&t=3381&p=12846&hilit=rhino)
Running in normal mode, however, gives us the following error log:
Error Message
Exception during render: An error occurred in RenderTasks(): ChildProcess() takes no arguments (1 given)
at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)
Slave Log
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Constructor: Rhino
0: Task timeout is disabled.
0: Loaded job: Thisistherenderfinal (999_050_999_23f7247d)
0: INFO: StartJob: initializing script plugin Rhino
0: INFO: About: Rhino Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Starting monitored managed process Rhino
0: INFO: Any stdout that matches the regular expression “An error occurred:.*” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Rhino instance with PID ([0-9]+) is now running” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Closing render window” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Render completed successfully” will be handled as appropriate
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\Prime Focus\Deadline\bin\deadlinerhinorenderer.exe”
0: INFO: Render Argument: -s “C:\Documents and Settings\man\Local Settings\Application Data\Prime Focus\Deadline\slave\jobsData\ThisIsTheRenderingModel.3dm” -o “\tcaup-storage.adsroot.itcs.umich.edu\Temp Storage\Deadline Repository\Test10-02-02.jpg” -r “V-Ray for Rhino” -c 10 -t 10
0: INFO: Startup Directory: “C:\Program Files\Prime Focus\Deadline\bin”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Rhino instance with PID 5508 is now running
0: STDOUT: Waiting 10 seconds for Rhino to start up
LICENSE-FREE MODE: Repository has two slaves including this one - no license required.
Scheduler Thread - Render Thread 0 threw an error:
Scheduler Thread - Exception during render: An error occurred in RenderTasks(): ChildProcess() takes no arguments (1 given)
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()
This error log comes up several times for every job and Deadline will start several instances of Rhino with every job as well (Task Manager shows 4-5 instances of Rhino4.exe). The strange thing is, eventually Rhino successfully starts to render, and the correct output is produced and saved. The problem is that only 1 Rhino instance shuts down cleanly, leaving 3-4 Rhino.exes left. It seems like the easiest solution would be to just call ChildProcess() and not pass an argument, but we’re unsure how to edit the Rhino plugin script (the plugin options for Rhino only allow for editing of timeout length).
Any idea why the exception is occurring? Any ideas how to fix the problem?
Thanks in advance!
This is definitely a bug, and unfortunately is one that will require core code changes to fix properly. However, we’ve attached a patch that might workaround the problem for now. To install, first make a backup copy of \your\repository\plugins\Rhino\Rhino.py (just to be safe), then unzip the attached file to \your\repository\plugins\Rhino. After installing the patch, try submitting a new Rhino job and let us know if you get different results.
Cheers,
Thanks for the quick reply! I updated to your patch and resubmitted a job that was causing problems before. This time there were no ChildProcess() errors, in fact, Deadline Monitor said job completed with 0 errors whatsoever.
I think I misinterpreted what was going on with the multiple Rhino4.exes earlier though. When I first resubmitted a job, everything looked great, there was only 1 Rhino4.exe, no warnings or errors.
At the very end of the slave log though, it reads:
0: STDOUT: Rendering the scene
0: STDOUT: Command was successful
0: STDOUT: Saving output to “\tcaup-storage.adsroot.itcs.umich.edu\Temp Storage\Deadline Repository\test14forRhino.png”
0: STDOUT: Command was successful
0: STDOUT: Closing render window
0: STDOUT: Command was successful
0: STDOUT: Render completed successfully
0: WARNING: Program Rhino did not close cleanly, it is being terminated forcefully.
And of course, the program isn’t closed cleanly or forcefully, it just sticks around. Submitting a 2nd job got a 2nd Rhino4.exe, 3rd job a 3rd Rhino4.exe, and so on. At 5 instances of Rhino, I believe its the Rhino License Manager that kicks in and kills one of the Rhino processes? (this is my guess/interpretation, I’m not entirely positive)
Edit: Before, in my first post, I said I noticed an instance of Rhino closing successfully. I’m now interpreting that to be the RhinoLM killing the process, and not a normal/successful close.
Try this new patch. I think it should handle cleaning up the Rhino process after rendering finishes. Just install it the same way you did the last one.
Cheers,
Managed to squeeze in a few tests today and at first glance everything looked great–no errors, Rhino shut down successfully on completion, etc. etc. Using the same files as before didn’t break it either.
Thanks for all the help,
SRS
Glad to hear it, and thanks for confirming! We’re planning a service pack release for 4.0 in the next couple of weeks, and we’ll include this fix in the release.
Cheers,
Hi again,
I have just installed Deadline 4 SP1, and now Rhino is giving me fits once more (at least, I am relatively confident SP1 repository and client installs were successful). The error message this time is quite similar to the old ones, and the problems are quite similar too.
Error Message
Exception during render: An error occurred in RenderTasks(): expected ChildProcess, got Process
at Deadline.Plugins.ScriptPlugin.RenderTasks(Int32 startFrame, Int32 endFrame, String& outMessage)
Slave Log
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Constructor: Rhino
0: Task timeout is disabled.
0: Loaded job: deadlineSP1 (999_050_999_3fbedcb5)
0: INFO: StartJob: initializing script plugin Rhino
0: INFO: About: Rhino Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Starting monitored managed process Rhino
0: INFO: Any stdout that matches the regular expression “An error occurred:.*” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Rhino instance with PID ([0-9]+) is now running” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Closing render window” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Render completed successfully” will be handled as appropriate
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\Prime Focus\Deadline\bin\deadlinerhinorenderer.exe”
0: INFO: Render Argument: -s “C:\Documents and Settings\srsupat\Local Settings\Application Data\Prime Focus\Deadline\slave\jobsData\ThisIsTheRenderingModel.3dm” -o “\tcaup-storage.adsroot.itcs.umich.edu\temp storage\Deadline Output\SP1.bmp” -r “V-Ray for Rhino” -c 10 -t 10
0: INFO: Startup Directory: “C:\Program Files\Prime Focus\Deadline\bin”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
LICENSE-FREE MODE: Repository has two slaves including this one - no license required.
0: STDOUT: Rhino instance with PID 5808 is now running
0: STDOUT: Waiting 10 seconds for Rhino to start up
Scheduler Thread - Render Thread 0 threw an error:
Scheduler Thread - Exception during render: An error occurred in RenderTasks(): expected ChildProcess, got Process
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()
Also, the Rhino4 processes stack up and are not cleaned up.
Out of pure curiosity, I ran a simple diff comparison between the Rhino.py file from SP1 and the second Rhino.py file attached here. Since the diff discovered some differences, I wondered if replacing to the older Rhino.py might fix the problem, but instead I receive the Windows error message rhinorenderer.exe has performed an illegal operation etc. etc. (I have since changed back to the SP1 Rhino.py file btw).
Not quite sure what makes me significantly different from other Rhino users…there are some weird permissions set up w/ regard to the program and file access, but that should not affect these sort of argument errors.
I just tested a rhino job where with 4.0 SP1 and it worked just fine. The error message “An error occurred in RenderTasks(): expected ChildProcess, got Process” seems to indicate that the slave is still running 4.0, and not 4.0 SP1. On a node that produced this error, select Help -> About Deadline Slave from the slave menu and check the Deadline version. If the Deadline version is not 40330, then the client isn’t running 4.0 SP1.
Cheers,
Doh, that’s my bad there. Just upgraded the slave to SP1, but still encountering problems. Rhinorenderer.exe crashes, so rendering sits at 0%. Slave doesn’t notice its crashed? But when you press don’t send on the Microsoft Error Report screen, you get the following message on the slave log:
0: STDOUT: Unhandled Exception: System.MissingMemberException: Public member ‘Exit’ on type ‘DBNull’ not found.
0: STDOUT: at Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers(String& MemberName, Boolean ReportErrors)
0: STDOUT: at Microsoft.VisualBasic.CompilerServices.NewLateBinding.CallMethod(Container BaseReference, String MethodName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, BindingFlags InvocationFlags, Boolean ReportErrors, ResolutionFailure& Failure)
0: STDOUT: at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
0: STDOUT: at RhinoRendererVB.RhinoRenderApp.ExitRhino()
I’m going to try clean installs of SP1 on repository, slave, everything really and see if that fixes the problem.
Thanks for the feedback so far,
SRS
I think this particular error may occur if Rhino hasn’t finished loading and Deadline tries to load its active X object. Can you perhaps post the full log? Some things to try perhaps would be:
- Try bumping up the time settings in the Rhino plugin configuration. I believe both default to 10, so maybe try 20 just for now (the full render log will let us know if this is even necessary).
- When you start up Rhino by itself on the render node that is giving this error, does it start up without any prompts/popups? If so, see if you can eliminate them, because they might be interfering with the render.
Cheers,
There are no popups when Rhino opens on this machine.
Looking up the log I posted March 5th:
2010-03-05 14:50:16: Constructor: Rhino
2010-03-05 14:50:16: 0: Task timeout is disabled.
2010-03-05 14:50:16: 0: Loaded job: rhinoLarge (999_050_999_6a07b0d4)
2010-03-05 14:50:17: 0: INFO: StartJob: initializing script plugin Rhino
2010-03-05 14:50:19: 0: INFO: About: Rhino Plugin for Deadline
2010-03-05 14:50:19: 0: Plugin rendering frame(s): 0
2010-03-05 14:50:20: 0: INFO: Starting monitored managed process Rhino
2010-03-05 14:50:20: 0: INFO: Any stdout that matches the regular expression “An error occurred:.*” will be handled as appropriate
2010-03-05 14:50:20: 0: INFO: Any stdout that matches the regular expression “Rhino instance with PID ([0-9]+) is now running” will be handled as appropriate
2010-03-05 14:50:20: 0: INFO: Any stdout that matches the regular expression “Closing render window” will be handled as appropriate
2010-03-05 14:50:20: 0: INFO: Any stdout that matches the regular expression “Render completed successfully” will be handled as appropriate
2010-03-05 14:50:20: 0: INFO: Stdout Handling Enabled: True
2010-03-05 14:50:20: 0: INFO: Popup Handling Enabled: True
2010-03-05 14:50:20: 0: INFO: Using Process Tree: True
2010-03-05 14:50:20: 0: INFO: Hiding DOS Window: True
2010-03-05 14:50:20: 0: INFO: Creating New Console: False
2010-03-05 14:50:20: 0: INFO: Render Executable: “C:\Program Files\Prime Focus\Deadline\bin\deadlinerhinorenderer.exe”
2010-03-05 14:50:20: 0: INFO: Render Argument: -s “C:\Documents and Settings\srsupat\Local Settings\Application Data\Prime Focus\Deadline\slave\jobsData\ThisIsTheRenderingModelLarge.3dm” -o “\tcaup-storage.adsroot.itcs.umich.edu\Temp Storage\Deadline Output\rhinoLarge.png” -r “V-Ray for Rhino” -c 10 -t 10
2010-03-05 14:50:20: 0: INFO: Startup Directory: “C:\Program Files\Prime Focus\Deadline\bin”
2010-03-05 14:50:20: 0: INFO: Process Priority: BelowNormal
2010-03-05 14:50:20: 0: INFO: Process is now running
2010-03-05 14:50:21: 0: STDOUT: Rhino instance with PID 2928 is now running
2010-03-05 14:50:21: 0: STDOUT: Waiting 10 seconds for Rhino to start up
2010-03-05 14:50:21: 0: STDOUT: 10 seconds left
2010-03-05 14:50:22: 0: STDOUT: 9 seconds left
2010-03-05 14:50:24: 0: STDOUT: 8 seconds left
2010-03-05 14:50:24: 0: STDOUT: 7 seconds left
2010-03-05 14:50:25: 0: STDOUT: 6 seconds left
2010-03-05 14:50:26: 0: STDOUT: 5 seconds left
2010-03-05 14:50:27: 0: STDOUT: 4 seconds left
2010-03-05 14:50:28: 0: STDOUT: 3 seconds left
2010-03-05 14:50:29: 0: STDOUT: 2 seconds left
2010-03-05 14:50:31: 0: STDOUT: 1 seconds left
2010-03-05 14:50:31: 0: STDOUT: 0 seconds left
2010-03-05 14:50:31: 0: STDOUT: Connecting to RhinoScript object
2010-03-05 14:51:57: 0: STDOUT: Unhandled Exception: System.MissingMemberException: Public member ‘Exit’ on type ‘DBNull’ not found.
2010-03-05 14:51:57: 0: STDOUT: at Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers(String& MemberName, Boolean ReportErrors)
2010-03-05 14:51:57: 0: STDOUT: at Microsoft.VisualBasic.CompilerServices.NewLateBinding.CallMethod(Container BaseReference, String MethodName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, BindingFlags InvocationFlags, Boolean ReportErrors, ResolutionFailure& Failure)
2010-03-05 14:51:57: 0: STDOUT: at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)
2010-03-05 14:51:57: 0: STDOUT: at RhinoRendererVB.RhinoRenderApp.ExitRhino()
Not quite sure what you mean by “both” time settings in Rhino configuration. Task timeout seems to be the only one? (and it is already disabled). Curiously enough, however, I decided to resubmit job today, and everything ran smoothly (both with 30 seconds task timeout and task timeout disabled).
Same file and settings today, no error:
Constructor: Rhino
0: Task timeout is disabled.
0: Loaded job: RhinoNoTimeout (999_050_999_3c299a8e)
LICENSE-FREE MODE: Repository has two slaves including this one - no license required.
0: INFO: StartJob: initializing script plugin Rhino
0: INFO: About: Rhino Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Starting monitored managed process Rhino
0: INFO: Any stdout that matches the regular expression “An error occurred:.*” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Rhino instance with PID ([0-9]+) is now running” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Closing render window” will be handled as appropriate
0: INFO: Any stdout that matches the regular expression “Render completed successfully” will be handled as appropriate
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\Prime Focus\Deadline\bin\deadlinerhinorenderer.exe”
0: INFO: Render Argument: -s “C:\Documents and Settings\srsupat\Local Settings\Application Data\Prime Focus\Deadline\slave\jobsData\ThisIsTheRenderingModelLarge.3dm” -o “\tcaup-storage.adsroot.itcs.umich.edu\Temp Storage\Deadline Output\noTimeOut.png” -r “V-Ray for Rhino” -c 10 -t 10
0: INFO: Startup Directory: “C:\Program Files\Prime Focus\Deadline\bin”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Rhino instance with PID 4168 is now running
0: STDOUT: Waiting 10 seconds for Rhino to start up
0: STDOUT: 10 seconds left
0: STDOUT: 9 seconds left
0: STDOUT: 8 seconds left
0: STDOUT: 7 seconds left
0: STDOUT: 6 seconds left
0: STDOUT: 5 seconds left
0: STDOUT: 4 seconds left
0: STDOUT: 3 seconds left
0: STDOUT: 2 seconds left
0: STDOUT: 1 seconds left
0: STDOUT: 0 seconds left
0: STDOUT: Connecting to RhinoScript object
0: STDOUT: Loading scene file “C:\Documents and Settings\srsupat\Local Settings\Application Data\Prime Focus\Deadline\slave\jobsData\ThisIsTheRenderingModelLarge.3dm”
0: STDOUT: Command was successful
0: STDOUT: Setting renderer to “V-Ray for Rhino”
0: STDOUT: Command was successful
0: STDOUT: Rendering the scene
LICENSE-FREE MODE: Repository has two slaves including this one - no license required.
0: STDOUT: Command was successful
0: STDOUT: Saving output to “\tcaup-storage.adsroot.itcs.umich.edu\Temp Storage\Deadline Output\noTimeOut.png”
0: STDOUT: Command was successful
0: STDOUT: Closing render window
0: STDOUT: Command was successful
0: STDOUT: Render completed successfully
The Rhine plugin configuration that I’m referring to can be accessed from the Monitor while in super use mode by selecting Tools -> Configure Plugins. Then select the Rhino plugin from the list on the left.
That’s good that a job has now gone through successfully. I wonder if the problem was due to a mismatch in Deadline versions between the Repository and the Clients. I guess all you can do now is submit more jobs and let us know if additional problems creep up.
Cheers,