Add a timeout on the package page

This commit is contained in:
Michael Snoyman 2020-10-27 13:50:29 +02:00
parent bfb01a7a92
commit 615667401f
No known key found for this signature in database
GPG Key ID: 907EAE2F42B52046

View File

@ -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