This is a pretty low-level error that indicates some kind of networking problem — it might be a bug in our network code, or it might be data corruption going over the net.
Is it reproducible? How many times has it happened?
@jean-maxime have you found a solution to this Traefik problem? I’m facing the very same problem. I didn’t want to lose the advantages of using Traefik.
Is there any custom, non standard, header that is sent during the attachment transmission that might need to be added by Traefik while forwarding the packets back and forth the container?
Because I keep asking myself…
If this is was a general problem with Traefik, even document replication wouldn’t work at all. But document replication works. Only attachment transmission fails.
In the mean time I have found this in Traefik configuration:
HTTP headers only apply during the initial WebSocket handshake. After that, the TCP connection’s protocol changes from HTTP to WebSockets, which don’t have anything like headers.
Worth noting though that someone reported a problem with Azure rejecting WebSocket messages longer than 4KB. We will send up to 16KB messages if the resource being transferred is larger than 4K; this tends to happen more with blobs than with documents.
Yes, I’m aware of that issue. I have tried what was described as a workaround (reducing the max packet size to 4096) but it didn’t work anyway. Something else is happening. I’m trying to dig it out.
How can I increase the logLevel of BLIP? I have tried to change line 54 and 55 of BLIPConnection.cc to the following:
But it didn’t seem to increase the log level. Do I need to fully recompile?
What do I know so far?
a) direct connection to the Sync Gateway without Traefik doesn’t cause the web socket to close
b) Traefik doesn’t log anything when this happens (seems like nothing wrong happened)
c) Sync Gateway states ERROR decompressing frame: inputLen=4090, remaining=0, output=0, error=unexpected EOF when this happens, connection is terminated.
My theory is that Traefik is somehow cutting the packet and when it gets to the validation phase on Sync Gateway, it gets rejected and the connection is closed.
In order to talk with Traefik developers and say ‘Hey! There is a problem with your software’, I need to have more data to fundament my claim. Developers usually don’ t believe something is wrong with their software unless we are able to prove them wrong with another program. Isn’t that right?
Sync Gateway says that the inputLen is 4090 bytes and there is a unexpected EOF. I would like to track what is being sent from the client side to Sync Gateway and know the length of the packet that is being sent just before the close happens.
Can you please advise on how to increase the log level of couchbase-lite-core?