Skip to content

Connection from R using adbi (+adbcflightsql +adbcdrivermanager) logs "PRI * HTTP/2.0" HTTPStatus.HTTP_VERSION_NOT_SUPPORTED -" #9

@mskyttner

Description

@mskyttner

Trying to make a connection against a quackpy server to get "adbc all the way down" into an R client. See below, using R and having installed packages adbi, adbcflightsql and adbcdrivermanager, but first starting the quackpy server with docker run -ti --rm -p 8123:8123 -p 8815:8815 ghcr.io/quackscience/quackpy:latest:

con <- 
  adbi::dbConnect(adbi::adbi("adbcflightsql"), 
    uri = "grpc://127.0.0.1:8815"  #, username = "", password =""
  )

print(con)

Error reported on the client side:

Error in `adbcdrivermanager::adbc_connection_get_info()`:
! IO: [FlightSQL] connection error: desc = "error reading server preface: read tcp 127.0.0.1:44700->127.0.0.1:8815: read: connection reset by peer" (Unavailable; GetInfo(GetSqlInfo))
Hide Traceback
    ▆
 1. ├─methods (local) `<stndrdGn>`(`<AdbCnnct>`)
 2. └─adbi (local) `<stndrdGn>`(`<AdbCnnct>`)
 3.   ├─nanoarrow::convert_array_stream(adbcdrivermanager::adbc_connection_get_info(object@connection))
 4.   │ └─base::stopifnot(inherits(array_stream, "nanoarrow_array_stream"))
 5.   └─adbcdrivermanager::adbc_connection_get_info(object@connection)
 6.     └─adbcdrivermanager:::stop_for_error(status, error)

Possibly related lines in the log from the quackpy server side:

172.17.0.1 - - [11/Feb/2025 09:52:46] code 505, message Invalid HTTP version (2.0)
172.17.0.1 - - [11/Feb/2025 09:52:46] "PRI * HTTP/2.0" HTTPStatus.HTTP_VERSION_NOT_SUPPORTED -

This might well be operator error, but the equivalent way to connect to the Voltron "sqlflite" server works (just different uri). So I was guessing that maybe quackpy should support such a way to set up the connection?

Wondering also if there is an doc of how to do this in R already and specifically how to send credentials (in a conncetion against the sqlflite server these credentails are provided not in the connection uri but as separate parameters for username and password when setting up the connection).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions