]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix problem with decrementing Read Storage
authorMichal Rakowski <michal.rakowski@baculasystems.com>
Fri, 11 Jun 2021 15:11:11 +0000 (17:11 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:02 +0000 (09:03 +0100)
When decrementing read storage concurrent jobs counter, both counters:
- NumConcurrentReadJobs
- NumConcurrentJobs
have to be decremented.

bacula/src/dird/store_mngr.c

index 99abd91f173f5218a01a38c7cfe3252ee073d126..3e6b8afa8cac682907894460867bd97b34b3cbc4 100644 (file)
@@ -243,13 +243,19 @@ void storage::dec_stores() {
 
    if (unused_stores_decremented) {
       /* Only currently used storage needs to be decrased, rest of it was decremented before */
-         int num = store->incNumConcurrentJobs(-1);
-         Dmsg2(dbglvl, "Store: %s Dec ncj=%d\n", store->name(), num);
-         unused_stores_decremented = false;
+      if(!write) {
+         store->incNumConcurrentReadJobs(-1);
+      }
+      int num = store->incNumConcurrentJobs(-1);
+      Dmsg2(dbglvl, "Store: %s Dec ncj=%d\n", store->name(), num);
+      unused_stores_decremented = false;
    } else {
       /* We need to decrement all storages in the list */
       STORE *tmp_store;
       foreach_alist(tmp_store, list) {
+         if(!write) {
+            tmp_store->incNumConcurrentReadJobs(-1);
+         }
          int num = tmp_store->incNumConcurrentJobs(-1);
          Dmsg2(dbglvl, "Store: %s Dec ncj=%d\n", tmp_store->name(), num);
       }