[LTP] [PATCH] crypto/af_alg0[13]: update tests for additional possible errno case

David Hildenbrand david@redhat.com
Tue Nov 5 20:54:58 CET 2024


On 05.11.24 19:05, Petr Vorel wrote:
>> On 05.11.24 11:40, Petr Vorel wrote:
>>> Hi Cyril, Jan, David,
> 
>>>> kernel behaviour wrt checking invalid algorithms has changed [1] [2]
>>>> updating the tests to address the additional errno case.
>>>> Related discussion on the mailing list [3]
> 
>>> Looking at 57ab2160c0 ("move_pages04: remove special-casing for kernels < 4.3") [4]
>>> recently reverting errnos for 4.3 d539a004dd ("move_pages04: fix zero page
>>> status code for kernels >= 4.3") [5] please double check this already merged
>>> change. I still believe it's a different case thus merging this is correct.
>>> Also Eric is suggesting this (I should have added Suggested-by: tag for him).
> 
>>> Maybe we need some rules to clarify when we are ok with different errno and when not.
> 
> 
>> Right.
> 
>> Regarding d539a004dd, we pretty much hid kernel bugs: behaving differently
>> than expected+documented.
> 
>> If the kernel starts reporting a different errno it might be a bug: user
>> space might not be prepared to handle that. Or it might be expected, because
>> nobody really cares about the exact error code.
> 
> I don't remember last time anybody noticed, but sure it's important.
> 
> FYI an example where errno change was not important enough was for bind, where
> commit 0fb44559ffd6 ("af_unix: move unix_mknod() out of bindlock") did some
> fixes and a side effect was that errno on an attempt to bind a unix socket to
> the same path twice changed from -EINVAL to -EADDRINUSE [1]. Bug which that
> kernel commit fixed was way more important than changing errno [2] (and
> therefore backported to all stable/LTS mainline kernels [3]).
> 
> The attempt to to fix errno [1] was just considered as not needed. But this
> might be a special case, because both errnos were listed in the man page, it was
> just matter of priority which of the error checks was handled first.
> 
> First attempt to fix the affected bind03.c was to detect kernel version [4],
> which was wrong (some versions in between did not get the fix). In the end it
> was possible to adjust test to get always expected errno regardless kernel got
> 0fb44559ffd6 backported or not [5].
> 
> Back to move_pages04. Jan wrote [6]:
>     If people find it too noisy now for older kernels, we could add .min_kver = ""
>     to the test.
> 
> I guess nothing happen, because 4.3 is way too old (the oldest mainline LTS kernel is 4.19, IMHO nobody tests 4.3 kernel with current LTP).

Yes, likely.

> 
> But having a written rules 1) when we care about errno change and when not and
> what to do in both cases would be useful.

Agreed.

> 
>> So if a test starts failing, it's definitely concerning and needs a closer
>> look.
> 
>>> I also thought there would be some rule "don't hide kernel bugs", but I can't
>>> find it in the docs.
> 
>> That rule makes sense to me.
> 
> I was not clear. We follow "don't hide kernel bugs" (at least Cyril mentioned
> this several times), but I haven't found if we document it somewhere in doc/
> folder.

Ah, yes that's what I meant: this unofficial rule makes sense to me :)

-- 
Cheers,

David / dhildenb



More information about the ltp mailing list