From: Michal Rakowski Date: Fri, 21 May 2021 10:14:39 +0000 (+0200) Subject: Fix #7674 About more storage group messages changes X-Git-Tag: Release-11.3.2~525 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=456ee77263a274911235687ead97f63f8efd4ec2;p=thirdparty%2Fbacula.git Fix #7674 About more storage group messages changes --- diff --git a/bacula/src/dird/backup.c b/bacula/src/dird/backup.c index 14f68c566..6d20834fd 100644 --- a/bacula/src/dird/backup.c +++ b/bacula/src/dird/backup.c @@ -526,14 +526,6 @@ bool do_backup(JCR *jcr) jcr->JobFiles, jcr->VolSessionId, jcr->VolSessionTime); } - /* - * Open a message channel connection with the Storage - * daemon. This is to let him know that our client - * will be contacting him for a backup session. - * - */ - Dmsg0(110, "Open connection with storage daemon\n"); - jcr->setJobStatus(JS_WaitSD); if (jcr->store_mngr->get_wstore_list()->size() != 1) { wstore_group = true; @@ -542,7 +534,7 @@ bool do_backup(JCR *jcr) if (wstore_group) { /* Apply policy for the write storage list */ jcr->store_mngr->apply_policy(true); - Dmsg1(100, "Possible storage choices: %s\n", jcr->store_mngr->print_wlist()); + Jmsg(jcr, M_INFO, 0, _("Possible storage choices: %s\n"), jcr->store_mngr->print_wlist()); iter_no = 2; } @@ -571,6 +563,7 @@ bool do_backup(JCR *jcr) jcr->store_bsock->close(); } + jcr->setJobStatus(JS_WaitSD); /* * Start conversation with Storage daemon */ @@ -595,8 +588,8 @@ bool do_backup(JCR *jcr) Dmsg1(100, "Failed to start job on the storage: %s\n", jcr->store_mngr->get_wstore()->name()); continue; } else { - Jmsg(jcr, M_INFO, 0, _("Selected storage: %s, StorageGroupPolicy: \"%s\"\n"), - jcr->store_mngr->get_wstore()->name(), jcr->store_mngr->get_policy_name()); + Jmsg(jcr, M_INFO, 0, _("Selected storage: %s, device: %s, StorageGroupPolicy: \"%s\"\n"), + jcr->store_mngr->get_wstore()->name(), jcr->write_dev, jcr->store_mngr->get_policy_name()); sd_job_started = true; break; } diff --git a/bacula/src/dird/job.c b/bacula/src/dird/job.c index 5f8e04acf..d5ffff560 100644 --- a/bacula/src/dird/job.c +++ b/bacula/src/dird/job.c @@ -1544,6 +1544,8 @@ void dird_free_jcr(JCR *jcr) free_and_null_pool_memory(jcr->rpool_source); free_and_null_pool_memory(jcr->next_vol_list); free_and_null_pool_memory(jcr->component_fname); + free_and_null_pool_memory(jcr->read_dev); + free_and_null_pool_memory(jcr->write_dev); jcr->job_end_push.destroy(); @@ -1650,6 +1652,12 @@ void set_jcr_defaults(JCR *jcr, JOB *job) if (!jcr->catalog_source) { jcr->catalog_source = get_pool_memory(PM_MESSAGE); } + if (!jcr->write_dev) { + jcr->write_dev = get_pool_memory(PM_MESSAGE); + } + if (!jcr->read_dev) { + jcr->read_dev = get_pool_memory(PM_MESSAGE); + } jcr->JobPriority = job->Priority; diff --git a/bacula/src/dird/msgchan.c b/bacula/src/dird/msgchan.c index dd235abc6..3da8d516e 100644 --- a/bacula/src/dird/msgchan.c +++ b/bacula/src/dird/msgchan.c @@ -312,13 +312,12 @@ bool start_storage_daemon_job(JCR *jcr, alist *rstore, alist *wstore, bool wait, sd->signal(BNET_EOD); /* end of Storages */ if (bget_dirmsg(sd) > 0) { Dmsg1(100, "msg); - /* ****FIXME**** save actual device name */ ok = sscanf(sd->msg, OK_device, device_name.c_str()) == 1; } else { ok = false; } if (ok) { - Jmsg(jcr, M_INFO, 0, _("Using Device \"%s\" to read.\n"), device_name.c_str()); + pm_strcpy(jcr->read_dev, device_name.c_str()); } } @@ -351,26 +350,23 @@ bool start_storage_daemon_job(JCR *jcr, alist *rstore, alist *wstore, bool wait, sd->signal(BNET_EOD); /* end of Storages */ if (bget_dirmsg(sd) > 0) { Dmsg1(100, "msg); - /* ****FIXME**** save actual device name */ ok = sscanf(sd->msg, OK_device, device_name.c_str()) == 1; } else { ok = false; } if (ok) { - Jmsg(jcr, M_INFO, 0, _("Using Device \"%s\" to write.\n"), device_name.c_str()); + pm_strcpy(jcr->write_dev, device_name.c_str()); } } if (!ok) { POOL_MEM err_msg; if (sd->msg[0]) { pm_strcpy(err_msg, sd->msg); /* save message */ - Jmsg(jcr, M_INFO, 0, _("\n" - " Storage daemon didn't accept Device \"%s\" because:\n %s"), - device_name.c_str(), err_msg.c_str()/* sd->msg */); + Jmsg(jcr, M_INFO, 0, _("Storage daemon \"%s\" didn't accept Device \"%s\" because: %s"), + store_name.c_str(), device_name.c_str(), err_msg.c_str()/* sd->msg */); } else { - Jmsg(jcr, M_INFO, 0, _("\n" - " Storage daemon didn't accept Device \"%s\" command.\n"), - device_name.c_str()); + Jmsg(jcr, M_INFO, 0, _("Storage daemon \"%s\" didn't accept Device \"%s\" command.\n"), + store_name.c_str(), device_name.c_str()); } } return ok; diff --git a/bacula/src/jcr.h b/bacula/src/jcr.h index 3a8589787..edd68dad0 100644 --- a/bacula/src/jcr.h +++ b/bacula/src/jcr.h @@ -339,7 +339,9 @@ public: JOB *job; /* Job resource */ JOB *verify_job; /* Job resource of verify previous job */ alist *plugin_config; /* List of ConfigFile needed for restore */ - StorageManager *store_mngr; + StorageManager *store_mngr; /* Storage manager object */ + POOLMEM *write_dev; /* Write device (set by start_storage_dameon_job() */ + POOLMEM *read_dev; /* Read device (set by start_storage_dameon_job() */ CLIENT *client; /* Client resource */ POOL *pool; /* Pool resource = write for migration */ POOL *next_pool; /* Next pool override */