Docker Community Forums

Share and learn in the Docker community.

NAT drops TCP connections under heavy load - bring back possibility to disable NAT


#1

Expected behavior

All NAT’ed TCP connections are handled properly.

Actual behavior

Under heavy load, when initializing application DB (~500MB) running on MySQL (image mysql/mysql-server 5.6 99720f9b350d) using multiple threads (up to 90 connections) some of connections are dropped.
Part of stack trace:
(...) [java] Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure [java] The last packet successfully received from the server was 1 milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago. (...) [java] Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. [java] at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2949)
This issue is ongoing since private betas. No such issues were observed when accessing VM port directly (using now missing pinata to disable NAT). There is no appropriate switch in Moby’s Advanced Preferences.

Information

Docker for Mac: version: abf019d OS X: version 10.11.6 (build: 15G31) [OK] docker-cli [OK] dns [OK] moby-syslog [OK] app [OK] disk [OK] system [OK] virtualization [OK] osxfs [OK] menubar [OK] db [OK] slirp [OK] logs [OK] moby-console [OK] vmnetd [OK] env [OK] moby [OK] driver.amd64-linux