Cross server requests partially working

Hi there,

I’ve this issue, I’ve 2 hosts running rancher and docker 1.9.1.

I’ve an nginx container running on host 2.

If I do curl http://containerIp/index.html from either host 1 and host 2 it works.
If I request another fiile, it works from host 2 (which has the container running) but doesn’t from host 1, it seems that files bigger than some value (roughly 1.5k) can’t be transferred.
For files bigger than that curl receives the headers but no part of the body.

Any clue on what could be?


Upgraded to docker 1.10.3 seems to have solved the problem, someone has any theory why it wasn’t working?

I’ve observed that if it was related to packet size, it would still at least send some data since:

/index.html e.g. 100bytes of header + 100 bytes of data
/somefile.js e.g. 100bytes of header + 10000 bytes of data

if the index.html waa fully transferred, so some body data is transferred, also some body data of the js file should have been transferred.
Instead after the headers nothing was sent back.

~1.5k is the typical MTU for an Ethernet frame, so it’s probably related to that somehow. Normally they would just fragment and be inefficient though.

Same thought here, but a simple nginx header for a file should be less than 1500 so it should still send some data along the first packet.

Curl was showing headers and then no data

I don’t know without testing, but the headers and beginning of the body aren’t necessarily sent in one packet even if they would fit…