Re: [NLM] 2.6.27.14 breakage when grace period expires

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Feb 12, 2009, at 2:10 PM, Trond Myklebust wrote:
On Thu, 2009-02-12 at 19:29 +0100, Frank van Maarseveen wrote:
On Thu, Feb 12, 2009 at 01:17:27PM -0500, Trond Myklebust wrote:
On Thu, 2009-02-12 at 16:36 +0100, Frank van Maarseveen wrote:
A little theorizing:
If the unlock of a yet unrecovered lock has failed up to that point then the client sure must remember the lock somehow. That might explain the
secondary error when a conflicting lock is granted by the server.

Sorry, but that doesn't hold water. The client will release the VFS
'mirror' of the lock before it attempts to unlock. Otherwise, you could
have some nasty races between the unlock thread and the recovery
thread...
Besides, the granted callback handler on the client only checks the list
of blocked locks for a match.

ok, then we have more than one NLM bug to resolve.


Oh, bugger, I know what this is... It's the same thing that happened to
the NFSv4 callback server. If you compile with CONFIG_IPV6 or
CONFIG_IPV6_MODULE enabled, and also set CONFIG_SUNRPC_REGISTER_V4, then
the NLM server will listen on an IPv6 socket, and so the RPC request
come in with their IPv4 address mapped into the IPv6 namespace.

Nope:

	$ zgrep IPV6 /proc/config.gz
	# CONFIG_IPV6 is not set
	$ zgrep SUNRPC /proc/config.gz
	CONFIG_SUNRPC=y
	CONFIG_SUNRPC_GSS=y
	# CONFIG_SUNRPC_BIND34 is not set

Sorry, yes... 2.6.27.x should be OK. The lockd v4mapped addresses bug is
specific to 2.6.29. Chuck, are you planning on fixing this before
2.6.29-final comes out?

I wasn't sure exactly where the compared addresses came from. I had assumed that they all came through the listener, so we wouldn't need this kind of translation. It shouldn't be difficult to map addresses passed in via nlmclnt_init() to AF_INET6.

But this is the kind of thing that makes "falling back" to an AF_INET listener a little challenging. We will have to record what flavor the listener is and do a translation depending on what listener family was actually created.

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux