-
-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
error reading server preface: http2: frame too large #7961
Comments
Interesting. @reltuk will look into this. |
@yriahi What's the listener and target rule configuration like for RemotesAPI requires HTTP/2, and in plaintext mode it typically requires h2c, but ALB doesn't support h2c, at least at the client-to-LB hop. In this case, I think it might work if you:
Is that something that would be easy for you to try out? |
Hi @reltuk 2.Ttarget group is on HTTPS, protocol version HTTP2, healthy ( I have 400 as a "good" healthy code - is there a proper remote api status health path?)
Thanks! |
@yriahi I think the target group protocol should be HTTP, with protocol version will HTTP2. |
And to answer the question about the health check endpoint: Currently the remotesapi endpoint on sql-server does not expose a health check endpoint. A TCP ping or an HTTP request as something like |
@reltuk - Thanks for catching that! Target Group protocol changed to I got rid of the HTTPS 8080 ALB listener; and swapped to 443 instead for ease of use. Looking better now with this initial message ...then this error I don't have anything anywhere in Terraform code with port 80; not sure where that is coming from. I will keep digging. |
@yriahi Ahh, really good catch. Ok, so things probably work work end-to-end on the load balancer side. What's happening here is this: The remotesapi protocol generates links to itself and embeds them in responses to the dolt client. The dolt client then makes further requests to those links. In this case, the server itself is generating links for The right thing to do is for the remotesapi server to respect I will keep you posted on when that fix is finalized, reviewed and released. In the mean time, I think you might be able to make it work with the existing version of dolt if you also create an HTTP listener on port 80 of your ALB. I think it can forward to the same target group (if that's allowed in AWS?) or to a new one that forwards traffic to the same port. I think the traffic can either be forwarded at HTTP/1.1 or HTTP/2, but it should not be HTTPS. Thanks for your patience and I hope to follow up shortly. |
@reltuk thanks for working on this and submitting the PR. |
Didn't mean to close this until at least the release goes out. Sorry about that! |
Closing this for now, as the x-forwarded-proto change is the in latest Dolt release, 1.39.4. Please feel free to reopen or comment here if you have any further questions or need continued ideas about iterating on getting ALBs working with older versions of Dolt. |
Description:
When I clone directly from the Docker container, it works as expected:
Note: cloning from a sidecar container (another container within the same ECS task definition) works well too.
However, when I attempt to clone from my Dolt container running in AWS ECS via an Application Load Balancer (ALB), I encounter the following error:
Additional Information:
Dolt version: 1.37.0. with the following remoteapi config
ALB configuration: HTTP only (so far for internal testing). idle_timeout increased to 120
Please let me know if you need any additional information to troubleshoot this issue.
Thank you.
The text was updated successfully, but these errors were encountered: