AWS Thinkbox Discussion Forums

draft event listener dosen't pickup all the job

Hmm, I’m not sure that either of those are necessarily related to Draft jobs not getting submitted. I’ve attached a version of the Draft Event plugin that should log more info about the actual result of the Draft Submission. Try using this and check the original Job’s logs when a Draft Job fails to submit to see if there’s any additional info.

As usual, extract the attached file to ‘events/Draft/Draft.py’

Cheers,

Hi !

here one log

[code]=======================================================
Log Message

Found Draft Template: ‘//fx-nas-01/vfx/RENDER/simple_slate_h264_MJPEG_burnins.py’
Preparing Draft Job for output 1/1: \fx-nas-01\vfx\RENDER\IA\SHOTS\014\0001\cmp\output\v06\Draft\IA_014_0001_cmp_v06.%v.mov
Submitting Draft Job to Deadline…

=======================================================
Log Details

Log Date/Time = Aug 27/12 18:04:45
Frames = (no task)

Slave Machine = Fx-render-04
Slave Version = v5.1.0.46114 R

Plugin Name = Draft

[/code]

In this case, the right eye didn’t render

Could we setup a telephone meeting to talk about this problem. I have a feeling that the problem is cause by multiple bug.

Ah, sorry, I screwed up when I made my modification, it obviously didn’t print anything extra. I’ve attached a new one and made sure to test it properly this time – try this one instead and see what it gives us.

The fact that the original job didn’t render the Right Eye frames really should have no bearing on whether or not the Draft job gets submitted sucessfully… Given how far it’s getting in the event plugin, even if the Draft job would fail due to missing output, it should still show up in the queue.

As for scheduling a call, I’d really like to see the output of a failed Draft submission with this (newly) modified Draft event plugin first, since I think it will really help me out to figure out what’s going on.

Ok so far i have been able to have on bug

The draft failed and it give me 1k mov file.

Here my logs

[code]=======================================================
Log Message

Found Draft Template: ‘\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py’
Preparing Draft Job for output 1/6: R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_specific_v01.l.mov
Submitting Draft Job to Deadline…
Deadline Slave 5.1 [v5.1.0.46114 R]

Submitting to Repository: //fx-deadline/Deadline

Submission Contains the Following:

  1. Auxiliary File #1 (“C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\temp\draft_event_plugin_info0.job”)
  2. Auxiliary File #2 ("\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py")

Result=Success
JobID=002_055_00a_4da2ad4d

Preparing Draft Job for output 2/6: R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_specific_v01.r.mov
Submitting Draft Job to Deadline…
Deadline Slave 5.1 [v5.1.0.46114 R]

Submitting to Repository: //fx-deadline/Deadline

Submission Contains the Following:

  1. Auxiliary File #1 (“C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\temp\draft_event_plugin_info1.job”)
  2. Auxiliary File #2 ("\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py")

Result=Success
JobID=002_055_00a_47e8ac54

Preparing Draft Job for output 3/6: R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_global_v01.l.mov
Submitting Draft Job to Deadline…
Deadline Slave 5.1 [v5.1.0.46114 R]

Submitting to Repository: //fx-deadline/Deadline

Submission Contains the Following:

  1. Auxiliary File #1 (“C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\temp\draft_event_plugin_info2.job”)
  2. Auxiliary File #2 ("\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py")

Result=Success
JobID=002_055_00a_1e6c2996

Preparing Draft Job for output 4/6: R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_global_v01.r.mov
Submitting Draft Job to Deadline…
Deadline Slave 5.1 [v5.1.0.46114 R]

Submitting to Repository: //fx-deadline/Deadline

Submission Contains the Following:

  1. Auxiliary File #1 (“C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\temp\draft_event_plugin_info3.job”)
  2. Auxiliary File #2 ("\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py")

Result=Success
JobID=002_055_00a_6e1e7745

Preparing Draft Job for output 5/6: R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_mattes_v01.l.mov
Submitting Draft Job to Deadline…
Deadline Slave 5.1 [v5.1.0.46114 R]

Submitting to Repository: //fx-deadline/Deadline

Submission Contains the Following:

  1. Auxiliary File #1 (“C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\temp\draft_event_plugin_info4.job”)
  2. Auxiliary File #2 ("\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py")

Result=Success
JobID=002_055_00a_3c15e47d

Preparing Draft Job for output 6/6: R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_mattes_v01.r.mov
Submitting Draft Job to Deadline…
Deadline Slave 5.1 [v5.1.0.46114 R]

Submitting to Repository: //fx-deadline/Deadline

Submission Contains the Following:

  1. Auxiliary File #1 (“C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\temp\draft_event_plugin_info5.job”)
  2. Auxiliary File #2 ("\fx-nas-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py")

Result=Success
JobID=002_055_00a_1b4eb118

=======================================================
Log Details

Log Date/Time = Aug 31/12 06:24:58
Frames = (no task)

Slave Machine = Fx-render-14
Slave Version = v5.1.0.46114 R

Plugin Name = Draft

[/code]

[code]=======================================================
Error Message

Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage)

=======================================================
Slave Log

0: Loaded plugin: Draft
0: Task timeout is disabled.
0: Loaded job: DRA3D_016_0001_lts_raptor_grey_render.rib [DRAFT] (002_050_999_6aa1e815)
0: Successfully mapped R: to \FX-NAS-01\vfx\RENDER
0: Successfully mapped K: to \FX-NAS-01\vfx\Projets
0: INFO: StartJob: initializing script plugin Draft
0: INFO: Found Draft python module at: ‘C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Poste-0475\Draft\Draft.pyd’
0: INFO: About: Draft Plugin for Deadline
0: Plugin rendering frame(s): 0
0: INFO: Draft job starting…
0: INFO: Stdout Handling Enabled: False
0: INFO: Popup Handling Enabled: False
0: INFO: Using Process Tree: True
0: INFO: Hiding DOS Window: True
0: INFO: Creating New Console: False
0: INFO: Looking for bundled python at: ‘C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe’
0: INFO: Render Executable: “C:\Program Files\Thinkbox\Deadline\python\2.6.7\x64\python.exe”
0: INFO: Render Argument: -u “\FX-NAS-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py” username=“emaltais” entity=“DRA3D_016_0001_lts_raptor_grey_render.rib” version="" inFile=“R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\DRA3D_016_0001_lts_raptor_grey_specific_v01.l.####.exr” outFile=“R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_specific_v01.l.mov” startFrame=“143” endFrame=“807” frameList=“143-184,272-305,346-369,405-448,637-667,787-807” deadlineJobID=004_055_999_4c615b9e
0: INFO: Startup Directory: “C:\Users\renderfx\AppData\Local\Thinkbox\Deadline\slave\Poste-0475\Draft”
0: INFO: Process Priority: BelowNormal
0: INFO: Process is now running
0: STDOUT: Checking for license at @prodflexmr
0: STDOUT: Draft Beta 0.11.0.47662
0: STDOUT: Draft Version: 0.11.0.47662
0: STDOUT: Command line args:
0: STDOUT: username=emaltais
0: STDOUT: entity=DRA3D_016_0001_lts_raptor_grey_render.rib
0: STDOUT: version=
0: STDOUT: inFile=R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\DRA3D_016_0001_lts_raptor_grey_specific_v01.l.####.exr
0: STDOUT: outFile=R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft\DRA3D_016_0001_lts_raptor_grey_specific_v01.l.mov
0: STDOUT: startFrame=143
0: STDOUT: endFrame=807
0: STDOUT: frameList=143-184,272-305,346-369,405-448,637-667,787-807
0: STDOUT: deadlineJobID=004_055_999_4c615b9e
0: STDOUT: Traceback (most recent call last):
0: STDOUT: File “\FX-NAS-01\vfx\RENDER\simple_slate_h264_MJPEG_burnins.py”, line 189, in
0: STDOUT: oFrameCount = str(int(oFrameRangeSplit[1]) - int(oFrameRangeSplit[0]) + 1)
0: STDOUT: ValueError: invalid literal for int() with base 10: ‘184,272’
0: STDOUT: Output #0, mov, to ‘R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft/1080p/DRA3D_016_0001_lts_raptor_grey_specific_v01.l (8).mov’:
0: STDOUT: Metadata:
0: STDOUT: encoder : Lavf53.32.100
0: STDOUT: Stream #0:0: Video: mjpeg (jpeg / 0x6765706A), yuvj420p, 1920x1080, q=2-31, 75000 kb/s, 24 tbn, 24 tbc
0: STDOUT: Output #0, mov, to ‘R:\DRA3D\SHOTS\016\0001\lts\images\raptor_grey\v01\Draft/halfrez/DRA3D_016_0001_lts_raptor_grey_specific_v01.l-Hres (8).mov’:
0: STDOUT: Metadata:
0: STDOUT: encoder : Lavf53.32.100
0: STDOUT: Stream #0:0: Video: mjpeg (jpeg / 0x6765706A), yuvj420p, 2560x1350, q=2-31, 325000 kb/s, 24 tbn, 24 tbc
0: INFO: Process exit code: 1
0: An exception occurred: Exception during render: An error occurred in RenderTasks(): Error in CheckExitCode(): Renderer returned non-zero error code, 1. Check the log for more information.
à Deadline.Plugins.ScriptPlugin.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage) (Deadline.Plugins.RenderPluginException)

=======================================================
Error Type

RenderPluginException

=======================================================
Error Stack Trace

à Deadline.Plugins.Plugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
à Deadline.Slaves.SlaveRenderThread.RenderCurrentTask(TaskLogWriter tlw)
[/code]

Thks for your support

Hey Fred,

The problem here lies in your Draft Template; it seems to be splitting the frame list on ‘-’, expecting it to be a simple range like ‘1-100’, but the range being passed here is more complex than that. So in this case you end up with ‘143’ and ‘184,272’ as your first two values, the second of which isn’t a valid integer. You’ll have to make some modifications to your template if you want it to handle complex frame ranges such as this one.

Cheers,

  • Jon

I already submit the problem in this thread
viewtopic.php?f=127&t=8021&start=10

Do i flag it in the other thread ?

I’ll come back to you with the other bug and the logs.

Thks !

I responded to your post in the other thread: viewtopic.php?f=127&t=8021&p=33826#p33826

In another thread, you fix our template, but since draft dosn’t start if the job failed (wich it is suppose to do ). Can you look into it ?
Here my template:

[code]import sys
import os
import datetime
import copy
import xml.etree.ElementTree as xml

import Draft
from DraftParamParser import *

print “Draft Version: %s” % Draft.LibraryInfo.Version()

def ResizeWithLetterbox(self, width, height):
if width <= 0:
raise RuntimeError(‘width must be a positive number’)
if height <= 0:
raise RuntimeError(‘height must be a positive number’)
sourceAR = float(self.width) / self.height
destAR = float(width) / height
if sourceAR == destAR:
self.Resize(width, height)
else:
image = copy.deepcopy(self)
if width <= self.width and height <= self.height:
self.Crop(0, 0, width, height)
else:
self.Resize(width,height)
self.SetToColor(Draft.ColorRGBA(0, 0, 0, 1.0))
if sourceAR > destAR:
image.Resize(width,int(round(width/sourceAR)))
else:
image.Resize(int(round(height*sourceAR)),height)
self.CompositeWithPositionAndGravity(image, 0.5, 0.5, Draft.PositionalGravity.CenterGravity, Draft.CompositeOperator.CopyCompositeOp)

Draft.Image.ResizeWithLetterbox = ResizeWithLetterbox

#Returns a list of frames based on the given frameString
def FrameListToFrames( frameString ):
frames = []
frameRangeTokens = re.split( ‘\s+|,+’, frameString )

for token in frameRangeTokens:
    try:
        if ( len(token) > 0 ):
            dashIndex = string.find( token, '-', 1)

            if ( dashIndex == -1 ):
                startFrame = int(token)
                frames.append( startFrame )
            else:
                startFrame = int(token[0:dashIndex])

                m = re.match( "(-?\d+)(?:(x|step|by|every|i)(\d+))?", token[dashIndex + 1:] )
                if ( m == None ) :
                    raise StandardError( "Second part of Token failed regex match" )
                else:
                    endFrame = int(m.group(1))

                    if ( m.group(2) == None ):
                        frames.extend( range(startFrame, endFrame + 1 ))
                    else:
                        dir = 1
                        if startFrame > endFrame:
                            dir = -1

                        byFrame = int(m.group(3));

                        frame = startFrame
                        while (frame * dir) <= (endFrame * dir):
                            frames.append( frame )
                            frame += byFrame * dir

    except:
        print "ERROR: Frame Range token '" + token + "' is malformed. Skipping this token."
        raise

frames = list(set(frames))
frames.sort()

return frames

#CHANGE ME! Path to the Deadline Repository root
deadlineRepo = “\fx-deadline\deadline\”

#CHANGE ME! Path to an image containing the background of the slate frame
slateFrame = “\\fx-deadline\deadline\Draft\Slate_Montage5K_new.png”
logoFrame = “\\fx-deadline\deadline\Draft\FrimaFX.png”

#The argument name/types we’re expecting from the command line arguments
expectedTypes = dict()
expectedTypes[‘frameList’] = ‘’
expectedTypes[‘inFile’] = ‘’
expectedTypes[‘outFile’] = ‘’
expectedTypes[‘username’] = ‘’
expectedTypes[‘entity’] = ‘’
expectedTypes[‘version’] = ‘’
#expectedTypes[‘deadlineJobID’] = ‘’
expectedTypes[‘startFrame’] = ‘’
expectedTypes[‘endFrame’] = ‘’

#Parse the command line arguments
params = ParseCommandLine( expectedTypes, sys.argv )

inFilePattern = params[‘inFile’]
params[‘frameList’] = “%d-%d” % (params[‘startFrame’], params[‘endFrame’])
frames = range( params[‘startFrame’], params[‘endFrame’] + 1 )
#frames = FrameListToFrames( params[‘frameList’] )

if(True):
(outDir, outFile) = os.path.split(params[‘outFile’])
(outBase, outExt) = os.path.splitext(outFile)

outFolder = os.path.basename(outDir)

if not os.path.exists(os.path.join(outDir, ‘1080p’)):
os.makedirs(os.path.join(outDir, ‘1080p’))
#if not os.path.exists(os.path.join(outDir, ‘halfrez’)):

os.makedirs(os.path.join(outDir, ‘halfrez’))

#if not os.path.exists(os.path.join(outDir, ‘fullrez’)):

os.makedirs(os.path.join(outDir, ‘fullrez’))

else:
(outBase, outExt) = os.path.splitext(params[‘outFile’])

outWidth = 1920
outHeight = 1080
#halfWidth = 2560
#halfHeight = 1350
slateFrames = 1
outLut = Draft.LUT.CreateRec709()

for eye in [‘l’,‘r’]:
#Build up the encoders
doOutSingleEye = False
if not ‘%v’ in outBase:
doOutSingleEye = True

outBaseEye = outBase.replace( ‘%v’, eye )

#outBaseEyeHalf = outBase.replace( ‘%v’, eye ) + “-Hres”
#outBaseEyeFull = outBase.replace( ‘%v’, eye ) + “-Fres”

#Appends (#) on the end of the filename until we have a unique name
increment = 2
newFileName = ‘%s/1080p/%s%s’%(outDir, outBaseEye, outExt)
while os.path.exists( newFileName ):
newFileName = ‘%s/1080p/%s (%d)%s’%(outDir, outBaseEye, increment, outExt)
increment += 1

#Appends (#) on the end of the filename until we have a unique name
#increment = 2
#newFileNameHalf = ‘%s/halfrez/%s%s’%(outDir, outBaseEyeHalf, outExt)
#while os.path.exists( newFileNameHalf ):

newFileNameHalf = ‘%s/halfrez/%s (%d)%s’%(outDir, outBaseEyeHalf, increment, outExt)

#   increment += 1

MJPEGencoder = Draft.VideoEncoder( newFileName, 24.0, outWidth, outHeight, 150000, “MJPEG” )

MJPEGencoderHRes = Draft.VideoEncoder( newFileNameHalf, 24.0, halfWidth, halfHeight, 325000, “MJPEG” )

#Annotation info used for burn ins
annotationInfo = Draft.AnnotationInfo()
annotationInfo.FontType = “Arial”
annotationInfo.PointSize = int( outHeight * 0.017 )
annotationInfo.Color = Draft.ColorRGBA( 1.0, 1.0, 1.0, 1.0 )

#Annotation info used for burn ins
annotationInfoBig = Draft.AnnotationInfo()
annotationInfoBig.FontType = “Arial”
annotationInfoBig.PointSize = int( outHeight * 0.02 )
annotationInfoBig.Color = Draft.ColorRGBA( 1.0, 1.0, 1.0, 1.0 )

#Annotation info used for burn ins
annotationInfoFrame = Draft.AnnotationInfo()
annotationInfoFrame.FontType = “Arial”
annotationInfoFrame.PointSize = int( outHeight * 0.025 )
annotationInfoFrame.Color = Draft.ColorRGBA( 1.0, 1.0, 1.0, 1.0 )

#prep the Slate Frame
try:
slate = Draft.Image.ReadFromFile( slateFrame )
except:
slate = Draft.Image.CreateImage( outWidth, outHeight )
slate.SetToColor( Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 ) )

if ( slate.width != outWidth or slate.height != outHeight ):
slate.ResizeWithLetterbox( outWidth, outHeight )

#sets up the text on the slate frame
slateAnnotations = [params[‘entity’], params[‘version’], params[‘username’], datetime.datetime.now().strftime("%m/%d/%Y %I:%M %p"), params[‘frameList’]]

for i in range (0, 4):
annotation = Draft.Image.CreateAnnotation(slateAnnotations[i], annotationInfo)
slate.CompositeWithPositionAndGravity(annotation, 0.23, 0.446 - (i * 0.03), Draft.PositionalGravity.NorthWestGravity, Draft.CompositeOperator.OverCompositeOp)

annotation = Draft.Image.CreateAnnotation(slateAnnotations[4], annotationInfo)
slate.CompositeWithPositionAndGravity(annotation, 0.327, 0.24, Draft.PositionalGravity.SouthGravity, Draft.CompositeOperator.OverCompositeOp)

oFrameRangeSplit = slateAnnotations[4].split(’-’)
oFrameCount = str(int(oFrameRangeSplit[1]) - int(oFrameRangeSplit[0]) + 1)
annotation = Draft.Image.CreateAnnotation(oFrameCount, annotationInfoBig)
slate.CompositeWithPositionAndGravity(annotation, 0.251, 0.237, Draft.PositionalGravity.SouthGravity, Draft.CompositeOperator.OverCompositeOp)

#encode the slate frames at the start of the video
print( “Encoding Slate Frames…” )
for i in range( 0, slateFrames ):
MJPEGencoder.EncodeNextFrame( slate )
#MJPEGencoderHRes.EncodeNextFrame( slate )

studioAnnotation = Draft.Image.CreateAnnotation( “DRA3D2”, annotationInfo )
entityAnnotation = Draft.Image.CreateAnnotation( “%s %s” % (params[‘entity’], datetime.datetime.now().strftime("%m/%d/%Y")), annotationInfo )
dateAnnotation = Draft.Image.CreateAnnotation( datetime.datetime.now().strftime("%m/%d/%Y"), annotationInfo )
shotAnnotation = Draft.Image.CreateAnnotation(params[‘entity’], annotationInfo)

try:
logo = Draft.Image.ReadFromFile( logoFrame )
logo.Resize(int(0.1852outHeight), int(0.0657outHeight))
except:
logo = Draft.Image.CreateImage( outWidth, outHeight )
logo.SetToColor( Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 ) )

#annotationInfo.BackgroundColor = Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 )

#initialize the frame to None
bgFrame = None

#Main encoding loop
for frameNumber in frames:
print( “Processing Frame: %d…-1” % frameNumber )

  inFile = inFilePattern.replace( '%v', eye )
  inFile = ReplaceFilenameHashesWithNumber( inFile, frameNumber )

  if os.path.exists( inFile ):
     try:
        #try to read in the frame
        bgFrame = Draft.Image.ReadFromFile( inFile )
     except:
        #failed to read in, that's OK, we'll just re-encode the previous frame
        pass

  #create a black frame if we couldn't read in, and don't have a previous frame to encode
  if bgFrame == None:
     bgFrame = Draft.Image.CreateImage( outWidth, outHeight )
     bgFrame.SetToColor( Draft.ColorRGBA( 0.0, 0.0, 0.0, 1.0 ) )
  elif ( bgFrame.width != outWidth or bgFrame.height != outHeight ):
     bgFrame.ResizeWithLetterbox( outWidth, outHeight )

  #Do the frame burnins
  burned = Draft.Image.CreateImage( outWidth, outHeight )
  bgFrame.SetChannel('A', 1.0)
  burned.Composite(bgFrame, 0, 0, Draft.CompositeOperator.OverCompositeOp)
  framesAnnotation = Draft.Image.CreateAnnotation( str( frameNumber ), annotationInfoFrame )
  burned.CompositeWithPositionAndGravity( framesAnnotation, 0.825, 0.062, Draft.PositionalGravity.SouthEastGravity, Draft.CompositeOperator.OverCompositeOp )

  #don't redo the other burnins, or the LUT since we've already done it for the last frame
  #if os.path.exists( inFile ):
  burned.CompositeWithPositionAndGravity( studioAnnotation, 0.0, 1.0, Draft.PositionalGravity.NorthWestGravity, Draft.CompositeOperator.OverCompositeOp )
  burned.CompositeWithPositionAndGravity( dateAnnotation, 0.0, 0.0, Draft.PositionalGravity.SouthWestGravity, Draft.CompositeOperator.OverCompositeOp )
  burned.CompositeWithPositionAndGravity( shotAnnotation, 0.5, 0.0, Draft.PositionalGravity.SouthGravity, Draft.CompositeOperator.OverCompositeOp )

  outLut.Apply( burned )

  #if os.path.exists( inFile ):
  burned.CompositeWithPositionAndGravity( logo, 0.95, 0.05, Draft.PositionalGravity.SouthEastGravity, Draft.CompositeOperator.OverCompositeOp )

  MJPEGencoder.EncodeNextFrame( burned )
  #MJPEGencoderHRes.EncodeNextFrame( burned )

#Finalize the encoding process
MJPEGencoder.FinalizeEncoding()
#MJPEGencoderHRes.FinalizeEncoding()

if doOutSingleEye:
break
[/code]

Hey Fred,

If I’m understanding correctly, you’re saying the Draft Jobs aren’t getting submitted anymore when the original Job fails? If that’s the case, have you guys upgraded your version of Deadline recently? Upgrading Deadline can wipe custom changes to plugins/event plugins/submission scripts, and it is largely up to you guys to keep track of that. We’re implementing a solution for this in Deadline 6, but in 5 this is still the case. If I’m correct in my assumption that you guys have done an upgrade recently, the modified version of the Draft Event plugin should have been preserved by our installer’s backup stuff, you’ll just have to restore it (it should be in ‘backup/mostRecent/events/Draft’, in the Repository).

If I’m off-base with my assumption, can you provide a log for the Job that failed, or more details on the problem?

Cheers,

  • Jon

Well we already rool back to our previous version. So on that side we are good. But generally, in the log file of the job, we can see Job listenter: Draft job and there you have the log of the draft submission. But now it isn’t there anymore. But, in the job properties , all the extra inso key / Value pairs are their:

Key Value
DraftEntity *.042.0030.cmp.v07.nk
DraftFrameHeight 1280
DraftFrameWidth 1750
DraftTemplate //fx-nas-01/vfx/RENDER/SLATE_
.py
DraftUploadToShotgun False
DraftUsername ******
DraftVersion half res // all in

And i have no draft job that start when the nuke job failed

Hmmm, sounds like there might still be stuff missing from your Draft Event Plugin, in spite of you rolling it back. Can you zip up and post the contents of your Draft event plugin folder? It’s the ‘events/Draft’ folder in your repository.

Cheers,

  • Jon

there you go sir !

Fred
Draft.zip (9.29 KB)

It definitely seems like the change got lost in an update somewhere at some point, because it’s just missing.

For future reference, it’s just this bit:

## This is called when the job finishes rendering. def OnJobFailed( self, job ): #just call OnJobFinished self.OnJobFinished( job )

Cheers,

Thks !

Privacy | Site terms | Cookie preferences