[ https://issues.apache.org/jira/browse/SOLR-13068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16720449#comment-16720449 ]
ASF subversion and git services commented on SOLR-13068: -------------------------------------------------------- Commit 46516b7077a52b4df9fbf640c17e30d8d8d012fe in lucene-solr's branch refs/heads/master from Chris Hostetter [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=46516b7 ] SOLR-13068: Update many cloud/autoscaling tests to use TimeSource.NANO_TIME (instead of CURRENT_TIME) for comparisons as much as possible, the tests actual use the time source directly from the cluster, so that even if the cluster is changed to use an alternate time source, the tests will be consistent > many cloud/autoscaling tests are using System.currentTimeMillis() for timing > comparisons (under the covers) > ----------------------------------------------------------------------------------------------------------- > > Key: SOLR-13068 > URL: https://issues.apache.org/jira/browse/SOLR-13068 > 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-13068.patch, SOLR-13068.patch > > > After rewriting TriggerSetPropertiesIntegrationTest in SOLR-13054 to use > better concurrency handling/signalling and log the timestamps the triggers > were firing at, i noticed we stil got a failure from Uwe's "Windows" jenkins > machine (on the http2 branch, but after my fix was merged to that branch. > The nature of the failure seemed to suggest that the JVM's > {{ScheduledExecutorService.scheduleWithFixedDelay}} wasn't living up to it's > contract -- and was running successive iterations before the full delay had > lapsed. > But then i realized that in spite of using {{timeSource.getTimeNs()}} in the > test, the TimeSource (being used in the test) was a lie -- and under the > covers {{System.currentTimeInMillis}} is being used (via > {{TimeSource.CURRENT_TIME}} ) ... which IIUC is susceptible to clock drift, > particularly in VMs like those used on Uwe's jenkins machines... > Any code in the following tests that relies on the TimeSource for doing > comparisons or delta calculations should be suspect... > {noformat} > hossman@tray:~/lucene/dev [master] $ find solr/core/src/test -name \*.java | > xargs grep CURRENT_TIME > solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerTest.java: > private static final TimeSource timeSource = TimeSource.CURRENT_TIME; > solr/core/src/test/org/apache/solr/cloud/autoscaling/ExecutePlanActionTest.java: > "mock_trigger_name", > Collections.singletonList(TimeSource.CURRENT_TIME.getTimeNs()), > solr/core/src/test/org/apache/solr/cloud/autoscaling/TriggerIntegrationTest.java: > static final TimeSource timeSource = TimeSource.CURRENT_TIME; > solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerTest.java: > private final TimeSource timeSource = TimeSource.CURRENT_TIME; > solr/core/src/test/org/apache/solr/cloud/autoscaling/sim/TestSimExecutePlanAction.java: > "mock_trigger_name", > Collections.singletonList(TimeSource.CURRENT_TIME.getTimeNs()), > solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java: TimeOut > timeOut = new TimeOut(ms, TimeUnit.MILLISECONDS, TimeSource.CURRENT_TIME); > solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java: > TimeOut timeOut = new TimeOut(10, TimeUnit.SECONDS, TimeSource.CURRENT_TIME); > solr/core/src/test/org/apache/solr/cloud/TestCloudConsistency.java: > TimeOut timeOut = new TimeOut(10, TimeUnit.SECONDS, TimeSource.CURRENT_TIME); > hossman@tray:~/lucene/dev [master] $ find -name \*.java | xargs grep > TriggerIntegrationTest.timeSource > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/SearchRateTriggerIntegrationTest.java:import > static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.timeSource; > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/TriggerSetPropertiesIntegrationTest.java:import > static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.timeSource; > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/RestoreTriggerStateTest.java:import > static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.timeSource; > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeLostTriggerIntegrationTest.java: > long currentTimeNanos = > TriggerIntegrationTest.timeSource.getTimeNs(); > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/MetricTriggerIntegrationTest.java:import > static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.timeSource; > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/NodeAddedTriggerIntegrationTest.java: > long currentTimeNanos = > TriggerIntegrationTest.timeSource.getTimeNs(); > ./solr/core/src/test/org/apache/solr/cloud/autoscaling/TriggerCooldownIntegrationTest.java:import > static org.apache.solr.cloud.autoscaling.TriggerIntegrationTest.timeSource; > {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org