Convoy-nfs locking and rpc.statd

I am trying to switch to convoy-nfs but have run into an issue while starting. Our application really needs locking so I am wondering if locking was intentionally removed ?

What is the proper course of action to allow locking?


 5/11/2016 9:46:04 PMWaiting for metadata
    5/11/2016 9:46:04 PMtime="2016-05-12T04:46:04Z" level=info msg="Execing [/usr/bin/nsenter --mount=/proc/21656/ns/mnt -F -- /var/lib/docker/aufs/mnt/9362b696c64335f026344abfdbf1ba74329ff7e039ceb8828de7041c31f6aa8f/var/lib/rancher/convoy-agent/share-mnt --stage2 /var/lib/rancher/convoy/convoy-nfs-47f99cab-b92d-45c2-88cb-e086cad2775a -- /launch volume-agent-nfs-internal 21656]"
    5/11/2016 9:46:04 PMRegistering convoy socket at /var/run/convoy-convoy-nfs.sock
    5/11/2016 9:46:04 PMMounting at: /var/lib/rancher/convoy/convoy-nfs-47f99cab-b92d-45c2-88cb-e086cad2775a/mnt
    5/11/2016 9:46:04 PMMounting nfs. Command: mount -t nfs -o rsize=32768,wsize=32768,noatime,intr XX.XX.XX.XX:/export/rdata/nsfdata /var/lib/rancher/convoy/convoy-nfs-47f99cab-b92d-45c2-88cb-e086cad2775a/mnt
    5/11/2016 9:46:04 PMmount.nfs: rpc.statd is not running but is required for remote locking.
    5/11/2016 9:46:04 PMmount.nfs: Either use '-o nolock' to keep locks local, or start statd.
    5/11/2016 9:46:04 PMmount.nfs: an incorrect mount option was specified

Is it possible rpcbind is not running on the host?

You can try to mount nfs on the host first, which should make sure it will be fine for convoy-nfs to run.

I checked the convoy-agent and in fact it does not appear to be starting rpc.statd.

The above line is starting portmapper (rpcbind) but I think it will also need to start rpc.statd somewhere.

You mention starting rpc.statd on the host. Would that be done outside of rancher? As a new service? I don’t believe it would start unless rpcbind is also running.


I have tried mounting several NFS servers and am always getting an error “Either use ‘-o nolock’ to keep locks local, or start statd.”.

I think this is actually a bug in NFS convoy.

I tried to clone the convoy-nfs add rpc.statd to the /launch script and redeploy but it appears that nfs mount command still cannot actually see that rpc.statd is running (I have confirmed on the running container that it is running). Could this be because of the nsenter? I have to admit I not very familiar with unix namespaces.

Any assistance is appreciated as I don’t think we can use the convoy-nfs without locking enabled.