go data_error ai_generated true

sql: connection has been closed

ID: go/database-sql-conn-max-lifetime

Also available as: JSON · Markdown · 中文
80%Fix Rate
83%Confidence
0Evidence
2024-08-12First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
1.22 active

Root Cause

A database connection is used after it has been closed due to exceeding ConnMaxLifetime, causing errors on subsequent queries.

generic

中文

由于超过 ConnMaxLifetime,数据库连接被关闭后仍被使用,导致后续查询出错。

Workarounds

  1. 85% success
    db.SetConnMaxLifetime(30 * time.Minute); db.SetMaxOpenConns(100); db.SetMaxIdleConns(10)

Dead Ends

Common approaches that don't work:

  1. 70% fail

    Can cause stale connections and resource leaks.

  2. 90% fail

    database/sql manages connections; manual reuse is not supported.