moby: SQL timeout when too many columns are being selected - only in Docker

I may have hit upon a weird networking bug related to Docker, and I’m not the only one. I have no idea where i should report it, so I’m trying here first. Please let me know if there are better alternatives.

In short: I have a simple ASP.NET Core 2.1 app calling an SQL database. When running the app outside Docker, everything works fine all the time. But when running the app using Docker, the SQL connection times out if it tries to fetch to many columns. In my case I’m only fetching a single row from two joined tables, with a total of 40 columns being selected. None of the columns are larger than nvarchar(128), and most are significantly smaller (e.g. bit) The request is a simple SELECT ... FROM ... INNER JOIN ... WHERE ....

As long as I keep below some seemingly arbitrary number of columns (<29), the request finishes quickly (~1s). Once I hit that limit, the request times out after 30s, regardless of whether the column I add is nvarchar(128) or bit.

It does not seem to matter if I use a stored procedure or an inlined SQL string.

Again, if I run outside of Docker, everything works fine no matter the number of columns.

I know this isn’t much to go on, but I’m hoping it might be enough for someone to at least point me in the right direction (whether in the direction of a solution or a better place to file this issue). Please let me know if I can provide any other relevant info.

Output of docker version:

Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:05:28 2018
 OS/Arch:           windows/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.24)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:23:19 2018
  OS/Arch:          windows/amd64
  Experimental:     false

Output of docker info:

Containers: 57
 Running: 2
 Paused: 0
 Stopped: 55
Images: 33
Server Version: 18.06.0-ce
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog
Swarm: inactive
Default Isolation: hyperv
Kernel Version: 10.0 17134 (17134.1.amd64fre.rs4_release.180410-1804)
Operating System: Windows 10 Pro Version 1803 (OS Build 17134.165)
OSType: windows
Architecture: x86_64
CPUs: 4
Total Memory: 15.89GiB
Name: Navi
ID: VUXH:PMCX:6USB:3B7W:QTEP:WQT3:BV42:6VJN:XOYG:RQRO:QW4K:SZER
Docker Root Dir: C:\ProgramData\Docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: -1
 Goroutines: 48
 System Time: 2018-08-10T11:23:09.0566271+02:00
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details:

  • Windows 10 Pro

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 4
  • Comments: 22 (5 by maintainers)

Most upvoted comments

I was finally able to test. I still experience this error even when hitting the container directly via its IP.

Is there anything else to be done? Does this belong to this repo, or should it be reported anywhere else?