diff --git a/src/Stackage/Database/Cron.hs b/src/Stackage/Database/Cron.hs index ccb8d65..ebb3aec 100644 --- a/src/Stackage/Database/Cron.hs +++ b/src/Stackage/Database/Cron.hs @@ -14,6 +14,7 @@ module Stackage.Database.Cron ) where import Conduit +import Control.DeepSeq import Control.Lens ((.~)) import qualified Control.Monad.Trans.AWS as AWS (paginate) import Control.SingleRun @@ -274,7 +275,7 @@ makeCorePackageGetter _compiler pname ver = Just (gpd, treeId) -> do mTree <- run $ getEntity treeId let pkgInfo = (mTree, Just hackageCabalId, pid, gpd) - writeIORef pkgInfoRef $ Just pkgInfo + gpd `deepseq` writeIORef pkgInfoRef $ Just pkgInfo pure pkgInfo Nothing -> do (cabalBlob, mTree) <- @@ -283,7 +284,7 @@ makeCorePackageGetter _compiler pname ver = getTreeForKey (packageTreeKey (htrPackage htr))) let gpd = parseCabalBlob cabalBlob pkgInfo = (mTree, Just hackageCabalId, pid, gpd) - writeIORef pkgInfoRef $ Just pkgInfo + gpd `deepseq` writeIORef pkgInfoRef $ Just pkgInfo pure pkgInfo pure $ Just getMemoPackageInfo where @@ -303,6 +304,7 @@ addPantryPackage sid compiler isHidden flags (PantryPackage pc treeKey) = do cache = scCacheCabalFiles env let blobKeyToInt = fromIntegral . unSqlBackendKey . unBlobKey let updateCacheGPD blobId gpd = + gpd `deepseq` atomicModifyIORef' gpdCachedRef (\cacheMap -> (IntMap.insert blobId gpd cacheMap, gpd)) let getCachedGPD treeCabal = \case @@ -400,8 +402,8 @@ checkForDocs snapshotId snapName = do _ -> pure Nothing data SnapshotFileInfo = SnapshotFileInfo - { sfiSnapName :: !SnapName - , sfiUpdatedOn :: !UTCTime + { sfiSnapName :: !SnapName + , sfiUpdatedOn :: !UTCTime , sfiSnapshotFileGetter :: !(RIO StackageCron (Maybe SnapshotFile)) } diff --git a/src/Stackage/Database/Query.hs b/src/Stackage/Database/Query.hs index e7fdc66..759f101 100644 --- a/src/Stackage/Database/Query.hs +++ b/src/Stackage/Database/Query.hs @@ -440,10 +440,8 @@ getSnapshotPackagePageInfo :: GetStackageDatabase env m => SnapshotPackageInfo -> Int -> m SnapshotPackagePageInfo getSnapshotPackagePageInfo spi maxDisplayedDeps = run $ do - mhciLatest <- - case spiOrigin spi of - Hackage -> getHackageLatestVersion $ spiPackageName spi - _ -> pure Nothing + mhciLatest <- getHackageLatestVersion $ spiPackageName spi + -- TODO: check for `spiOrigin spi` once other than `Hackage` are implemented forwardDepsCount <- getForwardDepsCount spi reverseDepsCount <- getReverseDepsCount spi forwardDeps <-