dinghy
dinghy copied to clipboard
Provide the ability to mount NFS using TCP
I'm having issues with processes inside containers intermittently getting stuck while performing I/O on host-mounted volumes. In these cases /proc/pid/stack points to nfs_file_fsync(), and there is a complaint in dmesg regarding NFS server availability, however, the server is happily running and mounts are, in general, still functional.
Mounting with proto=tcp instead of proto=udp fixes the issue.
I take it there are virtual network issues in boot2docker (packet loss?), but I'm not sure how to debug them. tcpdump on host shows that server replies to all requests, tcpdump in container shows nothing (in-kernel NFS client getting to packets first?) and I'm not sure how to install tcpdump into boot2docker vm:
$ tce-load -wi tcpdump Downloading: netfilter-4.4.12-boot2docker.tcz Connecting to repo.tinycorelinux.net (89.22.99.37:80) wget: server returned error: HTTP/1.1 404 Not Found md5sum: netfilter-4.4.12-boot2docker.tcz.md5.txt: No such file or directory Error on netfilter-4.4.12-boot2docker.tcz
What VM provider are you using?
NFS is running in udp mode because we ran into a lot of errors with tcp mode when this was first all set up -- that was back when we were using Vagrant and VirtualBox 4.x, though, so maybe it's time to revisit and try tcp again.
I'm not sure about installing tcpdump in tinycore either.
I'm using xhyve.