force "failed" if texture paths not found

Hi all,



I’ve rooted around in the docs, but I haven’t been able to find this (though it’s probably in there somewhere) – I’m interested to know if Deadline can be configured to mark frames as failed if the renderer reports that texture paths/files weren’t found.



In my initial testing, Deadline reported that all the frames were rendered…and it was correct, but it’s just that they rendered without textures on some machines where the drive mappings failed. I noticed that the Slaves where the texture failures occurred displayed the renderer’s error messages about the texture failures.



Any advice you can give is appreciated.



Cheers,



-DW

Hi Dean,



When submitting the job from max, uncheck the “Ignore Missing External

File Errors” box under the Render tab. See this section of the manual

for more info:

http://software.franticfilms.com/index.aspx?page=deadline/3dsmax#maxrendering



Cheers,

Hi Ryan,



Sorry, I should’ve been more specific. I’m using Maya, rendering using either the Maya renderer or mental ray (depending on what I need at the time), and passing a command string from a custom melscript GUI to DeadlineCommand.exe



Is there a flag or switch with DealineCommand.exe (coupled w/ Maya) that will behave in the same way as unchecking the “Ignore Missing External File Errors” in Max?



Thanks again,



-DW

Hi Dean,



No worries!



For Maya, you have two options:


  1. In the Maya plugin configuration (which is accessed from the Tools

    menu in the monitor while in super user mode), you can enable strict

    error checking, which will capture all errors and warnings and report

    them as errors. This might not be ideal though, because Maya tends to

    print out warning messages that aren’t fatal to your render.


  2. Modify the file \your\repository\plugins\Maya\MayaErrorParsing.ffs

    (it’s just a plain text script file) to add the particular message that

    Maya prints out when a texture is missing. For example, if the error

    message looks like:



    “Error: this texture is missing…”



    You could add the following in the appropriate spot (should be self

    explanatory):



    if(StrFind(GetRegExMatch(0),“Error: this texture is missing”) >= 0)

    ignore = false;



    This will cause Deadline to report an error whenever that particular

    message is encountered.





    Hope this helps!



    Cheers,

Hi Ryan,



Option #2 looks to be the best bet. Thanks!



Cheers,



-DW

Hi Ryan,



The error messages look like this:



0: STDOUT: Warning: Texture file P:/textures/square_g.tga doesn’t exist, node file3

0: STDOUT: Warning: Texture file P:/textures/square_b.tga doesn’t exist, node file4



…so per your suggestion I added the following to the MayaErrorParsing.ffs file:



if(StrFind(GetRegExMatch(0),“Warning: Texture file”) >= 0)

ignore = false;



…but when I test again with the same problem machine, Deadline still doesn’t report the task as failed, it still allows the render tasks to continue and reports the frames as Completed.



I’m evidently doing something wrong, but I’m not sure what it is. I tried stopping and starting the Slave on the problem machine, to see if perhaps the change to the .ffs file had to be refreshed in some way, but that didn’t change anything.



Any ideas?



Cheers,



-DW




Hmm, nothing looks incorrect in the code you added. When the task

completes, does the task log show this line for that particular texture

message?



“Deadline Slave ignoring error: … because the plugin setting

StrictErrorChecking is set to false.”



If it is not showing this line, then Deadline isn’t detecting the

warning message in the first place (which means it’s not even getting to

the point where it checks that code you added). If this is the case, let

me know!



Cheers,

This sounds correct.



did you relauch the slave you where testing, you need to relauch the slave to make sure the changes will be available to that slave.



Another method would be to use UNC path (\machineName\shareFolder…)instead of drive letters. UNC path are better in my opinion because the machine will always be able to connect without you having to manualy setup a drive letter or running a script



Hope this helps



Sylvain Berger | Technical Director | Alpha Vision


Hi Ryan,



When I check the log on one of the tasks, it doesn’t have the error you mentioned.



I might have to run a pre-render melscript to change the texture paths to UNC. I’m already passing UNC paths in my command-line for things like the Maya file location from the GUI I wrote, and they’re working well, so I should take that extra step.



Cheers,



-DW

Hi Dean,



It sounds like there is a problem with the regular expression handler

that checks the output for error or warning messages and then executes

the MayaErrorParsing.ffs script.

If you open up Maya.dlinit (which is in the same folder as

MayaErrorParsing.ffs), look for this code:



; Error message handling

OutputRegEx5=.Error: .|.Warning: .

OutputRule5=ExecuteScriptFile( “MayaErrorParsing.ffs” );





This is supposed to call the error parsing script whenever ‘Error:’ or

‘Warning:’ is found in an output line, but the warning part doesn’t seem

to be working. Leave this code as is, but try adding the following to

the bottom of the file (note that I’m assuming the next OutputRegex # is

15, but you can change the number if necessary):



; Error message handling (checks for Warning: explicitly)

OutputRegEx15=.Warning: .

OutputRule15=ExecuteScriptFile( “MayaErrorParsing.ffs” );



Try this and see if you get that message I mentioned in the last post,

and if Deadline actually reports an error when the textures are missing now.



Of course, you could just switch to UNC paths like Sylvain mentioned. :slight_smile:



Cheers,