Source: xapian-omega
Version: 1.4.25-2
Severity: serious
Justification: preventing migration of fixed faketime on 32-bit arches

Hi.

xapian-omega uses faketime in its tests.  (`omegatest.pl`, starting
nearl l.565.)  The 32?64-bit time_t transition broke faketime
completely on 32-bit platforms for reasons relating to the libc's
kernel API usage  (#1064555  #1032177 and duplicates.)

I recently NMU'd faketime to try to fix this.  The NMU fixes the
principal calls (so, for example, `faketime date` now works on 32-bit)
but at least some APIs are not properly faked.  statx(?) is one such,
#1063820, but there may be others.

It seems that current faketime in sid is capable of persuading
xapian-omega's upstream tests that faketime is working, but does not
actually manage to fake it well enough:

 40s   expected: «Query((Y2000 ... Y2014 OR M201501 ...
 40s   received: «Query((Y2000 ... Y2024 OR D20250101 ...

Here's a full log of a failure:
  https://ci.debian.net/packages/x/xapian-omega/testing/armel/56459429/

The test script has code in it to try to detected a busted faketime,
but it evidently doesn't faithfully test the calls actually used by
the software under test.

As a result, the tests now fail.  Previously, I presume, they
currently detected that faketime was completely broken, and skipped
those tests.

Would it be possible to gate these tests on a more faithful test?
I'm not sure what that would look like because I don't know
xapian-omega at all.

One stopgap might be to gate the tests with stat(1) as well as
date(1).  faketime is supposed to clamp file timestamps so they don't
look like they're from the future.  So statting any file created
during the build or the tests, with a very old faked time, would
suffice.  If xapian-omega is using file timestamps, this would
possibly even be arguably correct.

Failing that, we could perhaps ask the release time to allow the new
faketime to migrate anyway.  But that would mean that *other*
regressions of xapian-omega on 32-bit platforms wouldn't count as a
regression.  So it would be best to skip this.

AFAICT from tracker.d.o xapian-omega is the only package which is
troubled in this way.

I regret the need to file this bug at such a high severity.  I do this
because quite a few other packages use faketime in their tests, and
currently those tests are all broken.  Allowing the new faketime to
migrate, despite the missing interposition for stat, would be a
significant improvement.  I'm hoping you'll agree.

FTR, IMO if this bug gets anywhere near triggering autoremoval of
xapian-omega, we should do something less drastic instead.

Thanks,
Ian.

-- 
Ian Jackson <ijack...@chiark.greenend.org.uk>   These opinions are my own.  

Pronouns: they/he.  If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.

Reply via email to