            (:other-clean-time cli-svc/admin-metrics))})
 
 (defn- check-counts [get-counts]
-  (with-single-quiet-pdb-instance
+  (with-pdb-with-no-gc
     (let [pdb (get-service *server* :PuppetDBServer)]
-      ;; Stop intermittent cleaning so it can't interfere
-      (at-at/stop-and-reset-pool! (:job-pool (service-context pdb)))
       (doseq [requested (combinations ["expire_nodes" "purge_nodes"
                                        "purge_reports"
                                        "other"]

         (.await ~test-finished)))))

(deftest admin-clean-basic
  (with-single-quiet-pdb-instance
    (let [pdb (get-service *server* :PuppetDBServer)]
      ;; Stop intermittent cleaning so it can't interfere
      (at-at/stop-and-reset-pool! (:job-pool (service-context pdb)))
      (is (= http/status-ok (:status (post-clean []))))
      (is (= http/status-ok (:status (post-clean ["expire_nodes"]))))
      (is (= http/status-ok (:status (post-clean ["purge_nodes"]))))

  (gauges/value (:cleaning cli-svc/admin-metrics)))

(deftest admin-clean-status
  (with-pdb-with-no-gc
    (let [pdb (get-service *server* :PuppetDBServer)
          clean-serializer (Object.)  ; Ensures previous iteration has unlocked
          orig-clean @#'cli-svc/clean-puppetdb
          orig-finish @#'cli-svc/finishing-clean-up
          in-clean (CyclicBarrier. 2)
          test-finished (CyclicBarrier. 2)]
      (with-redefs [cli-svc/clean-puppetdb #(locking clean-serializer
                                              (apply orig-clean %&))
                    cli-svc/finishing-clean-up (fn [& args]
