Changeset - 0307f7fcc410
[Not reviewed]
default
0 3 0
Ethan Zonca (ethanzonca) - 16 years ago 2010-03-14 14:48:41
e@ethanzonca.com
Added error checking
3 files changed with 27 insertions and 8 deletions:
0 comments (0 inline, 0 general)
src/server/simpleslave.c
Show inline comments
 
@@ -147,8 +147,10 @@ int main(int argc, char *argv[])
 
        int dlret = downloadTar(urltoTar, pathtoTar);
 
        if(dlret == 0)
 
          fprintf(stderr,"Got data tarball\n");
 
        else if(dlret == 3)
 
        else if(dlret == 3){
 
          _web_resetframe(slavekey, password, jobnum, framenum);  // Unassign the frame on the server so other slaves can render it
 
          return 0; // ouput dir doesn't exist
 
        }
 
        else
 
          fprintf(stderr,"Using existing tarball %s...\n", pathtoTar);
 

	
 
@@ -158,9 +160,11 @@ int main(int argc, char *argv[])
 
          fprintf(stderr,"Main job file does not exist, extracting...\n");
 

	
 
          // If error unpacking tarball
 
          if(unpackJob(pathtoJob, pathtoTar))
 
          if(unpackJob(pathtoJob, pathtoTar)){
 
            _web_resetframe(slavekey, password, jobnum, framenum);  // Unassign the frame on the server so other slaves can render it
 
            return 1;
 
        }
 
        }
 

	
 

	
 
        /* ignore return because directory may exist already */
 
@@ -176,6 +180,7 @@ int main(int argc, char *argv[])
 
        if(exec_blender(pathtoJobfile, pathtoOutput, framenum))
 
          {
 
            fprintf(stderr,"Error running Blender. Check your installation and/or your PATH.\n");
 
            _web_resetframe(slavekey, password, jobnum, framenum);  // Unassign the frame on the server so other slaves can render it
 
            return 1;
 
          }
 
        free(pathtoJobfile);
 
@@ -183,8 +188,8 @@ int main(int argc, char *argv[])
 
        struct stat buffer;
 
        int fstatus = stat(pathtoOutput, &buffer);
 
        if(fstatus == -1){
 
          fprintf(stderr,"Frame was not rendered correctly! Scene may not have camera, or your blender installation is not working.\n");
 
          // @TODO: Unassign the frame on the server so other slaves can render it
 
          fprintf(stderr,"*** Frame was not rendered correctly! Scene may not have camera, or your blender installation is not working.\n");
 
          _web_resetframe(slavekey, password, jobnum, framenum);  // Unassign the frame on the server so other slaves can render it
 
          return 1;
 
        }
 
        else{
src/server/slavefuncs.c
Show inline comments
 
@@ -643,8 +643,6 @@ struct _web_memorystruct _web_getrequest
 
  /* we're done with libcurl, so clean it up */
 
  curl_global_cleanup();
 

	
 
  if(!strncmp(chunk.memory, "ERROR", 5))
 
    fprintf(stderr, "Server request returned error %s!\n", chunk.memory);
 
  return chunk; // 0 is OK, 1 is 404 or other error
 

	
 
}
 
@@ -660,6 +658,18 @@ void _web_finishframe(int slavekey, char
 
    free(data.memory);
 
}
 

	
 
void _web_resetframe(int slavekey, char *slavepass, int jobnum, int framenum){
 
  fprintf(stderr,"Resetting frame %d in job %d on server...",framenum,jobnum);
 
  char *url;
 
  _distren_asprintf(&url,"http://dev.distren.org/slave/act.php?mode=resetframe&slavekey=%d&slavepass=%s&jobnum=%d&framenum=%d", slavekey, slavepass, jobnum, framenum);
 
  struct _web_memorystruct data = _web_getrequest(url);
 
  free(url);
 

	
 
  fprintf(stderr,"%s\n", data.memory);
 
  if(data.memory)
 
    free(data.memory);
 
}
 

	
 
void _web_startframe(int slavekey, char *slavepass, int jobnum, int framenum){
 
  char *url;
 
  _distren_asprintf(&url,"http://dev.distren.org/slave/act.php?mode=startframe&slavekey=%d&slavepass=%s&jobnum=%d&framenum=%d", slavekey, slavepass, jobnum, framenum);
 
@@ -677,8 +687,11 @@ int _web_getwork(int slavekey, char *sla
 
  struct _web_memorystruct data = _web_getrequest(url);
 
  free(url);
 

	
 
  //fprintf(stderr,"Got data for getwork: %s!\n", data.memory);
 
  if(!strcmp(data.memory, "ERROR_BADKEY")){
 
  if(!data.memory || !strcmp(data.memory,",")){
 
    fprintf(stderr,"No work available on server!\n");
 
    return 0;
 
  }
 
  else if(!strcmp(data.memory, "ERROR_BADKEY")){
 
    fprintf(stderr,"*** Slave %d does not exist!\n",slavekey);
 
    free(data.memory);
 
    return 0;
src/server/slavefuncs.h
Show inline comments
 
@@ -60,6 +60,7 @@ static size_t _web_writememorycallback(v
 
struct _web_memorystruct _web_getrequest(char *url);
 
void _web_finishframe(int slavekey, char *slavepass, int jobnum, int framenum);
 
void _web_startframe(int slavekey, char *slavepass, int jobnum, int framenum);
 
void _web_resetframe(int slavekey, char *slavepass, int jobnum, int framenum);
 
int _web_getwork(int slavekey, char *slavepass, int *jobnum, int *framenum);
 
void _web_setrenderpower(int slavekey, char *slavepass, int jobnum, int framenum);
 

	
0 comments (0 inline, 0 general)