Strange timeout error

Great! I’m pleased the issue is now resolved for you!

I will update our 3dsMax docs to explain this situation. Thanks.

I just read through this post since we are suddenly getting this error also.

Was the “Kill ADSK Comms Center Process” the answer to this problem?

I’m getting this error now as well on an EC2 instance, a locl machine seems to render fine.

When I change max.exe’s thread prio from BelowNormal to Normal it is happening less but it’s not a reliably fix.

I’ve tried the com center kill option and spent a few hours trying to hunt it down without luck.

The error print out happens at the line marked ‘<— here’ so something in that try block is erroring out.

[code]def PollUntilComplete( self, timeoutEnabled, timeoutOverride=-1 ):
startTime = DateTime.Now
progressTimeout = (self.ProgressUpdateTimeout if timeoutOverride < 0 else timeoutOverride)

    while( self.MaxSocket.IsConnected and not self.Plugin.IsCanceled() ):
        try:
            # Verify that Max is still running.
            self.Plugin.VerifyMonitoredManagedProcess( self.ProgramName )
            self.Plugin.FlushMonitoredManagedProcessStdout( self.ProgramName )
            
            # Check for any popup dialogs.
            blockingDialogMessage = self.Plugin.CheckForMonitoredManagedProcessPopups( self.ProgramName )
            if( blockingDialogMessage != "" ):
                self.Plugin.FailRender( blockingDialogMessage )
            
            start = DateTime.Now.Ticks
            while( TimeSpan.FromTicks( DateTime.Now.Ticks - start ).Milliseconds < 500 ):
                request = self.MaxSocket.Receive( 500 )
                
                # We received a request, so reset the progress update timeout.
                startTime = DateTime.Now
                
                match = self.FunctionRegex.Match( request )
                if( match.Success ):
                    # Call the lightning function handler method to see if we should reply or if the render is finished.
                    reply = ""
                    try:
                        reply = self.LightingFunctionHandler( match.Groups[ 1 ].Value )
                        if( reply != "" ):
                            self.MaxSocket.Send( reply )
                    except Exception, e:
                        self.Plugin.FailRender( e.Message )
                    continue
                
                match = self.SuccessMessageRegex.Match( request )
                if( match.Success ): # Render finished successfully
                    return match.Groups[ 1 ].Value
                
                if( self.SuccessNoMessageRegex.IsMatch( request ) ): # Render finished successfully
                    return ""
                
                if( self.CanceledRegex.IsMatch( request ) ): # Render was canceled
                    self.Plugin.FailRender( "Render was canceled" )
                    continue
                
                match = self.ErrorRegex.Match( request )
                if( match.Success ): # There was an error
                    self.Plugin.FailRender( "%s\n%s" % (match.Groups[ 1 ].Value, self.NetworkLogGet()) )
                    continue
        except Exception, e:
            if( isinstance( e, SimpleSocketTimeoutException ) ):
                if timeoutEnabled and DateTime.Now.Subtract( startTime ).TotalSeconds >= progressTimeout:
                    if timeoutOverride < 0:
                        self.Plugin.FailRender( "Timed out waiting for the next progress update. The ProgressUpdateTimeout setting can be modified in the 3dsmax plugin configuration (current value is %d seconds).\n%s" % (self.ProgressUpdateTimeout, self.NetworkLogGet()) )
                    else:
                       self.Plugin.FailRender( "Timed out waiting for the next progress update.\n%s" % self.NetworkLogGet() )    ## <------------------------ here
            elif( isinstance( e, SimpleSocketException ) ):
                self.Plugin.FailRender( "RenderTask: 3dsmax may have crashed (%s)" % e.Message )
            else:
                self.Plugin.FailRender( "RenderTask: Unexpected exception (%s)" % e.Message )
    
    if( self.Plugin.IsCanceled() ):
        self.Plugin.FailRender( "Render was canceled" )
    
    if( not self.MaxSocket.IsConnected ):
        self.Plugin.FailRender( "Socket disconnected unexpectedly" )
    
    return "undefined"[/code]

I think I’ve solved it for my situation… on the EC2 instance I sort or disabled the comm center long before I started using deadline by putting a dummy exe in place there (a simple ‘rename’ stopped working when AD decided to put a check on this and replace the exe when it was missing… what are they thikning?)

Anyways, now I’ve put back the original exe and let DL nuke it form orbit and all seems fine now.

Glad you got it Jonathan. It’d have taken me awhile to hunt that one down :stuck_out_tongue:

@ruffstuff, how are things on your end?