Re: [regression] getdents() does not list entries created after opening the directory

From: Linux regression tracking (Thorsten Leemhuis)
Date: Tue Oct 01 2024 - 08:50:36 EST


On 01.10.24 14:18, Matthew Wilcox wrote:
> On Tue, Oct 01, 2024 at 01:29:09PM +0200, Linux regression tracking (Thorsten Leemhuis) wrote:
>>> DIR* dir = opendir("/tmp/dirent-problems-test-dir");
>>>
>>> fd = creat("/tmp/dirent-problems-test-dir/after", 0644);
>
> "If a file is removed from or added to the directory after the most
> recent call to opendir() or rewinddir(), whether a subsequent call to
> readdir() returns an entry for that file is unspecified."
>
> https://pubs.opengroup.org/onlinepubs/007904975/functions/readdir.html
>
> That said, if there's an easy fix here, it'd be a nice improvement to
> QoI to do it, but the test-case as written is incorrect.

Many thx Willy!

Which leads to a question:

Krzysztof, how did you find the problem? Was there a practical use case
(some software or workload) with this behavior that broke and made your
write that test-case? Or is that a test-program older and part of your
CI tests or something like that?

Ciao, Thorsten