FYI, I'm seeing this in a rawhide VM using ext4, but only twice,
and since then 20 trials with no failure.

    FAIL: test-fdutimensat (exit: 134)
    ==================================

    test-utimens.h:109: assertion failed

It never fails when run by itself.
I.e., the failure happens only when running many in parallel via e.g.,
make -j20 check -C gnulib-tests

I'll add some instrumentation eventually.

Here's the relevant code.  Line 109 is the final ASSERT:

  /* Set both times.  */
  {
    struct timespec ts[2] = { { Y2K, BILLION / 2 - 1 }, { Y2K, BILLION - 1 } };
    ASSERT (func (BASE "file", ts) == 0);
    ASSERT (stat (BASE "file", &st2) == 0);
    ASSERT (st2.st_atime == Y2K);
    ASSERT (0 <= get_stat_atime_ns (&st2));
    ASSERT (get_stat_atime_ns (&st2) < BILLION / 2);
    ASSERT (st2.st_mtime == Y2K);
    ASSERT (0 <= get_stat_mtime_ns (&st2));
    ASSERT (get_stat_mtime_ns (&st2) < BILLION);
    if (check_ctime)
      ASSERT (st1.st_ctime < st2.st_ctime
              || (st1.st_ctime == st2.st_ctime
                  && get_stat_ctime_ns (&st1) < get_stat_ctime_ns (&st2)));
  }

Reply via email to