I agree it is important, I'm going to do a review, but do not have time slot to do.
Who could pick up this review? Dmitriy G., could I ask you? пн, 19 мар. 2018 г. в 15:13, Maxim Muzafarov <maxmu...@gmail.com>: > Dmitry and other igniters, > > Will you have time to review this issue? > I've preperated PR and TC for this, also I've fixed all comments made by > Andrey Kuznetsov and Vyacheslav Daradur. > > I think this is important issue and will make test framework more stable > and clear. > > > TC: https://ci.ignite.apache.org/viewLog.html?buildId=1138151 > JIRA: https://issues.apache.org/jira/browse/IGNITE-6842 > Upsource: https://reviews.ignite.apache.org/ignite/review/IGNT-CR-502 > PR: https://github.com/apache/ignite/pull/3542 > > чт, 15 мар. 2018 г. в 13:31, Maxim Muzafarov <maxmu...@gmail.com>: > >> Dmtry, >> >> Can we proceed with this change? >> I've done with fixing review comments and tests that you mentioned before. >> >> TC: https://ci.ignite.apache.org/viewLog.html?buildId=1138151 >> JIRA: https://issues.apache.org/jira/browse/IGNITE-6842 >> Upsource: https://reviews.ignite.apache.org/ignite/review/IGNT-CR-502 >> PR: https://github.com/apache/ignite/pull/3542 >> >> >> >> вт, 6 мар. 2018 г. в 20:42, Dmitry Pavlov <dpavlov....@gmail.com>: >> >>> Ok, thank you. >>> >>> Please let me know when we can proceed with review >>> https://reviews.ignite.apache.org/ignite/review/IGNT-CR-502 >>> >>> >>> вт, 6 мар. 2018 г. в 20:17, Maxim Muzafarov <maxmu...@gmail.com>: >>> >>> > Hello Dmitry, >>> > >>> > Yes, I've updated test classes as you metioned before. >>> > Now i'm fixing review comments. Within next few days I'll prepare final >>> > version of this PR. >>> > >>> > вт, 6 мар. 2018 г. в 20:12, Dmitry Pavlov <dpavlov....@gmail.com>: >>> > >>> > > Hi Maxim, >>> > > >>> > > are there any news on these test fails? >>> > > >>> > > Is issue ready for review? >>> > > >>> > > Sincerely, >>> > > Dmitiry Pavlov >>> > > >>> > > вт, 27 февр. 2018 г. в 17:12, Dmitry Pavlov <dpavlov....@gmail.com>: >>> > > >>> > > > Hi, thank you! >>> > > > >>> > > > I've found several suspicious fails: such test fails have rate less >>> > than >>> > > > 1%, it is probably new failures. >>> > > > >>> > > > It would be great if we can fix it before merge. Could you address >>> this >>> > > > fails? >>> > > > >>> > > > Sincerely, >>> > > > Dmitriy Pavlov >>> > > > >>> > > > IgniteCacheTestSuite5: IgniteCacheStoreCollectionTest.testStoreMap >>> > (fail >>> > > > rate 0,0%) >>> > > > IgniteCacheTestSuite5: >>> > > > CacheLateAffinityAssignmentTest.testDelayAssignmentClientJoin (fail >>> > rate >>> > > > 0,0%) >>> > > > IgniteCacheWithIndexingTestSuite: >>> > > > CacheRandomOperationsMultithreadedTest.testAtomicOffheapEviction >>> (fail >>> > > rate >>> > > > 0,0%) >>> > > > IgniteCacheWithIndexingTestSuite: >>> > > > >>> > >>> CacheRandomOperationsMultithreadedTest.testAtomicOffheapEvictionIndexing >>> > > > (fail rate 0,0%) >>> > > > IgniteCacheWithIndexingTestSuite: >>> > > > CacheRandomOperationsMultithreadedTest.testTxOffheapEviction (fail >>> rate >>> > > > 0,0%) >>> > > > IgniteCacheWithIndexingTestSuite: >>> > > > >>> CacheRandomOperationsMultithreadedTest.testTxOffheapEvictionIndexing >>> > > (fail >>> > > > rate 0,0%) >>> > > > >>> > > > IgniteBinarySimpleNameMapperCacheFullApiTestSuite: >>> > > > >>> > > >>> > >>> GridCachePartitionedNearDisabledMultiNodeWithGroupFullApiSelfTest.testWithSkipStoreTx >>> > > > (fail rate 0,0%) >>> > > > >>> > > > вт, 27 февр. 2018 г. в 17:04, Maxim Muzafarov <maxmu...@gmail.com >>> >: >>> > > > >>> > > >> Yep, link may not be correct. >>> > > >> >>> > > >> Here is correct version: >>> > > >> TC: * >>> > > >> >>> > > >>> > >>> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&branch_IgniteTests24Java8=pull%2F3542%2Fhead >>> > > >> < >>> > > >> >>> > > >>> > >>> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&branch_IgniteTests24Java8=pull%2F3542%2Fhead >>> > > >> >* >>> > > >> >>> > > >> >>> > > >> вт, 27 февр. 2018 г. в 16:41, Dmitry Pavlov < >>> dpavlov....@gmail.com>: >>> > > >> >>> > > >> > Hi Maxim, >>> > > >> > >>> > > >> > could you please provide link to TC run on your PR? It seems >>> link >>> > > >> provided >>> > > >> > points to run of master. In changes field you may select >>> > > pull/3542/head >>> > > >> > before starting RunAll. >>> > > >> > >>> > > >> > Igniters, >>> > > >> > >>> > > >> > this change is related to our test framework, so change may >>> affect >>> > > your >>> > > >> > tests. Please join to review >>> > > >> > https://reviews.ignite.apache.org/ignite/review/IGNT-CR-502 >>> > > >> > >>> > > >> > Sincerely, >>> > > >> > Dmitriy Pavlov >>> > > >> > >>> > > >> > вт, 27 февр. 2018 г. в 16:14, Maxim Muzafarov < >>> maxmu...@gmail.com>: >>> > > >> > >>> > > >> > > Hi all, >>> > > >> > > >>> > > >> > > I think, I've done with this issue, what should we do next? >>> > > >> > > >>> > > >> > > PR: https://github.com/apache/ignite/pull/3542 >>> > > >> > > Upsource: >>> > > https://reviews.ignite.apache.org/ignite/review/IGNT-CR-502 >>> > > >> > > TC: >>> > > >> > > >>> > > >> > > >>> > > >> > >>> > > >> >>> > > >>> > >>> https://ci.ignite.apache.org/viewModification.html?modId=723895&personal=false&buildTypeId=&tab=vcsModificationTests >>> > > >> > > JIRA: https://issues.apache.org/jira/browse/IGNITE-6842 >>> > > >> > > >>> > > >> > > >>> > > >> > > чт, 22 февр. 2018 г. в 14:12, Dmitry Pavlov < >>> > dpavlov....@gmail.com >>> > > >: >>> > > >> > > >>> > > >> > > > Hi Maxim, >>> > > >> > > > >>> > > >> > > > Thank you. >>> > > >> > > > >>> > > >> > > > To my mind stopAllGrids call should be kept in >>> afterTestsStop(). >>> > > If >>> > > >> > > > developer forgot to call super(), he will see exception from >>> > > >> > > > beforeTestsStart() >>> > > >> > > > added by you. >>> > > >> > > > >>> > > >> > > > If you think patch is ready to be reviewed, please change >>> JIRA >>> > > >> status >>> > > >> > to >>> > > >> > > > "Patch Available". >>> > > >> > > > >>> > > >> > > > Optionally you can create Upsource review. It would be >>> easier >>> > for >>> > > >> > > multiple >>> > > >> > > > reviewers to handle this patch. This test framework is used >>> by >>> > all >>> > > >> > > Igniters >>> > > >> > > > so Upsource would be good option ( >>> > > >> https://reviews.ignite.apache.org/ >>> > > >> > ). >>> > > >> > > > >>> > > >> > > > Sincerely, >>> > > >> > > > Dmitriy Pavlov >>> > > >> > > > >>> > > >> > > > чт, 22 февр. 2018 г. в 13:44, Maxim Muzafarov < >>> > maxmu...@gmail.com >>> > > >: >>> > > >> > > > >>> > > >> > > > > Hi all, >>> > > >> > > > > >>> > > >> > > > > I've made some changes based on our previous discusstions, >>> > > please >>> > > >> see >>> > > >> > > PR >>> > > >> > > > > [1]: >>> > > >> > > > > 1) Remove duplicated code for stopGrid (by index and by >>> name); >>> > > >> > > > > 2) Add new method that thows exception if not all grids >>> > haven't >>> > > >> > stopped >>> > > >> > > > > correctly; >>> > > >> > > > > 3) Change tests that have been affected by this changes; >>> > > >> > > > > >>> > > >> > > > > Also, I have some thoughts for clarification: >>> > > >> > > > > 1) beforeTestsStart() - I expect here in subtests that >>> grids >>> > are >>> > > >> not >>> > > >> > > > > started yet. Am I right? >>> > > >> > > > > 2) I think we should call stopAllGrids in tearDown >>> method. So, >>> > > if >>> > > >> in >>> > > >> > > some >>> > > >> > > > > cases we'll override afterTestsStop in subclasses and >>> forgot >>> > to >>> > > >> call >>> > > >> > > > > super() it won't lead us to exception. >>> > > >> > > > > >>> > > >> > > > > [1] https://github.com/apache/ignite/pull/3542 >>> > > >> > > > > [2] >>> > > >> https://ci.ignite.apache.org/viewModification.html?modId=717275 >>> > > >> > > > > [3] https://issues.apache.org/jira/browse/IGNITE-6842 >>> > > >> > > > > >>> > > >> > > > > >>> > > >> > > > > ср, 7 февр. 2018 г. в 18:28, Maxim Muzafarov < >>> > > maxmu...@gmail.com >>> > > >> >: >>> > > >> > > > > >>> > > >> > > > > > Thank you all, >>> > > >> > > > > > >>> > > >> > > > > > I'll add this comment's for JIRA ticket, if you don't >>> mind. >>> > > >> > > > > > >>> > > >> > > > > > ср, 7 февр. 2018 г. в 15:16, Dmitry Pavlov < >>> > > >> dpavlov....@gmail.com >>> > > >> > >: >>> > > >> > > > > > >>> > > >> > > > > >> Yes, this solution allows to cover both cases: >>> > > >> > > > > >> a) not stopped node from previous test and >>> > > >> > > > > >> b) allows to remove useless code that stops Ignite >>> nodes >>> > from >>> > > >> each >>> > > >> > > > test. >>> > > >> > > > > >> >>> > > >> > > > > >> ср, 7 февр. 2018 г. в 15:13, Anton Vinogradov < >>> > > >> > > > avinogra...@gridgain.com >>> > > >> > > > > >: >>> > > >> > > > > >> >>> > > >> > > > > >> > Maxim, >>> > > >> > > > > >> > >>> > > >> > > > > >> > We discussed with Dima privately, and decided >>> > > >> > > > > >> > >>> > > >> > > > > >> > 1) We have to assert that there is no alive nodes at >>> > > >> > > > > GridAbstractTest's >>> > > >> > > > > >> > beforeTestsStarted >>> > > >> > > > > >> > 2) We have to kill all alive nodes (without force) at >>> > > >> > > > > GridAbstractTest's >>> > > >> > > > > >> > afterTestsStopped >>> > > >> > > > > >> > 3) In case of any exceptions at #2 we have to see >>> test >>> > > error >>> > > >> > > > > >> > 4) We can get rid of all useless stopAllGrids at >>> > > >> > > GridAbstractTest's >>> > > >> > > > > >> > subclasses. >>> > > >> > > > > >> > >>> > > >> > > > > >> > >>> > > >> > > > > >> > >>> > > >> > > > > >> > On Wed, Feb 7, 2018 at 2:32 PM, Dmitry Pavlov < >>> > > >> > > > dpavlov....@gmail.com> >>> > > >> > > > > >> > wrote: >>> > > >> > > > > >> > >>> > > >> > > > > >> > > > Let's just add stopAllGrids(flase) to >>> > GridAbstractTest >>> > > 's >>> > > >> > > > > >> > > afterTestsStopped >>> > > >> > > > > >> > > method body. >>> > > >> > > > > >> > > >>> > > >> > > > > >> > > Can't agree with it becase implicit silent >>> shutdown of >>> > > >> nodes >>> > > >> > > from >>> > > >> > > > > test >>> > > >> > > > > >> > > framework may cause a lot of bugs introduced to >>> Ignite. >>> > > >> > > > > >> > > >>> > > >> > > > > >> > > I think stop+test fail should occur. >>> > > >> > > > > >> > > In that case author of incorrect test or not >>> consistent >>> > > >> Ignite >>> > > >> > > > > >> shutdown >>> > > >> > > > > >> > > will see problem. >>> > > >> > > > > >> > > >>> > > >> > > > > >> > > 'Fail fast' if always better than hidding real >>> problem >>> > > >> under >>> > > >> > > > > automatic >>> > > >> > > > > >> > > framework feature. >>> > > >> > > > > >> > > >>> > > >> > > > > >> > > ср, 7 февр. 2018 г. в 14:05, Anton Vinogradov < >>> > > >> > > > > >> avinogra...@gridgain.com >>> > > >> > > > > >> > >: >>> > > >> > > > > >> > > >>> > > >> > > > > >> > > > Hi all, >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > > I've made some research about this problem and >>> i >>> > > think >>> > > >> > that >>> > > >> > > in >>> > > >> > > > > >> > general >>> > > >> > > > > >> > > we >>> > > >> > > > > >> > > > > should move stopAllGrids method in >>> GridAbstractTest >>> > > >> class >>> > > >> > to >>> > > >> > > > > >> > > > > afterTestsStopped method with some changes. Am >>> I >>> > > right? >>> > > >> > > > > >> > > > Let's just add stopAllGrids(flase) to >>> > GridAbstractTest >>> > > 's >>> > > >> > > > > >> > > > afterTestsStopped method >>> > > >> > > > > >> > > > body. >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > > I have a question about stopAllGrids(boolean >>> > cancel) >>> > > >> this >>> > > >> > > > > "cancel" >>> > > >> > > > > >> > > > That's just a flag means "do not wait for any >>> > > operations >>> > > >> > > finish" >>> > > >> > > > > >> > > > See no reason to set it true in that case. >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > > If you delegate closing to afterTestsStopped >>> this >>> > > will >>> > > >> > > affect >>> > > >> > > > > only >>> > > >> > > > > >> > > > > last test (method). >>> > > >> > > > > >> > > > The idea is to stop all nodes at last test's >>> method >>> > > >> finish. >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > > Nodes that survive between tests can affect >>> > > successive >>> > > >> > > > > >> > > > tests. >>> > > >> > > > > >> > > > Thats ok. we have a lot tests where nodes >>> reusable >>> > > >> between >>> > > >> > > > test's >>> > > >> > > > > >> > > methods. >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > On Wed, Feb 7, 2018 at 1:20 PM, Dmitry Pavlov < >>> > > >> > > > > >> dpavlov....@gmail.com> >>> > > >> > > > > >> > > > wrote: >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > > > Hi Igniters, >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > > IMO nodes that survive between tests is not >>> general >>> > > >> > practice >>> > > >> > > > and >>> > > >> > > > > >> I'm >>> > > >> > > > > >> > > not >>> > > >> > > > > >> > > > > sure is a best practice. I suggest to mark such >>> > tests >>> > > >> with >>> > > >> > > > some >>> > > >> > > > > >> > method >>> > > >> > > > > >> > > > > overriden from AbstractTest. >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > > About cancel flag, please note >>> stopAllGrids(boolean >>> > > >> > cancel) >>> > > >> > > > > >> > > cancel=false >>> > > >> > > > > >> > > > > allows to wait of checkpoint ends in case >>> > persistence >>> > > >> > > enabled. >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > > I still suggest to avoid stopping any nodes by >>> > test, >>> > > >> but >>> > > >> > > > > validate >>> > > >> > > > > >> not >>> > > >> > > > > >> > > > > stopped node exist and fail test instead of >>> siltent >>> > > >> > implicit >>> > > >> > > > > >> actions. >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > > Sincerely, >>> > > >> > > > > >> > > > > Dmitriy Pavlov >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > > ср, 7 февр. 2018 г. в 13:04, Andrey Kuznetsov < >>> > > >> > > > > stku...@gmail.com >>> > > >> > > > > >> >: >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > > > Hi Maxim, >>> > > >> > > > > >> > > > > > >>> > > >> > > > > >> > > > > > Regarding your first question, the use of >>> > > >> > > afterTestsStopped >>> > > >> > > > is >>> > > >> > > > > >> not >>> > > >> > > > > >> > > > enough >>> > > >> > > > > >> > > > > > to stop all nodes, since each individual test >>> > > >> (method) >>> > > >> > can >>> > > >> > > > > start >>> > > >> > > > > >> > > custom >>> > > >> > > > > >> > > > > set >>> > > >> > > > > >> > > > > > of notes during its operation, and this very >>> test >>> > > >> should >>> > > >> > > > stop >>> > > >> > > > > >> all >>> > > >> > > > > >> > > those >>> > > >> > > > > >> > > > > > nodes. If you delegate closing to >>> > afterTestsStopped >>> > > >> this >>> > > >> > > > will >>> > > >> > > > > >> > affect >>> > > >> > > > > >> > > > only >>> > > >> > > > > >> > > > > > last test (method). Nodes that survive >>> between >>> > > tests >>> > > >> can >>> > > >> > > > > affect >>> > > >> > > > > >> > > > > successive >>> > > >> > > > > >> > > > > > tests. >>> > > >> > > > > >> > > > > > >>> > > >> > > > > >> > > > > > 2018-02-07 1:10 GMT+03:00 Maxim Muzafarov < >>> > > >> > > > maxmu...@gmail.com >>> > > >> > > > > >: >>> > > >> > > > > >> > > > > > >>> > > >> > > > > >> > > > > > > Hello, >>> > > >> > > > > >> > > > > > > >>> > > >> > > > > >> > > > > > > I've made some research about this problem >>> and >>> > i >>> > > >> think >>> > > >> > > > that >>> > > >> > > > > in >>> > > >> > > > > >> > > > general >>> > > >> > > > > >> > > > > we >>> > > >> > > > > >> > > > > > > should move stopAllGrids method in >>> > > GridAbstractTest >>> > > >> > > class >>> > > >> > > > to >>> > > >> > > > > >> > > > > > > afterTestsStopped method with some >>> changes. Am >>> > I >>> > > >> > right? >>> > > >> > > > > >> > > > > > > >>> > > >> > > > > >> > > > > > > Also, I have a question about >>> > > stopAllGrids(boolean >>> > > >> > > cancel) >>> > > >> > > > > >> this >>> > > >> > > > > >> > > > > "cancel" >>> > > >> > > > > >> > > > > > > argument. Why in some cases we should >>> interrupt >>> > > >> > > ComputeJob >>> > > >> > > > > >> and in >>> > > >> > > > > >> > > > some >>> > > >> > > > > >> > > > > > > cases shouldn't? For example here: >>> > > >> > > > > >> > > > > > > >>> > > >> IgniteBaselineAffinityTopologyActivationTest#afterTest >>> > > >> > > > > >> > > > > > > we call method stopAllGrids(false) this >>> way. >>> > Why >>> > > >> not >>> > > >> > > > "true" >>> > > >> > > > > >> > > argument >>> > > >> > > > > >> > > > > > > instead? >>> > > >> > > > > >> > > > > > > >>> > > >> > > > > >> > > > > > > >>> > > >> > > > > >> > > > > > > -- >>> > > >> > > > > >> > > > > > Best regards, >>> > > >> > > > > >> > > > > > Andrey Kuznetsov. >>> > > >> > > > > >> > > > > > >>> > > >> > > > > >> > > > > >>> > > >> > > > > >> > > > >>> > > >> > > > > >> > > >>> > > >> > > > > >> > >>> > > >> > > > > >> >>> > > >> > > > > > >>> > > >> > > > > >>> > > >> > > > >>> > > >> > > >>> > > >> > >>> > > >> >>> > > > >>> > > >>> > >>> >>