From 615667401f2c5daa9d496bca54a3b73b30d3597a Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 27 Oct 2020 13:50:29 +0200 Subject: [PATCH] Add a timeout on the package page --- src/Handler/Package.hs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Handler/Package.hs b/src/Handler/Package.hs index 9a84724..40d1a7c 100644 --- a/src/Handler/Package.hs +++ b/src/Handler/Package.hs @@ -86,16 +86,17 @@ packagePage mspi pname = handlePackage :: Either HackageCabalInfo SnapshotPackageInfo -> Handler Html handlePackage epi = do - (isDeprecated, inFavourOf, snapInfo, PackageInfo{..}) <- run $ do - (isDeprecated, inFavourOf) <- getDeprecatedQuery pname - snapInfo <- case epi of - Right spi -> Right <$> getSnapshotPackagePageInfoQuery spi maxDisplayedDeps + (isDeprecated, inFavourOf, snapInfo, PackageInfo{..}) <- do + (isDeprecated, inFavourOf) <- run $ getDeprecatedQuery pname + snapInfo <- case epi of + Right spi -> Right <$> timeout 2000000 (run $ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps) Left hci -> pure $ Left hci - pinfo <- getPackageInfoQuery epi + pinfo <- run $ getPackageInfoQuery epi pure (isDeprecated, inFavourOf, snapInfo, pinfo) (msppi, mhciLatest) <- case snapInfo of Left hci -> pure (Nothing, Just hci) - Right sppi -> pure (Just sppi, sppiLatestHackageCabalInfo sppi) + Right (Just sppi) -> pure (Just sppi, sppiLatestHackageCabalInfo sppi) + Right Nothing -> pure (Nothing, Nothing) let authors = enumerate piAuthors maintainers = let ms = enumerate piMaintainers