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

Websocket control messages, Ping/Pong, is not forwarded #3683

Closed
crholm opened this issue Jul 27, 2018 · 4 comments
Closed

Websocket control messages, Ping/Pong, is not forwarded #3683

crholm opened this issue Jul 27, 2018 · 4 comments
Labels
area/oxy kind/bug/confirmed a confirmed bug (reproducible). priority/P1 need to be fixed in next release status/5-frozen-due-to-age
Milestone

Comments

@crholm
Copy link
Contributor

crholm commented Jul 27, 2018

Do you want to request a feature or report a bug?

Bug

What did you do?

When using Traefik to proxy websockets, Traefik will answer all Ping messages and drop all Pong messages instead of forwarding them to the destination and source. Mening websocket opcode 9 and opcode 10, https://tools.ietf.org/html/rfc6455#section-5.5.2

I dug around in the source and found that the underlying problem is within oxy, added a issue there along with a pull request
vulcand/oxy#150

Just applying this patch will fix issue, from my perspective, but might break backwards compatibility since some might come to rely on Traefik to handle control messages. It is conceivable to add a configuration option to allow for transparency. In my opinion transparency of the proxy should be the default behavior.

What did you expect to see?

I expected Traefik to be a transparent proxy and forward all control messages

What did you see instead?

Traefik using the default behavior of the gorilla websocket lib, making it non transparent. Mening that protocol built on top of websockets have to re-implemented general Ping/Pong behavior with opcode 1 (plain text) or opcode 2 (binary data)

Output of traefik version: (What version of Traefik are you using?)

N/A

What is your environment & configuration (arguments, toml, provider, platform, ...)?

N/A

If applicable, please paste the log output in DEBUG level (--logLevel=DEBUG switch)

N/A

@dtomcej dtomcej added priority/P1 need to be fixed in next release kind/bug/confirmed a confirmed bug (reproducible). area/oxy and removed status/0-needs-triage labels Jul 27, 2018
@crholm
Copy link
Contributor Author

crholm commented Jul 30, 2018

Julien and Emile just merge my pull request into the oxy repo.
vulcand/oxy#151

Should I create a pull request for Gopkg.lock, to pull the latest version of oxy into Traefik as well? or will it be done for the next rc release of traefik, mening issue can be closed?

@mmatur
Copy link
Member

mmatur commented Jul 30, 2018

@crholm Yes please could you please create a PR (from v1.7 branch) to update vulcand/oxy dependency.

@crholm crholm mentioned this issue Jul 31, 2018
2 tasks
traefiker pushed a commit to crholm/traefik that referenced this issue Jul 31, 2018
…g/pong message codes is not forwarding through traefik
@crholm
Copy link
Contributor Author

crholm commented Jul 31, 2018

Closing since merge fixes issue

@traefiker
Copy link
Contributor

Closed by #3777.

@traefiker traefiker added this to the 1.6 milestone Aug 20, 2018
@traefik traefik locked and limited conversation to collaborators Sep 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/oxy kind/bug/confirmed a confirmed bug (reproducible). priority/P1 need to be fixed in next release status/5-frozen-due-to-age
Projects
None yet
Development

No branches or pull requests

6 participants