From 3ec26ef442e0112ac26b402dfc2640c3e39d7d46 Mon Sep 17 00:00:00 2001 From: Kevin Lin Date: Wed, 19 Apr 2023 18:02:48 +0800 Subject: [PATCH] fix: avoid coroutine leaks when the dialecter initialization fails. --- gorm.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gorm.go b/gorm.go index 4402a2df..07a913fc 100644 --- a/gorm.go +++ b/gorm.go @@ -179,6 +179,12 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) { if config.Dialector != nil { err = config.Dialector.Initialize(db) + + if err != nil { + if db, err := db.DB(); err == nil { + _ = db.Close() + } + } } preparedStmt := &PreparedStmtDB{