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

Unable to proxy server-sent events (SSE) / event stream #232

Open
MrSaints opened this issue Jul 26, 2019 · 1 comment
Open

Unable to proxy server-sent events (SSE) / event stream #232

MrSaints opened this issue Jul 26, 2019 · 1 comment
Assignees

Comments

@MrSaints
Copy link

Describe the bug

The SSO proxy does not handle upstream server-sent events (SSE) / text/event-stream. SSO proxy attempts to handle the request before failing with: ReverseProxy read error during body copy: context deadline exceeded.

A workaround for now is setting a low flush interval:

# upstream_configs.yml
    - service: myservice
      default:
        from: myservice.sso.mydomain.com
        to: http://myservice.mynamespace.svc.cluster.local
        # HACK: to handle `text/event-stream` (SSE)
        # See also: https://github.com/golang/go/issues/27816
        options:
          flush_interval: 100ms

A potential fix is probably to flush immediately if the content-type matches text/event-stream: golang/go@5440bfc#diff-d863507a61be206d112f6e00e6d812a2R342

To Reproduce
Steps to reproduce the behavior:

  1. Load a page that leverages EventSource to receive automatic updates from a "server" behind SSO proxy (in our case, we are proxying https://argoproj.github.io/argo/ UI)
  2. Wait for automatic updates
  3. Check console, and network logs
  4. Request to the server would have timed out

Expected behavior

Any automatic updates (real-time) should be received on the client side.

Screenshots

N/A

Desktop (please complete the following information):

  • OS: MacOS
  • Browser: Chrome
  • Version: 76.0.3809.72 (Official Build) beta (64-bit)

Smartphone (please complete the following information):

N/A

Additional context

We are using buzzfeed/sso:v1.2.0 on Kubernetes 1.13.

The problem is likely related to golang/go#27816. Though, when we recompiled SSO proxy with the latest version of Go (which should have the fix for the linked issue), the problem still persisted.

@Jusshersmith Jusshersmith self-assigned this Aug 6, 2019
@willejs
Copy link

willejs commented Oct 3, 2019

I actually encountered the same issue in oauth2_proxy and think i made a similar patch which may have worked.
bitly/oauth2_proxy#266

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

No branches or pull requests

3 participants