You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Shalin Shekhar Mangar (JIRA)" <ji...@apache.org> on 2019/02/04 17:58:00 UTC

[jira] [Commented] (SOLR-13210) TriLevelCompositeIdRoutingTest makes no sense -- can never fail

    [ https://issues.apache.org/jira/browse/SOLR-13210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16760070#comment-16760070 ] 

Shalin Shekhar Mangar commented on SOLR-13210:
----------------------------------------------

I myself don't know because I committed it years ago (and someone else wrote the original test). But looking at the logic of extracting the key (throwing away everything after the last `!`), I think the idMap is supposed to have `app!user`. The test is making wrong assumptions about the shard distribution.

I think what we need to test here is that:
# Given a fixed number of apps and users, all data for the same {{app!user}} prefix go to the same shard in the absence of masks
# Choose a mask such that the {{app}} spans multiple shards but verify that any given {{app!user}} prefix goes to a single/same shard only

> TriLevelCompositeIdRoutingTest makes no sense -- can never fail
> ---------------------------------------------------------------
>
>                 Key: SOLR-13210
>                 URL: https://issues.apache.org/jira/browse/SOLR-13210
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Hoss Man
>            Assignee: Hoss Man
>            Priority: Major
>         Attachments: SOLR-13210_demonstrate_broken_test.patch
>
>
> i recently fixed tweaked TriLevelCompositeIdRoutingTest to lower the node/shard count on TEST_NIGHTLY because it was constantly causing an OOM.
> While skimming this test i realized that (other then the OOM, or other catastrophic failure in solr) it was garunteed to never fail, rgardless of what bugs might exist in solr when routing an update/query:
> * it doesn't sanity check that any docs are returned from any query -- so if commit does nothing and it gets no results from each of the shard queries, it will still pass
> * the {{getKey()}} method -- which throws away anything after the last "!" in a String -- is called redundently on it's own output to populate an {{idMap}} ... but not before the first result is used do to acontainsKey assertion on that same {{idMap}}
> ** ie: if {{app42/7!user33!doc1234}} is a uniqueKey value, then {{app42/7!user33}} is what the assert !containsKey checks the Map for, but  {{app42/7}} is what gets put in the Map



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org