go.gorm.query_timeout
Stability
High
Detects GORM queries without timeout configuration.
Why It Matters
Section titled “Why It Matters”Queries without timeouts:
- Resource blocking - Slow queries hold connections indefinitely
- Cascading failures - Database issues propagate to application
- Poor user experience - Requests hang without feedback
Example
Section titled “Example”// ❌ Before (no query timeout)func GetUser(id uint) (*User, error) { var user User err := db.First(&user, id).Error return &user, err}// ✅ After (with context timeout)func GetUser(ctx context.Context, id uint) (*User, error) { ctx, cancel := context.WithTimeout(ctx, 5*time.Second) defer cancel()
var user User err := db.WithContext(ctx).First(&user, id).Error return &user, err}What Unfault Detects
Section titled “What Unfault Detects”- GORM queries without context
- Missing WithContext calls
- Hardcoded long timeout values
Auto-Fix
Section titled “Auto-Fix”Unfault can wrap queries with context timeout patterns.