Error establishing Websockets

Enonic version: 7.4.1
OS: ubuntu

Hello,

We run the XP 7.4.1 in docker container and we use following applications:

  • Content Studio
  • Content Viewer App
  • Data Toolbox
  • Guillotine
  • Live Trace

We map the following ports of XP out of docker container:

  • “1099:1099”
  • “2609:2609”
  • “3000:3000” # Profiling test
  • “3001:3001” # Profiling test
  • “4848:4848”
  • “5005:5005” # Remote debugging test
  • “8080:8080”

Sometimes I see the error message while working in Content Studio:

Do you know what is wrong, where the error comes from and how to get rid of it?
Here is the XP console log:

09:17:02.797 WARN c.e.x.admin.event.impl.EventEndpoint - Errored websocket 228
org.eclipse.jetty.io.EofException: null
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:279)
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:381)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.flush(FrameFlusher.java:264)
at org.eclipse.jetty.websocket.common.io.FrameFlusher.process(FrameFlusher.java:193)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.outgoingFrame(AbstractWebSocketConnection.java:584)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.close(AbstractWebSocketConnection.java:181)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:441)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Broken pipe
at java.base/sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
at java.base/sun.nio.ch.SocketDispatcher.writev(Unknown Source)
at java.base/sun.nio.ch.IOUtil.write(Unknown Source)
at java.base/sun.nio.ch.IOUtil.write(Unknown Source)
at java.base/sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at java.base/java.nio.channels.SocketChannel.write(Unknown Source)
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:273)
… 22 common frames omitted

Did someone managed to find what’s wrong?
I have a client that is seeing this same error, but I and some other people couldn’t reproduce it.

Are you using Firefox?

Hello,

We had the same problem some time ago. We probably used the same Enonic version you are mentioning. It did not matter which browser we used (Chrome, Firefox). It usually happened when we used VPN and unsecured communication (HTTP), but it wasn’t deterministic.
Since the time we have used secure communication (HTTPS), I haven’t seen the message again, even we connect through VPN. The current Enonic version we use is 7.7.0

Pavel

It might also be a problem with the reverse proxy. Do you have any config you can share?

E.g. if you’re using Nginx you need to include:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";

@maaubt Which proxy is being used here ?