You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Hoss Man (JIRA)" <ji...@apache.org> on 2015/11/12 01:36:10 UTC

[jira] [Updated] (SOLR-8280) TestCloudSchemaless fails weirdly if you try to use SolrCoreAware sim factory: SchemaSimilarityFactory

     [ https://issues.apache.org/jira/browse/SOLR-8280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hoss Man updated SOLR-8280:
---------------------------
    Attachment: SOLR-8280.patch


With the attached patch, it's trivial to trigger a suite failure in TestCloudSchemaless, although lots of other cloud related tests (using schema.xml via AbstractFullDistribZkTestBase) function just fine.

(NOTE: there are in fact a handful of other test failures with this patch, but they exist due to specific Sim related assumptions in those tests vs the general change of schema.xml to using SchemaSimilarityFactory ... i included the change to schema.xml in this patch purely as an easy way to demonstrate that most cloud related tests -- even ones using schemaless and/or involving core reloads -- don't ffreak out the same way as TestCloudSchemaless)

----

Quick walk through of the TestCloudSchemaless failure...

{noformat}
ant test  -Dtestcase=TestCloudSchemaless -Dtests.seed=8F1B744FBE000231 -Dtests.slow=true
{noformat}

The test itself runs fine, and reaches the {{SolrTestCaseJ4 ###Ending test" stage}} at which point shutdown begins -- and eventually stalls in the dir factory waiting for directories to close...

{noformat}
   [junit4]   2> 52621 INFO  (TEST-TestCloudSchemaless.test-seed#[E3CE46BC04E096EF]) [n:127.0.0.1:35554_ c:collection1 s:shard2 r:core_node1 x:collection1] o.a.s.c.SolrCore [collection1] Closing main searcher on request.
   [junit4]   2> 52621 INFO  (TEST-TestCloudSchemaless.test-seed#[E3CE46BC04E096EF]) [n:127.0.0.1:35554_ c:collection1 s:shard2 r:core_node1 x:collection1] o.a.s.c.CachingDirectoryFactory Closing NRTCachingDirectoryFactory - 2 directories currently being tracked
   [junit4]   2> 64733 ERROR (TEST-TestCloudSchemaless.test-seed#[E3CE46BC04E096EF]) [n:127.0.0.1:35554_ c:collection1 s:shard2 r:core_node1 x:collection1] o.a.s.c.CachingDirectoryFactory Timeout waiting for all directory ref counts to be released - gave up waiting on CachedDir<<refCount=1;path=/home/hossman/lucene/dev/solr/build/solr-core/test/J0/temp/solr.schema.TestCloudSchemaless_E3CE46BC04E096EF-001/shard-1-001/cores/collection1/data/index;done=false>>
   [junit4]   2> 64733 ERROR (TEST-TestCloudSchemaless.test-seed#[E3CE46BC04E096EF]) [n:127.0.0.1:35554_ c:collection1 s:shard2 r:core_node1 x:collection1] o.a.s.c.CachingDirectoryFactory Error closing directory:org.apache.solr.common.SolrException: Timeout waiting for all directory ref counts to be released - gave up waiting on CachedDir<<refCount=1;path=/home/hossman/lucene/dev/solr/build/solr-core/test/J0/temp/solr.schema.TestCloudSchemaless_E3CE46BC04E096EF-001/shard-1-001/cores/collection1/data/index;done=false>>
   [junit4]   2> 	at org.apache.solr.core.CachingDirectoryFactory.close(CachingDirectoryFactory.java:187)
   [junit4]   2> 	at org.apache.solr.core.SolrCore.close(SolrCore.java:1268)
   [junit4]   2> 	at org.apache.solr.core.SolrCores.close(SolrCores.java:124)
   [junit4]   2> 	at org.apache.solr.core.CoreContainer.shutdown(CoreContainer.java:570)
   [junit4]   2> 	at org.apache.solr.servlet.SolrDispatchFilter.destroy(SolrDispatchFilter.java:172)
   [junit4]   2> 	at org.apache.solr.cloud.ChaosMonkey.stopJettySolrRunner(ChaosMonkey.java:186)
   [junit4]   2> 	at org.apache.solr.cloud.ChaosMonkey.stop(ChaosMonkey.java:518)
   [junit4]   2> 	at org.apache.solr.cloud.AbstractFullDistribZkTestBase.destroyServers(AbstractFullDistribZkTestBase.java:1514)
   [junit4]   2> 	at org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsFixedStatement.callStatement(BaseDistributedSearchTestCase.java:964)
   [junit4]   2> 	at org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsStatement.evaluate(BaseDistributedSearchTestCase.java:938)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
   [junit4]   2> 	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:49)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:809)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:460)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:875)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:777)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:811)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:822)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
   [junit4]   2> 	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:54)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
   [junit4]   2> 	at java.lang.Thread.run(Thread.java:745)
   [junit4]   2> 
   [junit4]   2> 64733 ERROR (TEST-TestCloudSchemaless.test-seed#[E3CE46BC04E096EF]) [n:127.0.0.1:35554_ c:collection1 s:shard2 r:core_node1 x:collection1] o.a.s.c.SolrCore java.lang.AssertionError: 1
   [junit4]   2> 	at org.apache.solr.core.CachingDirectoryFactory.close(CachingDirectoryFactory.java:201)
   [junit4]   2> 	at org.apache.solr.core.SolrCore.close(SolrCore.java:1268)
   [junit4]   2> 	at org.apache.solr.core.SolrCores.close(SolrCores.java:124)
   [junit4]   2> 	at org.apache.solr.core.CoreContainer.shutdown(CoreContainer.java:570)
   [junit4]   2> 	at org.apache.solr.servlet.SolrDispatchFilter.destroy(SolrDispatchFilter.java:172)
   [junit4]   2> 	at org.apache.solr.cloud.ChaosMonkey.stopJettySolrRunner(ChaosMonkey.java:186)
   [junit4]   2> 	at org.apache.solr.cloud.ChaosMonkey.stop(ChaosMonkey.java:518)
   [junit4]   2> 	at org.apache.solr.cloud.AbstractFullDistribZkTestBase.destroyServers(AbstractFullDistribZkTestBase.java:1514)
   [junit4]   2> 	at org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsFixedStatement.callStatement(BaseDistributedSearchTestCase.java:964)
   [junit4]   2> 	at org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsStatement.evaluate(BaseDistributedSearchTestCase.java:938)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
   [junit4]   2> 	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:49)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:809)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:460)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:875)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:777)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:811)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:822)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:57)
   [junit4]   2> 	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:46)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:54)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
   [junit4]   2> 	at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
   [junit4]   2> 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:367)
   [junit4]   2> 	at java.lang.Thread.run(Thread.java:745)
   [junit4]   2> 
{noformat}


...at that point, things go from bad to worse, as RecoveryThreads kick in (why is the collection attempting to recover it it was deliberaly being shutdown???) but of course that doesn't turn out well because the CoreContainer's are all in shutdown mode...

{noformat}
   [junit4]   2> 69727 INFO  (qtp1007998027-153) [n:127.0.0.1:44195_    ] o.a.s.h.a.CoreAdminHandler Going to wait for coreNodeName: core_node8, state: recovering, checkLive: true, onlyIfLeader: true, onlyIfLeaderActive: true
   [junit4]   2> 69727 INFO  (zkCallback-44-thread-2-processing-n:127.0.0.1:42678_) [n:127.0.0.1:42678_    ] o.a.s.c.c.ZkStateReader Updating data for collection1 from 29 to 30 
   [junit4]   2> 69728 INFO  (zkCallback-39-thread-2-processing-n:127.0.0.1:52349_) [n:127.0.0.1:52349_    ] o.a.s.c.c.ZkStateReader Updating data for collection1 from 29 to 30 
   [junit4]   2> 69728 INFO  (qtp1007998027-153) [n:127.0.0.1:44195_    ] o.a.s.h.a.CoreAdminHandler Will wait a max of 183 seconds to see collection1 (shard1 of collection1) have state: recovering
   [junit4]   2> 69728 INFO  (qtp1007998027-153) [n:127.0.0.1:44195_    ] o.a.s.h.a.CoreAdminHandler In WaitForState(recovering): collection=collection1, shard=shard1, thisCore=collection1, leaderDoesNotNeedRecovery=false, isLeader? true, live=true, checkLive=true, currentState=recovering, localState=active, nodeName=127.0.0.1:42678_, coreNodeName=core_node8, onlyIfActiveCheckResult=false, nodeProps: core_node8:{"core":"collection1","base_url":"http://127.0.0.1:42678","node_name":"127.0.0.1:42678_","state":"recovering"}
   [junit4]   2> 69729 INFO  (qtp1007998027-153) [n:127.0.0.1:44195_    ] o.a.s.h.a.CoreAdminHandler Waited coreNodeName: core_node8, state: recovering, checkLive: true, onlyIfLeader: true for: 0 seconds.
   [junit4]   2> 69729 INFO  (qtp1007998027-153) [n:127.0.0.1:44195_    ] o.a.s.s.SolrDispatchFilter [admin] webapp=null path=/admin/cores params={nodeName=127.0.0.1:42678_&onlyIfLeaderActive=true&core=collection1&coreNodeName=core_node8&action=PREPRECOVERY&checkLive=true&state=recovering&onlyIfLeader=true&wt=javabin&version=2} status=0 QTime=1 
   [junit4] HEARTBEAT J0 PID(17711@tray): 2015-11-11T16:22:31, stalled for 70.2s at: TestCloudSchemaless.test
   [junit4]   2> 72390 INFO  (RecoveryThread-collection1) [n:127.0.0.1:44717_ c:collection1 s:shard3 r:core_node6 x:collection1] o.a.s.c.RecoveryStrategy Starting Replication Recovery.
   [junit4]   2> 72390 INFO  (RecoveryThread-collection1) [n:127.0.0.1:44717_ c:collection1 s:shard3 r:core_node6 x:collection1] o.a.s.c.RecoveryStrategy Attempting to replicate from http://127.0.0.1:54475/collection1/.
   [junit4]   2> 72391 ERROR (qtp1661135858-94) [n:127.0.0.1:54475_    ] o.a.s.s.SolrDispatchFilter Error processing the request. CoreContainer is either not initialized or shutting down.
   [junit4]   2> 72392 WARN  (qtp1661135858-94) [n:127.0.0.1:54475_    ] o.e.j.s.ServletHandler /collection1/update
   [junit4]   2> org.apache.solr.common.SolrException: Error processing the request. CoreContainer is either not initialized or shutting down.
   [junit4]   2> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:187)
   [junit4]   2> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
   [junit4]   2> 	at org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:109)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
   [junit4]   2> 	at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
   [junit4]   2> 	at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:300)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
   [junit4]   2> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
   [junit4]   2> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
   [junit4]   2> 	at org.eclipse.jetty.server.Server.handle(Server.java:499)
   [junit4]   2> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
   [junit4]   2> 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
   [junit4]   2> 	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
   [junit4]   2> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
   [junit4]   2> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
   [junit4]   2> 	at java.lang.Thread.run(Thread.java:745)
{noformat}

...and then things *really* get weird, as the RecoveryThread starts trying to do replication recovery, and then nodes start complaining that they can't open a new searcher because SolrCoreAware.inform() was never called on the SimilarityFactory (an assert that exists inside SchemaSimilarityFactory.getSimilarity()) ...

{noformat}
   [junit4]   2> 74329 INFO  (RecoveryThread-collection1) [n:127.0.0.1:52349_ c:collection1 s:shard4 r:core_node7 x:collection1] o.a.s.c.RecoveryStrategy Attempting to replicate from http://127.0.0.1:54695/collection1/.
   [junit4]   2> 74331 INFO  (qtp1972553455-125) [n:127.0.0.1:54695_ c:collection1 s:shard4 r:core_node3 x:collection1] o.a.s.u.UpdateHandler start commit{,optimize=false,openSearcher=false,waitSearcher=true,expungeDeletes=false,softCommit=false,prepareCommit=false}
   [junit4]   2> 74359 INFO  (qtp1972553455-125) [n:127.0.0.1:54695_ c:collection1 s:shard4 r:core_node3 x:collection1] o.a.s.c.SolrCore SolrDeletionPolicy.onCommit: commits: num=2
   [junit4]   2> 	commit{dir=NRTCachingDirectory(MMapDirectory@/home/hossman/lucene/dev/solr/build/solr-core/test/J0/temp/solr.schema.TestCloudSchemaless_E3CE46BC04E096EF-001/shard-3-001/cores/collection1/data/index lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@5720ab9c; maxCacheMB=48.0 maxMergeSizeMB=4.0),segFN=segments_4,generation=4}
   [junit4]   2> 	commit{dir=NRTCachingDirectory(MMapDirectory@/home/hossman/lucene/dev/solr/build/solr-core/test/J0/temp/solr.schema.TestCloudSchemaless_E3CE46BC04E096EF-001/shard-3-001/cores/collection1/data/index lockFactory=org.apache.lucene.store.SingleInstanceLockFactory@5720ab9c; maxCacheMB=48.0 maxMergeSizeMB=4.0),segFN=segments_5,generation=5}
   [junit4]   2> 74359 INFO  (qtp1972553455-125) [n:127.0.0.1:54695_ c:collection1 s:shard4 r:core_node3 x:collection1] o.a.s.c.SolrCore newest commit generation = 5
   [junit4]   2> 74361 INFO  (qtp1972553455-125) [n:127.0.0.1:54695_ c:collection1 s:shard4 r:core_node3 x:collection1] o.a.s.s.SolrIndexSearcher Opening Searcher@5428727f[collection1] realtime
   [junit4]   2> 74361 INFO  (qtp1972553455-125) [n:127.0.0.1:54695_ c:collection1 s:shard4 r:core_node3 x:collection1] o.a.s.u.p.LogUpdateProcessor [collection1] webapp= path=/update params={waitSearcher=true&openSearcher=false&commit=true&softCommit=false&commit_end_point=true&wt=javabin&version=2} {} 0 30
   [junit4]   2> 74362 ERROR (qtp1972553455-125) [n:127.0.0.1:54695_ c:collection1 s:shard4 r:core_node3 x:collection1] o.a.s.s.SolrDispatchFilter null:java.lang.RuntimeException: java.lang.AssertionError: inform must be called first
   [junit4]   2> 	at org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:616)
   [junit4]   2> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:475)
   [junit4]   2> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:220)
   [junit4]   2> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
   [junit4]   2> 	at org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:109)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
   [junit4]   2> 	at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:83)
   [junit4]   2> 	at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:300)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
   [junit4]   2> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
   [junit4]   2> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
   [junit4]   2> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
   [junit4]   2> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
   [junit4]   2> 	at org.eclipse.jetty.server.Server.handle(Server.java:499)
   [junit4]   2> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
   [junit4]   2> 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
   [junit4]   2> 	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
   [junit4]   2> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
   [junit4]   2> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
   [junit4]   2> 	at java.lang.Thread.run(Thread.java:745)
   [junit4]   2> Caused by: java.lang.AssertionError: inform must be called first
   [junit4]   2> 	at org.apache.solr.search.similarities.SchemaSimilarityFactory.getSimilarity(SchemaSimilarityFactory.java:86)
   [junit4]   2> 	at org.apache.solr.schema.IndexSchema.getSimilarity(IndexSchema.java:269)
   [junit4]   2> 	at org.apache.solr.search.SolrIndexSearcher.<init>(SolrIndexSearcher.java:255)
   [junit4]   2> 	at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1628)
   [junit4]   2> 	at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:635)
   [junit4]   2> 	at org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:95)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
   [junit4]   2> 	at org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalCommit(DistributedUpdateProcessor.java:1616)
   [junit4]   2> 	at org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:1593)
   [junit4]   2> 	at org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:161)
   [junit4]   2> 	at org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:69)
   [junit4]   2> 	at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
   [junit4]   2> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:151)
   [junit4]   2> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2079)
   [junit4]   2> 	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:667)
   [junit4]   2> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:460)
   [junit4]   2> 	... 23 more
{noformat}

...and then eventually the suite times out.

----

There are lots of questions here, notably:

# what makes this tests special that it fails so spectaculaly like this?
#* in particular why does this SimilarityFactory change cause the directory ref counting to fail?
# why is recovery happening after shutdown?
# regardless of how/why the other things in the test go so bizare in the first place, what code path is leading to the SchemaSimilarityFactory that hasn't had {{.inform(SolrCore)}} called on it?


> TestCloudSchemaless fails weirdly if you try to use SolrCoreAware sim factory: SchemaSimilarityFactory 
> -------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-8280
>                 URL: https://issues.apache.org/jira/browse/SOLR-8280
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: Trunk
>            Reporter: Hoss Man
>         Attachments: SOLR-8280.patch
>
>
> Something about the code path(s) involved in TestCloudSchemaless doesn't play nicely with a SimilarityFactory that is SolrCoreAware -- notably: SchemaSimilarityFactory.
> I discovered this while trying to implement SOLR-8271, but it can be reproduced trivially by modifying the schema-add-schema-fields-update-processor.xml file used by TestCloudSchemaless to refer to SchemaSimilarityFactory explicitly.  Other cloud tests (such as CollectionReloadTest) or cloud+schemaless (ex: TestCloudManagedSchema) tests don't seem to demonstrate the same problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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