2024-01-15 21:06:05

by Dai Ngo

[permalink] [raw]
Subject: nfstest_posix failed with 6.7 kernel (resend)

(resend with correct Jorge Mora address)

The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors:

    FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
    FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)

The problem can be reproduced with both client and server running
6.7 kernel.

Bisecting points to commit 43b450632676:
43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT

This commit was introduced in 6.4-rc1 and back ported to LTS kernels.
I'm not sure if the fix for this should be in the fs or in nfstest_posix.
The commit 43b450632676 makes sense to me. No one should expect open(2)
to create the directory so the error returned should be EINVAL instead of
EEXIST as nfstest_posix expects.

-Dai




2024-01-15 21:14:42

by Matthew Wilcox

[permalink] [raw]
Subject: Re: nfstest_posix failed with 6.7 kernel (resend)

On Mon, Jan 15, 2024 at 01:05:37PM -0800, [email protected] wrote:
> (resend with correct Jorge Mora address)
>
> The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors:
>
> ??? FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
> ??? FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)

it might be helpful if you either included a source code snippet of
"nfstest_posix" or a link to where we can see what it's doing. or an
strace of the failing call.


2024-01-15 21:25:09

by Dai Ngo

[permalink] [raw]
Subject: Re: nfstest_posix failed with 6.7 kernel (resend)


On 1/15/24 1:14 PM, Matthew Wilcox wrote:
> On Mon, Jan 15, 2024 at 01:05:37PM -0800, [email protected] wrote:
>> (resend with correct Jorge Mora address)
>>
>> The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors:
>>
>>     FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
>>     FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
> it might be helpful if you either included a source code snippet of
> "nfstest_posix" or a link to where we can see what it's doing. or an
> strace of the failing call.
>
This is the link to source code of nfstest:
http://wiki.linux-nfs.org/wiki/index.php/NFStest#Download To reproduce
the problem run the test as follow: nfstest_posix --server /nfs_server/
--export=//home/nfs_share/ --notty --createlog --nfsversion=4.1
--tmpdir=/var/tmp/nfstestlogs --verbose all --runtest open -Dai


2024-01-16 09:25:47

by Christian Brauner

[permalink] [raw]
Subject: Re: nfstest_posix failed with 6.7 kernel (resend)

On Mon, Jan 15, 2024 at 01:05:37PM -0800, [email protected] wrote:
> (resend with correct Jorge Mora address)
>
> The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors:
>
>     FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
>     FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
>
> The problem can be reproduced with both client and server running
> 6.7 kernel.
>
> Bisecting points to commit 43b450632676:
> 43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT
>
> This commit was introduced in 6.4-rc1 and back ported to LTS kernels.
> I'm not sure if the fix for this should be in the fs or in nfstest_posix.
> The commit 43b450632676 makes sense to me. No one should expect open(2)
> to create the directory so the error returned should be EINVAL instead of
> EEXIST as nfstest_posix expects.

Please change the test. The EINVAL fix for open is a really important
fix to the general vfs api.

Christian

2024-01-16 22:20:38

by Dai Ngo

[permalink] [raw]
Subject: Re: nfstest_posix failed with 6.7 kernel (resend)


On 1/16/24 1:25 AM, Christian Brauner wrote:
> On Mon, Jan 15, 2024 at 01:05:37PM -0800, [email protected] wrote:
>> (resend with correct Jorge Mora address)
>>
>> The 'open' tests of nfstest_posix failed with 6.7 kernel with these errors:
>>
>>     FAIL: open - opening existent file should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
>>     FAIL: open - opening symbolic link should return an error when O_EXCL|O_CREAT is used (256 passed, 256 failed)
>>
>> The problem can be reproduced with both client and server running
>> 6.7 kernel.
>>
>> Bisecting points to commit 43b450632676:
>> 43b450632676: open: return EINVAL for O_DIRECTORY | O_CREAT
>>
>> This commit was introduced in 6.4-rc1 and back ported to LTS kernels.
>> I'm not sure if the fix for this should be in the fs or in nfstest_posix.
>> The commit 43b450632676 makes sense to me. No one should expect open(2)
>> to create the directory so the error returned should be EINVAL instead of
>> EEXIST as nfstest_posix expects.
> Please change the test. The EINVAL fix for open is a really important
> fix to the general vfs api.

Jorge, can you help fixing the nfstest_posix to work with commit 43b450632676?

Thanks,
-Dai

>
> Christian