diff --git a/backend/src/app/rpc/climit.clj b/backend/src/app/rpc/climit.clj index bb3db5ba58..542988bf55 100644 --- a/backend/src/app/rpc/climit.clj +++ b/backend/src/app/rpc/climit.clj @@ -22,7 +22,8 @@ [datoteka.fs :as fs] [integrant.core :as ig] [promesa.exec :as px] - [promesa.exec.bulkhead :as pbh]) + [promesa.exec.bulkhead :as pbh] + [promesa.protocols :as pt]) (:import clojure.lang.ExceptionInfo java.util.concurrent.atomic.AtomicLong)) @@ -178,12 +179,13 @@ (measure metrics mlabels stats nil) (log "enqueued" req-id stats limit-id limit-label limit-params nil)) - (px/invoke! limiter (fn [] - (let [elapsed (tpoint) - stats (pbh/get-stats limiter)] - (measure metrics mlabels stats elapsed) - (log "acquired" req-id stats limit-id limit-label limit-params elapsed) - (handler)))) + ;; WORKAROUND: this is a temporal change until the bug is fixed in funcool/promesa + @(pt/-submit! limiter (fn [] + (let [elapsed (tpoint) + stats (pbh/get-stats limiter)] + (measure metrics mlabels stats elapsed) + (log "acquired" req-id stats limit-id limit-label limit-params elapsed) + (handler)))) (catch ExceptionInfo cause (let [{:keys [type code]} (ex-data cause)] diff --git a/common/deps.edn b/common/deps.edn index 181f382df9..d6438f7b5b 100644 --- a/common/deps.edn +++ b/common/deps.edn @@ -30,7 +30,7 @@ funcool/tubax {:mvn/version "2021.05.20-0"} funcool/cuerdas {:mvn/version "2023.11.09-407"} funcool/promesa - {:git/sha "0c5ed6ad033515a2df4b55addea044f60e9653d0" + {:git/sha "6c14b06d9d64fae6e43c1463ce313f2fdc0d989b" :git/url "https://github.com/funcool/promesa"} funcool/datoteka