From 39d2d273dcd455ec85f39c6447e52e3df158c4c1 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Tue, 16 May 2017 00:42:59 +0300 Subject: [PATCH] Fix possible cause for spurious 500s When DB fails to be open, aptly was skipping "close" phase, so that next request considered database to be still open (while it's closed) leading to panic. Fixes: #431 --- api/router.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/api/router.go b/api/router.go index 1867e792..6adca87f 100644 --- a/api/router.go +++ b/api/router.go @@ -27,20 +27,23 @@ func Router(c *ctx.AptlyContext) http.Handler { go cacheFlusher(requests, acks) router.Use(func(c *gin.Context) { + var err error + requests <- acquiredb - err := <-acks - if err != nil { - c.Fail(500, err) - return - } + defer func() { requests <- releasedb err = <-acks if err != nil { c.Fail(500, err) - return } }() + + err = <-acks + if err != nil { + c.Fail(500, err) + return + } c.Next() })