From 5a6137f7c64cccf510c3bc355db2183bd7c8cab7 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 13 Feb 2017 20:40:44 +0200 Subject: [PATCH 1/2] Try an explicit database close to flush resources --- Stackage/Database.hs | 5 +++++ Stackage/Database/Cron.hs | 1 + stackage-server.cabal | 1 + 3 files changed, 7 insertions(+) diff --git a/Stackage/Database.hs b/Stackage/Database.hs index bba0a20..0ea0e93 100644 --- a/Stackage/Database.hs +++ b/Stackage/Database.hs @@ -4,6 +4,7 @@ module Stackage.Database , SnapName (..) , SnapshotId () , Snapshot (..) + , closeStackageDatabase , newestSnapshot , newestLTS , newestLTSMajor @@ -73,6 +74,7 @@ import qualified Database.Esqueleto as E import Data.Yaml (decode) import qualified Data.Aeson as A import Types (SnapshotBranch(..)) +import Data.Pool (destroyAllResources) currentSchema :: Int currentSchema = 1 @@ -153,6 +155,9 @@ _hideUnusedWarnings _ = () newtype StackageDatabase = StackageDatabase ConnectionPool +closeStackageDatabase :: StackageDatabase -> IO () +closeStackageDatabase (StackageDatabase pool) = destroyAllResources pool + class MonadIO m => GetStackageDatabase m where getStackageDatabase :: m StackageDatabase instance MonadIO m => GetStackageDatabase (ReaderT StackageDatabase m) where diff --git a/Stackage/Database/Cron.hs b/Stackage/Database/Cron.hs index 5526765..856ad7a 100644 --- a/Stackage/Database/Cron.hs +++ b/Stackage/Database/Cron.hs @@ -106,6 +106,7 @@ loadFromS3 develMode man = do -- give existing users a chance to clean up threadDelay $ 1000000 * 30 void $ tryIO $ removeFile (fromString fp) + closeStackageDatabase db return oldKill update diff --git a/stackage-server.cabal b/stackage-server.cabal index f732ac2..e3b24d9 100644 --- a/stackage-server.cabal +++ b/stackage-server.cabal @@ -184,6 +184,7 @@ library , amazonka-s3 >= 1.3 && < 1.5 , lens >= 4.13 && < 4.14 , file-embed + , resource-pool executable stackage-server if flag(library-only) From 8547b84f6e0efdef7634d7b80443ccd19d0854ee Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 21 Feb 2017 16:53:40 +0200 Subject: [PATCH 2/2] Use bugfix version of persistent-sqlite --- stack.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/stack.yaml b/stack.yaml index 28c6f9f..b44b300 100644 --- a/stack.yaml +++ b/stack.yaml @@ -11,3 +11,4 @@ extra-deps: - wai-middleware-prometheus-0.1.0.1 - hoogle-5.0.6 - haskell-src-exts-1.19.0 + - persistent-sqlite-2.2.1.1