Skip to content

InternalCardinalityTests#testEqualsAndHashcode failure  #62540

@iverase

Description

@iverase

The failure can easily be reproduce with:

 ./gradlew ':server:test' --tests "org.elasticsearch.search.aggregations.metrics.InternalCardinalityTests.testEqualsAndHashcode" -Dtests.seed=7FFFBA60D5055C4B -Dtests.security.manager=true -Dtests.locale=ar-EG -Dtests.timezone=Europe/Saratov -Druntime.java=11

And the error looks like:

  2> java.lang.AssertionError: InternalCardinality mutation should not be equal to original
    Expected: not <{"fmTtJ":{"meta":{"RPdFM":"Bglpg","VLYUl":"qWMAU"},"value":50}}>
         but: was <{"fmTtJ":{"meta":{"RPdFM":"Bglpg","VLYUl":"qWMAU"},"value":50}}>
        at __randomizedtesting.SeedInfo.seed([7FFFBA60D5055C4B:EF0C2AD1AE21564]:0)

I had a look and the problem is as follows. Before #62480 for testing equality we were ignoring the provided bucket and were generating a string that was generated by all the elements in the runLens array. From now on we are only considering the runLens in the bucket (which I think is the right thing).

The test is mutating a HyperLogLog++ by adding new elements, unfortunately the values did not change so the resulting sketch is the same as the previous one. Before it did not fail because the original HyperLogLog++ contained more buckets.

Metadata

Metadata

Assignees

Labels

:Analytics/AggregationsAggregations>test-failureTriaged test failures from CITeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)low-riskAn open issue or test failure that is a low risk to future releasesv7.10.0v8.0.0-alpha1

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions