          (.await ~test-finished)))))
 
 (deftest admin-clean-basic
-  (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)))
       (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"]))))

            [metrics.counters :as counters]
            [metrics.gauges :as gauges]
            [metrics.timers :as timers]
            [overtone.at-at :as at-at]
            [puppetlabs.puppetdb.cheshire :as json]
            [puppetlabs.puppetdb.cli.services :as cli-svc]
            [puppetlabs.puppetdb.http :as http]
            [puppetlabs.puppetdb.testutils.services :as svc-utils
             :refer [*server* with-single-quiet-pdb-instance]]
            [puppetlabs.puppetdb.utils :as utils]
            [puppetlabs.trapperkeeper.app :refer [get-service]]
            [puppetlabs.trapperkeeper.services :refer [service-context]])
  (:import
   [java.util.concurrent CyclicBarrier]))

(defn- post-admin [path form]
  (http-client/post (str (utils/base-url->str (svc-utils/pdb-admin-url))

  (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]
