{"record":{"id":"c9fa2bbeccb5c22e","repo":"t8y2/dbx","slug":"close-hive-initfile-statement-result-w-c9fa2b","errorCode":null,"errorMessage":"close Hive initFile statement result: %w","messagePattern":"close Hive initFile statement result: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/hive-go/main.go","lineNumber":384,"sourceCode":"}\n\nfunc runHiveInitStatements(ctx context.Context, connection *sql.Conn, statements []string, fetchSize int) error {\n\tfor _, statement := range statements {\n\t\trows, _, hasResultSet, err := executeHiveStatement(ctx, connection, statement, fetchSize)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"execute Hive initFile statement: %w\", err)\n\t\t}\n\t\tif !hasResultSet {\n\t\t\tcontinue\n\t\t}\n\t\tfor rows.Next() {\n\t\t}\n\t\tif rowsErr := rows.Err(); rowsErr != nil {\n\t\t\t_ = rows.Close()\n\t\t\treturn fmt.Errorf(\"read Hive initFile statement result: %w\", rowsErr)\n\t\t}\n\t\tif closeErr := rows.Close(); closeErr != nil {\n\t\t\treturn fmt.Errorf(\"close Hive initFile statement result: %w\", closeErr)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (server *server) dispatch(method string, params map[string]json.RawMessage) (any, bool, error) {\n\tswitch method {\n\tcase \"validate_connection\":\n\t\treturn map[string]bool{\"ok\": true}, false, server.validateConnection()\n\tcase \"connection_info\":\n\t\tresult, err := server.connectionInfo()\n\t\treturn result, false, err\n\tcase \"list_databases\":\n\t\tresult, err := server.listDatabases()\n\t\treturn result, false, err\n\tcase \"list_schemas\":\n\t\tresult, err := server.listSchemas(stringSliceParam(params, \"visible_schemas\"))\n\t\treturn result, false, err","sourceCodeStart":366,"sourceCodeEnd":402,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/hive-go/main.go#L366-L402","documentation":"When closing the Rows handle for an initFile statement result set returns an error, the driver wraps it as this error and aborts connection initialization. A close failure means the driver could not cleanly release the server-side operation/result resources for that statement.","triggerScenarios":"rows.Close() returns non-nil after draining an initFile statement's result set — typically an underlying transport error to HiveServer2 (connection reset, cancelled operation) surfaced at close time.","commonSituations":"Network interruption during connection bootstrap; HiveServer2 closing the session while the init statement's operation is still open; thrift transport errors on flaky connections.","solutions":["Inspect the wrapped cause after 'close Hive initFile statement result:' for the transport error","Retry the connection; if close errors persist, check network stability to HiveServer2","Verify hive.server2 idle/operation timeouts aren't closing operations mid-init","Keep initFile free of statements producing large result sets so close happens quickly"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"if err != nil && strings.HasPrefix(err.Error(), \"close Hive initFile statement result:\") {\n    log.Printf(\"init result cleanup failed, retrying: %v\", err)\n    return reconnect(ctx)\n}","preventionTips":["Use only non-result-set statements (SET/USE/DDL) in initFile","Check network reliability and HiveServer2 operation timeouts","Avoid long-running work on the bootstrap connection"],"tags":["go","hive","initialization","resource-cleanup"],"backgroundTag":"result-set-close-failure","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}