[Cluster-devel] DLM regression in 64-bit 3.7.x Kernel?

David Teigland teigland at redhat.com
Mon Feb 25 16:11:52 UTC 2013


On Tue, Feb 19, 2013 at 11:55:14AM +0100, Jacek Konieczny wrote:
> Hi,
> 
> I have recently upgraded my development cluster from 3.6.x to 3.7.1
> kernel and clvmd stopped working (all locking operation result in 'Invalid
> argument'). I have traced the problem to this call:
> 
> write(8, "\6\0\0\0\0\0\0\0\1\0\0\0\1\1\0\0\5@\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\320\307\351\326\277\177\0\0\20\17\36\331\277\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\313\351\326\277\177\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Hlk5NeaVF0qhDF20RBq61EZaIj5yyUJgWxxs4ntZedP34Rj3E2wadZfVwtOcvpKb", 184) = -1 EINVAL (Invalid argument)
> 
> Kernel sources show only a few conditions which can result in the EINVAL error
> and the one introduced by the 'dlm: check the maximum size of a request from
> user' patch seemed suspicious to me.
> 
> The commit: http://git.kernel.org/?p=linux/kernel/git/teigland/linux-dlm.git;a=commitdiff;h=2b75bc9121e54e22537207b47b71373bcb0be41c
> 
> Should a 64-bit kernel really refuse requests using the 64-bit
> dlm_write_request struct when compiled with CONFIG_COMPAT on?
> 
> To verify my suspicions I have compiled the 3.7.9 with a little patch dropping 
> the '(count > sizeof(struct dlm_write_request32) + DLM_RESNAME_MAXLEN)' check,
> which solved the problem for me.
> 
> The patch will follow, though I am still not sure this is the solution.

Hi, the fix is already upstream: d4b0bcf32b946590afd29e202d6a399b84fe6c67
Dave




More information about the Cluster-devel mailing list