Subject: Re: bug#55706: 29.0.50; files test fails about 20% of the time

From: Michael Albinus <[email-masked]>
Date: Wed, 01 Jun 2022 18:41:28 +0200

Lars Ingebrigtsen <[email-masked]> writes:

Hi Lars,

>> I have less cores in my laptop, so I have applied your code with -j8. It
>> failed exactly one time. Not bad, so I'm able to reproduce it.
>
> I was beginning to wonder whether it was just a problem on my build
> machine -- I couldn't reproduce it at all on my laptop (but the laptop
> is really slow compared to the build machine).

Finally, I could catch it. file-in-directory-p calls at the very end
(file-equal-p root dir), which is (file-equal-p "/tmp/" "/tmp/") in our
test case. In file-equal-p, the file attributes of file1 and file2 are
compared via equal, which means in the failing test

--8<---------------cut here---------------start------------->8---
(equal '(t 31 0 0 (25238 27804 344363 628000) (25238 27804 371363 598000) (25238 27804 371363 598000) 820 drwxrwxrwt t 1 37)
       '(t 31 0 0 (25238 27804 344363 628000) (25238 27804 372363 597000) (25238 27804 372363 597000) 800 drwxrwxrwt t 1 37)
--8<---------------cut here---------------end--------------->8---

As you can see, the file attributes of "/tmp" are not equal. This is,
because between the first and second call of file-attributes, "/tmp" has
been changed due to the other test jobs running in parallel.

I've fixed this by creating a subdirectory of "/tmp", using it as
temporary-file-directory. Pushed to master. Could you, pls, check
whether this works also on your build machine with -j64? For me it works
w/o any problem, even with an iteration of 100 over "make -j8 check".

Best regards, Michael.