# Database Connection Management - 20251123-124312 == Connection pool settings == /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:200: db.SetMaxOpenConns(25) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:201: db.SetMaxIdleConns(5) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:202: db.SetConnMaxLifetime(5 * time.Minute) /home/administrator/projects/coppertone.tech/backend/functions/work-management-service/main.go:281: database.SetMaxOpenConns(25) /home/administrator/projects/coppertone.tech/backend/functions/work-management-service/main.go:282: database.SetMaxIdleConns(5) /home/administrator/projects/coppertone.tech/backend/functions/work-management-service/main.go:283: database.SetConnMaxLifetime(5 * time.Minute) /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:493: database.SetMaxOpenConns(25) // Max open connections to DB /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:494: database.SetMaxIdleConns(5) // Max idle connections in pool /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:495: database.SetConnMaxLifetime(5 * time.Minute) // Max lifetime of a connection /home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:223: db.SetMaxOpenConns(25) /home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:224: db.SetMaxIdleConns(5) /home/administrator/projects/coppertone.tech/backend/functions/blog-service/main.go:225: db.SetConnMaxLifetime(5 * time.Minute) /home/administrator/projects/coppertone.tech/backend/functions/contact-service/main.go:249: db.SetMaxOpenConns(25) /home/administrator/projects/coppertone.tech/backend/functions/contact-service/main.go:250: db.SetMaxIdleConns(5) /home/administrator/projects/coppertone.tech/backend/functions/contact-service/main.go:251: db.SetConnMaxLifetime(5 * time.Minute) == rows.Close() calls (resource cleanup) == 27 rows.Close() calls found == Missing defer rows.Close() (potential leak) == /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:543: rows, err := db.Query(query, args...) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-544- if err != nil { /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-545- log.Println("Database error:", err) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-546- respondError(w, http.StatusInternalServerError, "Failed to fetch questions") /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-547- return /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-548- } -- /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:600: err = db.QueryRow(`SELECT id, title, content, author_id, author_name, tags, upvotes, downvotes, /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-601- answer_count, view_count, accepted_answer_id, status, created_at, updated_at /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-602- FROM forum_questions WHERE id = $1`, id). /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-603- Scan(&q.ID, &q.Title, &q.Content, &q.AuthorID, &q.AuthorName, &tags, /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-604- &q.Upvotes, &q.Downvotes, &q.AnswerCount, &q.ViewCount, &acceptedID, &q.Status, /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-605- &q.CreatedAt, &q.UpdatedAt) -- /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:621: rows, err := db.Query(`SELECT id, question_id, content, author_id, author_name, upvotes, downvotes, /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-622- is_accepted, is_verified, verified_by, verified_at, created_at, updated_at /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-623- FROM forum_answers WHERE question_id = $1 ORDER BY is_accepted DESC, (upvotes - downvotes) DESC, created_at ASC`, id) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-624- if err != nil { /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-625- respondError(w, http.StatusInternalServerError, "Failed to fetch answers") /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-626- return -- /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:676: err := db.QueryRow(`INSERT INTO forum_questions (title, content, author_id, author_name, tags) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-677- VALUES ($1, $2, $3, $4, $5) RETURNING id, created_at, updated_at`, /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-678- req.Title, req.Content, userID, userName, tagsToPostgres(req.Tags)). /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-679- Scan(&q.ID, &q.CreatedAt, &q.UpdatedAt) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-680- if err != nil { /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-681- log.Println("Database error:", err) -- /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go:713: err = db.QueryRow("SELECT author_id FROM forum_questions WHERE id = $1", id).Scan(&authorID) /home/administrator/projects/coppertone.tech/backend/functions/forum-service/main.go-714- if err == sql.ErrNoRows { == Transaction handling == /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:639: tx, err := db.Begin() /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:644: defer tx.Rollback() /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:682: if err = tx.Commit(); err != nil { /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:762: tx, err := db.Begin() /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:767: defer tx.Rollback() /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:805: if err = tx.Commit(); err != nil { /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:2320: tx, err := db.Begin() /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:2326: defer tx.Rollback() /home/administrator/projects/coppertone.tech/backend/functions/auth-service/main.go:2372: if err = tx.Commit(); err != nil {