]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix editing bug with new code
authorKern Sibbald <kern@sibbald.com>
Thu, 7 Oct 2004 16:23:26 +0000 (16:23 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 7 Oct 2004 16:23:26 +0000 (16:23 +0000)
- Fix bug where SD crashes on label if drive is not open
  (i.e. Always Open = no).

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1636 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/cats/bdb_find.c
bacula/src/cats/sql.c
bacula/src/cats/sql_find.c
bacula/src/dird/backup.c

index 4d43cdfa96f4fa628c28a1b33586f029637b267c..38e8a57c46ce143c115c607bb9aab3a9c69890b4 100644 (file)
@@ -183,5 +183,9 @@ int
 db_find_last_jobid(JCR *jcr, B_DB *mdb, const char *Name, JOB_DBR *jr)
 { return 0; }
 
+bool
+db_find_failed_job_since(JCR *jcr, B_DB *mdb, JOB_DBR *jr, POOLMEM *stime, int &JobLevel)
+{ return false; }
+
 
 #endif /* HAVE_BACULA_DB */
index 4566917da25d6691455759803647303d32cb2a50..75b8e94333032cdb01ae3e8812e695d90f7db05f 100644 (file)
@@ -305,6 +305,13 @@ void db_start_transaction(JCR *jcr, B_DB *mdb)
 
 void db_end_transaction(JCR *jcr, B_DB *mdb)
 {
+   /*
+    * This can be called during thread cleanup and 
+    *  the db may already be closed.  So simply return.
+    */
+   if (!mdb) {
+      return;
+   }
 #ifdef HAVE_SQLITE
    if (!mdb->allow_transactions) {
       return;
index 436340d8040ea1ff71f0c1f9ecf032a6fb28228e..b09d69189d54bbd81738ff9321c06d55b0e41fa1 100644 (file)
@@ -159,11 +159,11 @@ db_find_failed_job_since(JCR *jcr, B_DB *mdb, JOB_DBR *jr, POOLMEM *stime, int &
    db_lock(mdb);
    /* Differential is since last Full backup */
    Mmsg(mdb->cmd, 
-"SELECT JobLevel FROM Job WHERE JobStatus!='T' AND Type='%c' AND "
+"SELECT Level FROM Job WHERE JobStatus!='T' AND Type='%c' AND "
 "Level IN ('%c','%c') AND Name='%s' AND ClientId=%u "
 "AND FileSetId=%u AND StartTime>'%s' "
 "ORDER BY StartTime DESC LIMIT 1",
-        jr->JobType, L_INCREMENTAL, L_DIFFERENTIAL, jr->Name,
+        jr->JobType, L_FULL, L_DIFFERENTIAL, jr->Name,
         jr->ClientId, jr->FileSetId, stime);
 
    if (!QUERY_DB(jcr, mdb, mdb->cmd)) {
@@ -176,7 +176,7 @@ db_find_failed_job_since(JCR *jcr, B_DB *mdb, JOB_DBR *jr, POOLMEM *stime, int &
       db_unlock(mdb);
       return false;
    }
-   JobLevel = str_to_int64(row[0]);
+   JobLevel = (int)*row[0];
    sql_free_result(mdb);
 
    db_unlock(mdb);
index 9f7d07c7a90dc9bd8842c92638546229742dc19c..bba769df669412da9cd3f1ef7ba1af62a4937611 100644 (file)
@@ -131,7 +131,6 @@ int do_backup(JCR *jcr)
       goto bail_out;
    }
 
-
    /*
     * Open a message channel connection with the Storage
     * daemon. This is to let him know that our client