Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 195680 | Differences between
and this patch

Collapse All | Expand All

(-)src/dird/job.c (-86 / +4 lines)
Lines 481-487 Link Here
481
static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr)
481
static bool job_check_maxwaittime(JCR *control_jcr, JCR *jcr)
482
{
482
{
483
   bool cancel = false;
483
   bool cancel = false;
484
   bool ok_to_cancel = false;
485
   JOB *job = jcr->job;
484
   JOB *job = jcr->job;
486
485
487
   if (job_canceled(jcr)) {
486
   if (job_canceled(jcr)) {
Lines 493-561 Link Here
493
   } 
492
   } 
494
   if (jcr->JobLevel == L_FULL && job->FullMaxWaitTime != 0 &&
493
   if (jcr->JobLevel == L_FULL && job->FullMaxWaitTime != 0 &&
495
         (watchdog_time - jcr->start_time) >= job->FullMaxWaitTime) {
494
         (watchdog_time - jcr->start_time) >= job->FullMaxWaitTime) {
496
      ok_to_cancel = true;
495
      cancel = true;
497
   } else if (jcr->JobLevel == L_DIFFERENTIAL && job->DiffMaxWaitTime != 0 &&
496
   } else if (jcr->JobLevel == L_DIFFERENTIAL && job->DiffMaxWaitTime != 0 &&
498
         (watchdog_time - jcr->start_time) >= job->DiffMaxWaitTime) {
497
         (watchdog_time - jcr->start_time) >= job->DiffMaxWaitTime) {
499
      ok_to_cancel = true;
498
      cancel = true;
500
   } else if (jcr->JobLevel == L_INCREMENTAL && job->IncMaxWaitTime != 0 &&
499
   } else if (jcr->JobLevel == L_INCREMENTAL && job->IncMaxWaitTime != 0 &&
501
         (watchdog_time - jcr->start_time) >= job->IncMaxWaitTime) {
500
         (watchdog_time - jcr->start_time) >= job->IncMaxWaitTime) {
502
      ok_to_cancel = true;
501
      cancel = true;
503
   } else if (job->MaxWaitTime != 0 &&
502
   } else if (job->MaxWaitTime != 0 &&
504
         (watchdog_time - jcr->start_time) >= job->MaxWaitTime) {
503
         (watchdog_time - jcr->start_time) >= job->MaxWaitTime) {
505
      ok_to_cancel = true;
506
   }
507
   if (!ok_to_cancel) {
508
      return false;
509
   }
510
511
/*
512
 * I don't see the need for all this -- kes 17Dec06
513
 */
514
#ifdef xxx
515
   Dmsg3(800, "Job %d (%s): MaxWaitTime of %d seconds exceeded, "
516
         "checking status\n",
517
         jcr->JobId, jcr->Job, job->MaxWaitTime);
518
   switch (jcr->JobStatus) {
519
   case JS_Created:
520
   case JS_Blocked:
521
   case JS_WaitFD:
522
   case JS_WaitSD:
523
   case JS_WaitStoreRes:
524
   case JS_WaitClientRes:
525
   case JS_WaitJobRes:
526
   case JS_WaitPriority:
527
   case JS_WaitMaxJobs:
528
   case JS_WaitStartTime:
529
      cancel = true;
504
      cancel = true;
530
      Dmsg0(200, "JCR blocked in #1\n");
531
      break;
532
   case JS_Running:
533
      Dmsg0(800, "JCR running, checking SD status\n");
534
      switch (jcr->SDJobStatus) {
535
      case JS_WaitMount:
536
      case JS_WaitMedia:
537
      case JS_WaitFD:
538
         cancel = true;
539
         Dmsg0(800, "JCR blocked in #2\n");
540
         break;
541
      default:
542
         Dmsg0(800, "JCR not blocked in #2\n");
543
         break;
544
      }
545
      break;
546
   case JS_Terminated:
547
   case JS_ErrorTerminated:
548
   case JS_Canceled:
549
   case JS_FatalError:
550
      Dmsg0(800, "JCR already dead in #3\n");
551
      break;
552
   default:
553
      Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"),
554
            jcr->JobStatus);
555
   }
505
   }
556
   Dmsg3(800, "MaxWaitTime result: %scancel JCR %p (%s)\n",
506
557
         cancel ? "" : "do not ", jcr, jcr->Job);
558
#endif
559
   return cancel;
507
   return cancel;
560
}
508
}
561
509
Lines 574-609 Link Here
574
      return false;
522
      return false;
575
   }
523
   }
576
524
577
#ifdef xxx
578
   switch (jcr->JobStatus) {
579
   case JS_Created:
580
   case JS_Running:
581
   case JS_Blocked:
582
   case JS_WaitFD:
583
   case JS_WaitSD:
584
   case JS_WaitStoreRes:
585
   case JS_WaitClientRes:
586
   case JS_WaitJobRes:
587
   case JS_WaitPriority:
588
   case JS_WaitMaxJobs:
589
   case JS_WaitStartTime:
590
   case JS_Differences:
591
      cancel = true;
592
      break;
593
   case JS_Terminated:
594
   case JS_ErrorTerminated:
595
   case JS_Canceled:
596
   case JS_FatalError:
597
      cancel = false;
598
      break;
599
   default:
600
      Jmsg1(jcr, M_ERROR, 0, _("Unhandled job status code %d\n"),
601
            jcr->JobStatus);
602
   }
603
604
   Dmsg3(200, "MaxRunTime result: %scancel JCR %p (%s)\n",
605
         cancel ? "" : "do not ", jcr, jcr->Job);
606
#endif
607
   return true;
525
   return true;
608
}
526
}
609
527

Return to bug 195680