free_locked_jcr(jcr);
}
unlock_jcr_chain();
+
if (njobs == 0) {
bsendmsg(ua, _("No Jobs running.\n"));
return 1;
free_locked_jcr(jcr);
}
unlock_jcr_chain();
+
if (do_prompt(ua, _("Choose Job to cancel"), JobName) < 0) {
return 1;
}
jcr = (JCR *) malloc(size);
memset(jcr, 0, size);
jcr->my_thread_id = pthread_self();
- P(mutex);
jcr->sched_time = time(NULL);
jcr->daemon_free_jcr = daemon_free_jcr; /* plug daemon free routine */
- jcr->prev = NULL;
- jcr->next = jobs;
- if (jobs) {
- jobs->prev = jcr;
- }
jcr->use_count = 1;
pthread_mutex_init(&(jcr->mutex), NULL);
jcr->JobStatus = JS_Created; /* ready to run */
jcr->VolumeName[0] = 0;
jcr->errmsg = get_pool_memory(PM_MESSAGE);
jcr->errmsg[0] = 0;
+
+ P(mutex);
+ jcr->prev = NULL;
+ jcr->next = jobs;
+ if (jobs) {
+ jobs->prev = jcr;
+ }
jobs = jcr;
V(mutex);
return jcr;
}
remove_jcr(jcr);
V(mutex);
+
jcr->daemon_free_jcr(jcr); /* call daemon free routine */
free_common_jcr(jcr);
Dmsg0(200, "Exit free_jcr\n");
}
exename = (char *)malloc(len);
strcpy(exename, l);
+
if (exepath) {
free(exepath);
}
}
strcat(dest, lc->str);
dest_len += lc->str_len;
- Dmsg2(100, "store_msgs newdest=%s: dest=%s:\n", lc->str, dest);
+ Dmsg2(100, "store_msgs newdest=%s: dest=%s:\n", lc->str, NPRT(dest));
token = lex_get_token(lc, T_ALL);
if (token == T_COMMA) {
continue; /* get another destination */
}
break;
}
- Dmsg1(200, "mail_cmd=%s\n", cmd);
+ Dmsg1(200, "mail_cmd=%s\n", NPRT(cmd));
scan_types(lc, (MSGS *)(item->value), item->code, dest, cmd);
free_pool_memory(dest);
Dmsg0(200, "done with dest codes\n");
strcpy(dest, lc->str);
dest_len = lc->str_len;
token = lex_get_token(lc, T_ALL);
- Dmsg1(200, "store_msgs dest=%s:\n", dest);
+ Dmsg1(200, "store_msgs dest=%s:\n", NPRT(dest));
if (token != T_EQUALS) {
scan_err1(lc, "expected an =, got: %s", lc->str);
}
static char btpath[400];
pid_t pid;
- fprintf(stderr, "Kaboom! %s got signal %d. Attempting traceback.\n",
- my_name, sig);
+ fprintf(stderr, "Kaboom! %s, %s got signal %d. Attempting traceback.\n",
+ NPRT(exename), NPRT(my_name), sig);
+
if (strlen(exepath) + 12 > (int)sizeof(btpath)) {
strcpy(btpath, "btraceback");
} else {
continue;
}
fd = jcr->store_bsock;
- timer_start = fd->timer_start;
- if (fd && timer_start && (watchdog_time - timer_start) > fd->timeout) {
- fd->timed_out = TRUE;
- Jmsg(jcr, M_ERROR, 0, _(
+ if (fd) {
+ timer_start = fd->timer_start;
+ if (timer_start && (watchdog_time - timer_start) > fd->timeout) {
+ fd->timed_out = TRUE;
+ Jmsg(jcr, M_ERROR, 0, _(
"Watchdog sending kill after %d secs to thread stalled reading Storage daemon.\n"),
- watchdog_time - timer_start);
- pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
+ watchdog_time - timer_start);
+ pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
+ }
}
fd = jcr->file_bsock;
- timer_start = fd->timer_start;
- if (fd && timer_start && (watchdog_time - timer_start) > fd->timeout) {
- fd->timed_out = TRUE;
- Jmsg(jcr, M_ERROR, 0, _(
+ if (fd) {
+ timer_start = fd->timer_start;
+ if (timer_start && (watchdog_time - timer_start) > fd->timeout) {
+ fd->timed_out = TRUE;
+ Jmsg(jcr, M_ERROR, 0, _(
"Watchdog sending kill after %d secs to thread stalled reading File daemon.\n"),
- watchdog_time - timer_start);
- pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
+ watchdog_time - timer_start);
+ pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
+ }
}
fd = jcr->dir_bsock;
- timer_start = fd->timer_start;
- if (fd && timer_start && (watchdog_time - timer_start) > fd->timeout) {
- fd->timed_out = TRUE;
- Jmsg(jcr, M_ERROR, 0, _(
+ if (fd) {
+ timer_start = fd->timer_start;
+ if (timer_start && (watchdog_time - timer_start) > fd->timeout) {
+ fd->timed_out = TRUE;
+ Jmsg(jcr, M_ERROR, 0, _(
"Watchdog sending kill after %d secs to thread stalled reading Director.\n"),
- watchdog_time - timer_start);
- pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
+ watchdog_time - timer_start);
+ pthread_kill(jcr->my_thread_id, TIMEOUT_SIGNAL);
+ }
}
}
/* Responses sent to Director daemon */
static char OKjob[] = "3000 OK Job SDid=%u SDtime=%u Authorization=%s\n";
static char OK_device[] = "3000 OK use device\n";
-static char NO_device[] = "3904 Device not available\n";
-static char BAD_use[] = "3903 Bad use command\n";
-static char BAD_job[] = "3905 Bad Job command\n";
+static char NO_device[] = "3904 Device %s not available\n";
+static char BAD_use[] = "3903 Bad use command: %s\n";
+static char BAD_job[] = "3905 Bad Job command: %s\n";
fileset_name = get_memory(dir->msglen);
if (sscanf(dir->msg, jobcmd, &JobId, job, job_name, client_name,
&JobType, &level, fileset_name) != 7) {
- bnet_fsend(dir, BAD_job);
+ bnet_fsend(dir, BAD_job, dir->msg);
Emsg1(M_FATAL, 0, _("Bad Job Command from Director: %s\n"), dir->msg);
free_memory(job);
free_memory(job_name);
UnlockRes();
Jmsg(jcr, M_FATAL, 0, _("Requested device %s not found. Cannot continue.\n"),
dev_name);
- bnet_fsend(dir, NO_device);
+ bnet_fsend(dir, NO_device, dev_name);
} else {
Emsg1(M_FATAL, 0, _("store<dir: Bad Use Device command: %s\n"), dir->msg);
- bnet_fsend(dir, BAD_use);
+ bnet_fsend(dir, BAD_use, dir->msg);
}
free_memory(dev_name);
/* */
#define VERSION "1.22"
#define VSTRING "1"
-#define DATE "21 June 2002"
-#define LSMDATE "21Jun02"
+#define DATE "22 June 2002"
+#define LSMDATE "22Jun02"
/* Debug flags */
#define DEBUG 1