Commit 4e984ba2 authored by Alfredo Di Napoli's avatar Alfredo Di Napoli

Use displayException for notifyJobFailed

parent b5c9df51
......@@ -144,7 +144,21 @@ instance ToJSON BackendInternalError where
_ -> ""
toJSON err = object [("error", String $ T.pack $ show err)]
instance Exception BackendInternalError
instance Jobs.ToHumanFriendlyError BackendInternalError where
mkHumanFriendly e = case e of
InternalAuthenticationError{} -> show e
InternalJobError{} -> show e
InternalNodeError{} -> show e
InternalServerError{} -> show e
InternalTreeError{} -> show e
InternalUnexpectedError{} -> show e
InternalValidationError{} -> show e
InternalWorkerError{} -> show e
AccessPolicyError{} -> show e
InternalNodeStoryError nodeStoryErr -> Jobs.mkHumanFriendly nodeStoryErr
instance Exception BackendInternalError where
displayException = T.unpack . Jobs.mkHumanFriendly
instance HasNodeError BackendInternalError where
_NodeError = _InternalNodeError
......
......@@ -61,13 +61,14 @@ import Data.Profunctor.Product.TH (makeAdaptorAndInstance)
import Data.Set qualified as Set
import Database.PostgreSQL.Simple.FromField (FromField(fromField), fromJSONField)
import Gargantext.API.Ngrams.Types
import Gargantext.Database.Admin.Types.Node ( NodeId(..) )
import Gargantext.Core.Text.Ngrams qualified as Ngrams
import Gargantext.Core.Utils.Prefix (unPrefix)
import Gargantext.Database.Admin.Config ()
import Gargantext.Database.Admin.Types.Node ( NodeId(..) )
import Gargantext.Database.Prelude
import Gargantext.Database.Query.Table.Node.Error (HasNodeError())
import Gargantext.Prelude hiding (to)
import Gargantext.Utils.Jobs.Error
import Opaleye (DefaultFromField(..), SqlJsonb, fromPGSFromField)
import qualified Data.Text as T
......@@ -200,6 +201,10 @@ data BuildForestError
BFE_loop_detected !(Set VisitedNode)
deriving (Show, Eq)
instance ToHumanFriendlyError BuildForestError where
mkHumanFriendly (BFE_loop_detected visited)
= "Loop detected in ngrams: " <> renderLoop visited
renderLoop :: Set VisitedNode -> T.Text
renderLoop = T.intercalate " -> " . map (unNgramsTerm . _vn_term) . Set.toAscList
......@@ -218,6 +223,10 @@ data NodeStoryError =
NodeStoryUpsertFailed BuildForestError
deriving (Show, Eq)
instance ToHumanFriendlyError NodeStoryError where
mkHumanFriendly e = case e of
NodeStoryUpsertFailed be -> mkHumanFriendly be
------------------------------------------------------------------------
data NodeStoryEnv err = NodeStoryEnv
{ _nse_saver :: !(NodeId -> ArchiveList -> DBUpdate err ())
......
......@@ -143,7 +143,7 @@ notifyJobFailed env (W.State { name }) bm exc = do
let ji = JobInfo { _ji_message_id = messageId bm
, _ji_mNode_id = getWorkerMNodeId job }
let jh = WorkerJobHandle { _w_job_info = ji }
runWorkerMonad env $ markFailed (Just $ UnsafeMkHumanFriendlyErrorText $ "Worker job failed: " <> show exc) jh
runWorkerMonad env $ markFailed (Just $ UnsafeMkHumanFriendlyErrorText $ T.pack $ displayException exc) jh
notifyJobKilled :: (HasWorkerBroker, HasCallStack)
=> WorkerEnv
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment