Skip to content
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

Preflight OPTION request fails on h2 protocol with grpc-web #2158

Open
1 task
nadilas opened this issue Oct 24, 2018 · 9 comments
Open
1 task

Preflight OPTION request fails on h2 protocol with grpc-web #2158

nadilas opened this issue Oct 24, 2018 · 9 comments

Comments

@nadilas
Copy link

nadilas commented Oct 24, 2018

Thanks for your help improving the project!

Getting Help

Github issues are for bug reports and feature requests. For questions about
Linkerd, how to use it, or debugging assistance, start by
asking a question in the forums or join us on
Slack.

Full details at CONTRIBUTING.md.

Filing a Linkerd issue

Issue Type:

  • [x ] Bug report
  • Feature request

What happened:
GRPC calls made from the browser are preceeded with a preflight request. These requests are made via http/1.1 which causes the h2 protocol to fail.

What you expected to happen:
Preflight check to be accepted by the h2 protocol and the request being normally routed.

How to reproduce it (as minimally and precisely as possible):
Make calls from a web browser using https://github.com/improbable-eng/grpc-web

Anything else we need to know?:

Environment:

  • linkerd/namerd version, config files: v1.5.0
  • Platform, version, and config files (Kubernetes, DC/OS, etc): windows server 2012
  • Cloud provider or hardware configuration:
@adleong
Copy link
Member

adleong commented Oct 24, 2018

Hi @nadilas! I believe this is effectively a duplicate of #766. Do you agree?

@nadilas
Copy link
Author

nadilas commented Oct 24, 2018

Hi @adleong, technically yes. If you can upgrade http/1.1 to http/2.0 that would take care of the preflight requests as well. However the difference is in the use case, all my requests are http/2.0 only the ones generated by the browser which I can’t control are http/1.1.
To be honest it’s completely blocking my project, because no grpc calls are working from the browser.

@adleong
Copy link
Member

adleong commented Oct 24, 2018

That is unfortunate. I'm not familiar with the architecture of grpc-web, is it at all possible to disable the http/1.1 preflight requests?

Unfortunately, until Linkerd supports protocol detection or upgrading, I don't think there's anything we can do.

@nadilas
Copy link
Author

nadilas commented Oct 24, 2018

I would if I could :) those preflight requests are generated by the browser (e.g. Chrome) not grpc-web. I have no control over that.

@nadilas
Copy link
Author

nadilas commented Oct 25, 2018

@adleong When do you expect this feature to land?

@adleong
Copy link
Member

adleong commented Oct 29, 2018

@nadilas I'm not aware of anyone actively working on it, so probably not in the near term.

@nadilas
Copy link
Author

nadilas commented Oct 30, 2018

@adleong thanks for the info. That means I have to take Linkerd out of my stack for now. Where can I track when this feature will be implemented?

@wmorgan
Copy link
Member

wmorgan commented Oct 30, 2018

@nadilas are you on Kubernetes? we have protocol upgrade in Linkerd 2.x, but that's K8s-specific right now. Alternatively, #766 is the issue to track.

@nadilas
Copy link
Author

nadilas commented Oct 30, 2018

@wmorgan great, thanks! I’m not on Kubernetes. So I’ll just have to wait. 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

No branches or pull requests

3 participants