View Full Version : NFS Regression in latest pve-kernel-2.6.32-4-pve

03-31-2011, 10:15 AM
I have a couple of OpenVZ containers configured as NFS clients connecting to a FreeBSD server. (FEATURES="nfs:on " in the /etc/vz/nnn.conf file)
The mounts use NFSv3 with file-locking enabled.

I am using pve-kernel-2.6.32-4-pve. This setup worked fine with version 2.6.32-30 and earlier of the package. However, since upgrading to kernel 2.6.32-32, NFS file locking has become broken. I am unable to establish a lock on any files in the NFS mounts. I downloaded 2.6.32-31 from pvetest and installed it manually, but it was also broken. It appears that the problematic change occurred between 2.6.32-30 and 2.6.32-31.

Based on the changelog of the PVE kernel, it looks like the problematic change happened upstream in Debian. I tried linux-image-2.6.32-5-openvz-amd64_2.6.32-31_amd64.deb from squeeze and it seems to have the problem as well, which supports that theory. Unfortunately, I can't seem to find a copy of linux-image-2.6.32-5-openvz-amd64_2.6.32-30_amd64.deb or linux-image-2.6.32-5-openvz-amd64_2.6.32-29_amd64.deb anywhere to narrow this down any further.

I had to get the server going again, so I've downgraded back to 2.6.32-30 of the pve kernel for now. I guess the next step is to set up a build environment and start iterating through each of the changes made upstream until I find the problematic one.

Does anyone have any other suggestions... or has anyone experienced anything similar?

03-31-2011, 01:22 PM
why donīt you try the stable OpenVZ - 2.6.18 kernel branch?

04-01-2011, 06:51 AM
And please test with 2.6.32-32

07-31-2012, 10:15 PM
And please test with 2.6.32-32

I am running 2.6.32-72 (2.6.32-13-pve) and I am having the same issue. My issue is more aparent as I am auto mounting the /home/* directories from NFS storage. Whenever a file lock is requested the process just hangs ... this can be seen when starting a process via strace.

$ strace /usr/local/bin/ipython
open("/home/hatem/.ipython/profile_default/history.sqlite", O_RDWR|O_CREAT|O_CLOEXEC, 0644) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "", 100) = 0
fcntl(3, F_SETLK, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, len=1}

ipython uses sqlite which locks the database.