[CI] GeoIpDownloaderIT#testUseGeoIpProcessorWithDownloadedDBs() failure - Java elasticsearch

Build scan: https://gradle-enterprise.elastic.co/s/ryzeqrltqakyc

Repro line: ./gradlew ':modules:ingest-geoip:internalClusterTest' --tests "org.elasticsearch.ingest.geoip.GeoIpDownloaderIT.testUseGeoIpProcessorWithDownloadedDBs" -Dtests.seed=5F0FC6BC560EA228 -Dtests.security.manager=true -Dtests.locale=hu -Dtests.timezone=America/Sitka -Druntime.java=11

Reproduces locally?: No

Applicable branches: master

Failure history: https://gradle-enterprise.elastic.co/scans/tests?search.relativeStartTime=P7D&search.timeZoneId=Europe/Amsterdam&tests.container=org.elasticsearch.ingest.geoip.GeoIpDownloaderIT&tests.sortField=FAILED&tests.test=testUseGeoIpProcessorWithDownloadedDBs&tests.unstableOnly=true

Failure excerpt:

  | java.lang.AssertionError: |  
-- | -- | --
  | Expected: iterable with items [a string ending with "GeoLite2-City.mmdb", a string ending with "GeoLite2-Country.mmdb", a string ending with "GeoLite2-ASN.mmdb"] in any order |  
  | but: no item matches: a string ending with "GeoLite2-City.mmdb", a string ending with "GeoLite2-Country.mmdb", a string ending with "GeoLite2-ASN.mmdb" in [] |  

  |   | at __randomizedtesting.SeedInfo.seed([5F0FC6BC560EA228:1C5735FF891C853F]:0) |  
-- | -- | -- | --
  |   | •••
  |   | at org.elasticsearch.ingest.geoip.GeoIpDownloaderIT.lambda$testUseGeoIpProcessorWithDownloadedDBs$3(GeoIpDownloaderIT.java:241) |  
  |   | •••
  |   | at org.elasticsearch.ingest.geoip.GeoIpDownloaderIT.testUseGeoIpProcessorWithDownloadedDBs(GeoIpDownloaderIT.java:237)

Asked Oct 06 '21 07:10
avatar martijnvg

1 Answer:

I muted this test yesterday after #70215 was merged. All tests that are run via internalClusterTest use the same java.io.tmp directory. On top of that each node that gets started in the internal test cluster will use that same directory as tmp dir. This is problematic for the test in question here, because database files may appear and disappear when not expected. I think the assertions need to be adjusted and we need to ensure we always run with a single node.

Answered Mar 11 '21 at 08:29
avatar  of martijnvg