fix: Fix cookie duplication bugs#150
Conversation
|
@alinaliBQ Hi Alina, could you initiate a CI run for this PR? |
|
@jmao-denver Sure, let me initiate a CI run. In our repository, workflows are disabled by default, so I will close and reopen the PR to initiate the CI run after enabling the workflow |
alinaliBQ
left a comment
There was a problem hiding this comment.
Thank you for working on this @jmao-denver!
Seems the build is broken, please fix the build:
https://github.com/Bit-Quill/arrow/actions/runs/21259953641/job/61184725799?pr=150 (ODBC Windows)
I assume mac ODBC build will also be fixed once Windows is fixed because of similar root cause
|
@jmao-denver Once this PR is merged, could you raise a pull request for this in the Arrow community repository (apache/arrow)? |
JDBC has always worked which surprised us and I double checked the code to make sure. |
|
@jmao-denver Good to hear that JDBC doesn't have this issue, thank you for checking. For context, the Windows ODBC driver with MSI installer has been fully merged into apache repo, here is the list of merged ODBC PRs. The open PR# 46099 acts as placeholder and stores the changes we have for mac ODBC, I assume this is the PR that you are referring to. I have updated the PR# 46099 description to avoid confusion since it was unclear on our end. 🙂 If you can raise a PR in the apache repo, it will make the fix available to the odbc driver in the community repo, thanks! |
Rationale for this change
Duplicate header cookie fields and duplicate cookies found in Flight SQL requests against a Flight SQL server with cookie authentication enabled. Below is a captured io.grpc.Metadata instance in a Flight SQL client request to the Deephaven Flight SQL server (https://github.com/deephaven/deephaven-core). The Deephaven Flight SQL server automatically freshens the auth cookie at an interval in order to keep the session alive, which exposes the bug in the flight client and the ODBC driver.
Metadata(
content-type=application/grpc,
te=trailers,
grpc-accept-encoding=identity, deflate, gzip,
grpc-timeout=30100m,
user-agent=grpc-c++/1.71.0 grpc-c/46.0.0 (windows; chttp2),
auth-token-bin=,
authorization=Bearer io.deephaven.authentication.psk.PskAuthenticationHandler deephaven,
cookie=deephaven-auth-cookie=97f118fb-32d3-4e60-8a9e-4287db236ffe;
deephaven-auth-cookie=c78e7a82-fd0c-4a51-b224-51950467e2d3;
deephaven-auth-cookie=c78e7a82-fd0c-4a51-b224-51950467e2d3,
cookie=deephaven-auth-cookie=97f118fb-32d3-4e60-8a9e-4287db236ffe;
deephaven-auth-cookie=c78e7a82-fd0c-4a51-b224-51950467e2d3;
deephaven-auth-cookie=c78e7a82-fd0c-4a51-b224-51950467e2d3,
x-deephaven-auth-cookie-request=true
)
What changes are included in this PR?
Are these changes tested?
Tested manually
Are there any user-facing changes?
No.