]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix bscan's flushing file records in batch
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Tue, 1 Dec 2020 13:57:59 +0000 (14:57 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:02:59 +0000 (09:02 +0100)
bacula/src/stored/bscan.c

index 3341a71efd4ef0664c9085ad921b3a289f45d7cd..615cbf552a71103928c9abac1e95d5a30b4cbaf4 100644 (file)
@@ -756,7 +756,11 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec)
                      edit_uint64_with_commas(rec->Addr, ed2),
                      edit_uint64_with_commas(mr.VolBytes, ed3));
       }
-      create_file_attributes_record(mjcr, attr, rec);
+      if (!create_file_attributes_record(mjcr, attr, rec)) {
+         Jmsg2(mjcr, M_ERROR, 0, _("Failed to insert record for file: %s. err: %s\n"),
+               attr->fname, db_strerror(db));
+         break;
+      }
       break;
 
    case STREAM_RESTORE_OBJECT:
@@ -1007,9 +1011,12 @@ static void bscan_free_jcr(JCR *jcr)
 
    /* Close thej jcr's db connections */
    if (jcr->db_batch) {
+      if (!db_write_batch_file_records(bjcr)) { /* used by bulk batch file insert */
+         Jmsg0(jcr, M_ERROR, 0, _("Failed to flush file records!\n"));
+      }
+
       db_close_database(jcr, jcr->db_batch);
       jcr->db_batch = NULL;
-      jcr->batch_started = false;
    }
    if (jcr->db) {
       db_close_database(jcr, jcr->db);