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