-
Notifications
You must be signed in to change notification settings - Fork 1
Description
From my documentation (related issues):
- Issue (CAN DEPRECATE ISSUE) Issues raised when using the driver for creating API (especially list APIs) #1 (CAST+JOINs hang): Server protocol + no timeout in fetchMoreData()
- Issue Buffer Size Constraints / Large Data Hang (Critical Blocking Issue) #2 (Functions+JOINs hang): Same as (CAN DEPRECATE ISSUE) Issues raised when using the driver for creating API (especially list APIs) #1
- Issue CAST / JOINS / Functions / Empty Dataset combinations hangs and Panics: Timeouts and Outbounds #4 (COUNT+JOINs panic): No bounds checking on slot_position in Next() line 248
- Issue CAST Operations + JOINs Cause Indefinite Hang ⚠️ CRITICAL #5 (Pagination leaks): No timeout on empty results
- Issue Parameterized UUIDs in WHERE Clauses Cause Panic **Severity:** ⚠️ CRITICAL #7 (Invalid FK hang): Same as CAST Operations + JOINs Cause Indefinite Hang ⚠️ CRITICAL #5
Recommendations
Priority 2: Add Timeout to fetchMoreData() (Prevents ALL hangs)
-
Add SetReadDeadline(30s) before ReadMessage()
-
Handle timeout errors gracefully (return false, not panic)
-
Issue CAST / JOINS / Functions / Empty Dataset combinations hangs and Panics: Timeouts and Outbounds #4 (COUNT+JOINs panic): No bounds checking on slot_position in Next() line 248
Priority 4: Add Bounds Checking (Fixes Issues Fix GUID Handling #3, CAST / JOINS / Functions / Empty Dataset combinations hangs and Panics: Timeouts and Outbounds #4) -
Check slot_position < len(vals) in Next()
-
Check offset+size <= len(buffer) in GetListItem()
-
sql.go:247-254 - Add bounds checking in Next()
-
mod.go - Add maxRowsPerFetch field to Connection struct
-
url.go - Parse maxRows from DSN