mirror of
https://github.com/penpot/penpot.git
synced 2025-05-14 10:06:41 +02:00
🐛 Fix error handling on s3 delete-in-bulk operation
This commit is contained in:
parent
dee397615c
commit
321b2c7c23
2 changed files with 17 additions and 16 deletions
|
@ -33,6 +33,7 @@
|
||||||
software.amazon.awssdk.services.s3.model.GetObjectRequest
|
software.amazon.awssdk.services.s3.model.GetObjectRequest
|
||||||
software.amazon.awssdk.services.s3.model.ObjectIdentifier
|
software.amazon.awssdk.services.s3.model.ObjectIdentifier
|
||||||
software.amazon.awssdk.services.s3.model.PutObjectRequest
|
software.amazon.awssdk.services.s3.model.PutObjectRequest
|
||||||
|
software.amazon.awssdk.services.s3.model.S3Error
|
||||||
;; software.amazon.awssdk.services.s3.model.GetObjectResponse
|
;; software.amazon.awssdk.services.s3.model.GetObjectResponse
|
||||||
software.amazon.awssdk.services.s3.presigner.S3Presigner
|
software.amazon.awssdk.services.s3.presigner.S3Presigner
|
||||||
software.amazon.awssdk.services.s3.presigner.model.GetObjectPresignRequest
|
software.amazon.awssdk.services.s3.presigner.model.GetObjectPresignRequest
|
||||||
|
@ -231,6 +232,9 @@
|
||||||
^DeleteObjectsRequest dor)]
|
^DeleteObjectsRequest dor)]
|
||||||
(when (.hasErrors ^DeleteObjectsResponse dres)
|
(when (.hasErrors ^DeleteObjectsResponse dres)
|
||||||
(let [errors (seq (.errors ^DeleteObjectsResponse dres))]
|
(let [errors (seq (.errors ^DeleteObjectsResponse dres))]
|
||||||
(ex/raise :type :s3-error
|
(ex/raise :type :internal
|
||||||
:code :error-on-bulk-delete
|
:code :error-on-s3-bulk-delete
|
||||||
:context errors)))))
|
:s3-errors (mapv (fn [^S3Error error]
|
||||||
|
{:key (.key error)
|
||||||
|
:msg (.message error)})
|
||||||
|
errors))))))
|
||||||
|
|
|
@ -414,21 +414,18 @@
|
||||||
(defn- execute-scheduled-task
|
(defn- execute-scheduled-task
|
||||||
[{:keys [executor pool] :as cfg} {:keys [id] :as task}]
|
[{:keys [executor pool] :as cfg} {:keys [id] :as task}]
|
||||||
(letfn [(run-task [conn]
|
(letfn [(run-task [conn]
|
||||||
(try
|
(when (db/exec-one! conn [sql:lock-scheduled-task (d/name id)])
|
||||||
(when (db/exec-one! conn [sql:lock-scheduled-task (d/name id)])
|
(l/debug :action "execute scheduled task" :id id)
|
||||||
(l/debug :action "execute scheduled task" :id id)
|
((:fn task) task)))
|
||||||
((:fn task) task))
|
|
||||||
(catch Throwable e
|
|
||||||
e)))
|
|
||||||
|
|
||||||
(handle-task []
|
(handle-task []
|
||||||
(db/with-atomic [conn pool]
|
(try
|
||||||
(let [result (run-task conn)]
|
(db/with-atomic [conn pool]
|
||||||
(when (ex/exception? result)
|
(run-task conn))
|
||||||
(l/error :cause result
|
(catch Throwable cause
|
||||||
:hint "unhandled exception on scheduled task"
|
(l/error :hint "unhandled exception on scheduled task"
|
||||||
:id id)))))]
|
:task-id id
|
||||||
|
:cause cause))))]
|
||||||
(try
|
(try
|
||||||
(px/run! executor handle-task)
|
(px/run! executor handle-task)
|
||||||
(finally
|
(finally
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue