Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-10520

BlockJoinFacetComponet duplicate counts when rows>0

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.6, 7.0
    • Component/s: None
    • Security Level: Public (Default Security Level. Issues are Public)
    • Labels:
      None

      Description

      when we have rows>0 every shard receive:

      ids=2,3,6,7,9&isShard=true&shards.purpose=64&distrib=false

      this is ShardRequest.PURPOSE_GET_TOP_IDS
      In this case child_facet_fields are merged once again unnecessary.
      failure is

      java.lang.AssertionError: don't({3=[1], s=[6], white=[0, 3, 5, 6, 7, 8, 9, 10], xl=[8], don't=[0, 1, 2, 5, 6, 8, 10], 6=[0, 2, 7], xml=[3, 6, 8], xxxl=[0, 7, 9], l=[8, 10], m=[5, 9, 10], xxl=[5], grey=[9]} COLOR_s:[don't (14), white (16), grey (2)] SIZE_s:[m (6), xxl (2), 6 (6), s (2), xml (6), xxxl (6), 3 (2), l (4), xl (2)]) expected:<7> but was:<14>
      	at __....
      org.apache.solr.search.join.BlockJoinFacetDistribTest.testBJQFacetComponent(BlockJoinFacetDistribTest.java:148)
      

      see test patch attached
      I suppose it's worth to exclude not only PURPOSE_GET_TOP_IDS but any other too, and make sure that reduce is done only once on distributed search.

      1. SOLR_10520.patch
        2 kB
        Dr Oleg Savrasov
      2. SOLR-10520.patch
        3 kB
        Mikhail Khludnev
      3. SOLR-10520-test.patch
        0.7 kB
        Mikhail Khludnev

        Activity

        Hide
        osavrasov Dr Oleg Savrasov added a comment -

        I think the component should handle shard responses only in case of ShardRequest.PURPOSE_GET_TOP_IDS, like for example FacetComponent. Appropriate fix is attached. The test is modified to randomly choose either 0 or 10 value for "rows" parameter. Random value of "distrib.singlePass" is also verified. The test may be extended to check other parameters that potentially affect shards purpose flow.

        Show
        osavrasov Dr Oleg Savrasov added a comment - I think the component should handle shard responses only in case of ShardRequest.PURPOSE_GET_TOP_IDS, like for example FacetComponent. Appropriate fix is attached. The test is modified to randomly choose either 0 or 10 value for "rows" parameter. Random value of "distrib.singlePass" is also verified. The test may be extended to check other parameters that potentially affect shards purpose flow.
        Hide
        mkhludnev Mikhail Khludnev added a comment -

        added more test variability. committing it soon.

        Show
        mkhludnev Mikhail Khludnev added a comment - added more test variability. committing it soon.
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 680f4d7fd378868254786107de92a894758f667c in lucene-solr's branch refs/heads/master from Mikhail Khludnev
        [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=680f4d7 ]

        SOLR-10520: fix child.facet.field counts

        Show
        jira-bot ASF subversion and git services added a comment - Commit 680f4d7fd378868254786107de92a894758f667c in lucene-solr's branch refs/heads/master from Mikhail Khludnev [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=680f4d7 ] SOLR-10520 : fix child.facet.field counts
        Show
        mkhludnev Mikhail Khludnev added a comment - branch_6x commit https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;a=commitdiff;h=ea3f9bb87d1e6c3cf812122c3a6f9160a8b49a19

          People

          • Assignee:
            Unassigned
            Reporter:
            mkhludnev Mikhail Khludnev
          • Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development