IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17477


Ignore:
Timestamp:
Apr 23, 2008, 3:38:50 PM (18 years ago)
Author:
eugene
Message:

handle comm errors where pclient sends an orphaned prompt

Location:
trunk/Ohana/src/opihi/pcontrol
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/pcontrol/CheckBusyJob.c

    r17476 r17477  
    6060  /** host is up, need to parse message **/
    6161  p = memstr (buffer[0].buffer, "STATUS", buffer[0].Nbuffer);
    62   ASSERT (p != NULL, "missing STATUS in pclient message");
     62  if (p == NULL) {
     63      if (DEBUG || VerboseMode()) gprint (GP_ERR, "missing STATUS in response; try again\n");
     64      PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);
     65      PutJob (job, PCONTROL_JOB_BUSY, STACK_BOTTOM);
     66      return (TRUE);
     67  }
    6368
    6469  sscanf (p, "%*s %s", string);
  • trunk/Ohana/src/opihi/pcontrol/CheckDoneHost.c

    r17476 r17477  
    4343  /** successful command, examine result **/
    4444  p = memstr (buffer[0].buffer, "STATUS", buffer[0].Nbuffer);
    45   ASSERT (p != NULL, "missing STATUS in pclient message (CheckDoneHost)");
     45  if (p == NULL) {
     46      if (DEBUG || VerboseMode()) gprint (GP_ERR, "missing STATUS in response; try again\n");
     47      PutHost (host, PCONTROL_HOST_DONE, STACK_BOTTOM);
     48      return (FALSE);
     49  }
    4650
    4751  sscanf (p, "%*s %d", &status);
  • trunk/Ohana/src/opihi/pcontrol/KillJob.c

    r17476 r17477  
    5050  /** check on response to pclient command **/
    5151  p = memstr (buffer[0].buffer, "STATUS", buffer[0].Nbuffer);
    52   ASSERT (p != NULL, "missing STATUS in pclient message");
     52  if (p == NULL) {
     53      if (VerboseMode()) gprint (GP_ERR, "missing STATUS in response; try again\n");
     54      PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);
     55      PutJob (job, PCONTROL_JOB_KILL, STACK_BOTTOM);
     56      return (FALSE);
     57  }
    5358  if (VerboseMode()) gprint (GP_ERR, "client message: %s\n", buffer[0].buffer);
    5459
  • trunk/Ohana/src/opihi/pcontrol/StartJob.c

    r17476 r17477  
    7272  /* check on result of pclient command */
    7373  p = memstr (buffer[0].buffer, "STATUS", buffer[0].Nbuffer);
    74   ASSERT (p != NULL, "missing STATUS in pclient message");
     74  if (p == NULL) {
     75      // failed to get a valid response.  kill the job and try again,
     76      // or accept a running process without a PID?
     77      if (VerboseMode()) gprint (GP_ERR, "failed to get a valid PID, trying to continue without\n");
     78      PutHost (host, PCONTROL_HOST_BUSY, STACK_BOTTOM);
     79      PutJob (job, PCONTROL_JOB_BUSY, STACK_BOTTOM);
     80      gettimeofday (&job[0].start, NULL);
     81      return (TRUE);
     82  }
    7583
    7684  sscanf (p, "%*s %d", &status);
Note: See TracChangeset for help on using the changeset viewer.