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
This commit is contained in:
Andrey Smirnov
2017-05-16 00:42:59 +03:00
parent 5a3e660c0d
commit 39d2d273dc
+9 -6
View File
@@ -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()
})