Yeah. I've already run the test with two caches. Definately, the bug hidden in cache.query() method. cache.query() calls IgniteH2Indexing#queryLocalSql(), which calls executeSqlQueryWithTimer, and then it sinks into JdbcPreparedStatement.executeQuery(). There is no key-value operations subsequent
пн, 17 апр. 2017 г. в 21:15, Denis Magda <dma...@apache.org>: > It doesn’t matter who is right and who is wrong unless someone gets to the > bottom of the issue debugging it. > > I would suggest to create a simple unit test with two caches and trying to > reproduce the following without computations and other redundant stuff. > Would you like to work on this? > > — > Denis > > > On Apr 17, 2017, at 12:44 AM, ALEKSEY KUZNETSOV < > alkuznetsov...@gmail.com> wrote: > > > > Why do u think so. > > First of all, the output above is not correct. After 3 iteration > key-value > > API strats to return empty value. > > > > Every 5 seconds(iteration sleep time) > repository.getAttributes("1").size() > > is got called. Which makes an entry "touch" and the entry wont be expired > > for as long as 10 seconds. > > > > Expiry policy says: > > > > An {@link ExpiryPolicy} that defines the expiry {@link Duration} > > * of a Cache Entry based on when it was last touched. A touch includes > > ** creation, update or **access**.* > > > > > > пт, 14 апр. 2017 г. в 18:42, Denis Magda <dma...@apache.org>: > > > >> The iteration happens multiple time which means that the key-value API > had > >> to return an empty result set on second or third iteration. But this > never > >> happens. > >> > >> In any case, do you want to find a root of the issue and fix it? > >> Otherwise, we can update the description and wait while someone else > fixes > >> it. > >> > >> — > >> Denis > >> > >>> On Apr 14, 2017, at 1:33 AM, ALEKSEY KUZNETSOV < > alkuznetsov...@gmail.com> > >> wrote: > >>> > >>> Because expiry time is 10 seconds, while loop iterates every 5 seconds > >>> > >>> пт, 14 апр. 2017 г. в 11:32, ALEKSEY KUZNETSOV < > alkuznetsov...@gmail.com > >>> : > >>> > >>>> No, the bug is in SQL query, not key-value storage. > >>>> > >>>> пт, 14 апр. 2017 г. в 11:11, Vladislav Pyatkov <vldpyat...@gmail.com > >: > >>>> > >>>>> Denis, Aleksey, > >>>>> > >>>>> It is correct, remember I have already said something like[1]. > >>>>> I have no idea, why this happened in this case with SQL. > >>>>> > >>>>> [1]: > >>>>> > >>>>> > >> > http://apache-ignite-developers.2346864.n4.nabble.com/TouchedExpiryPolicy-works-incorrect-in-some-cases-IGNITE-4401-td16349.html#a16356 > >>>>> > >>>>> On Fri, Apr 14, 2017 at 4:29 AM, Denis Magda <dma...@apache.org> > >> wrote: > >>>>> > >>>>>> I could reproduce the issue and this should be what Denis K. meant > by > >>>>>> saying “expiration policy works incorrectly”. > >>>>>> > >>>>>> If you remove the expiration policy from the caches' configuration > >> then > >>>>>> the issue disappears. In general, SQL engine processes an expiration > >>>>> event > >>>>>> properly because the SQL queries return an empty result set as > >> expected > >>>>> but > >>>>>> something doesn’t work well with key-value operations. > >>>>>> > >>>>>> *Denis K*, *Vlad P.*, as creators of the ticket please confirm that > >> this > >>>>>> is the case. > >>>>>> > >>>>>> Please keep debugging this and switch to the latest Ignite version. > >>>>>> > >>>>>> — > >>>>>> Denis > >>>>>> > >>>>>> > >>>>>>> On Apr 13, 2017, at 4:22 AM, ALEKSEY KUZNETSOV < > >>>>> alkuznetsov...@gmail.com> > >>>>>> wrote: > >>>>>>> > >>>>>>> any feedback? > >>>>>>> > >>>>>>> чт, 13 апр. 2017 г. в 11:51, ALEKSEY KUZNETSOV < > >>>>> alkuznetsov...@gmail.com > >>>>>>> : > >>>>>>> > >>>>>>>> You should run ExpiryPolicyTest. The output should contain strings > >>>>> like > >>>>>>>> contains? new AffinityKey("1", "1"): and contains?2 new > >>>>>> AffinityKey("1", " > >>>>>>>> 1"): and empty cursor? = > >>>>>>>> If you look at them you will see, that cache contains affinity key > >>>>> new > >>>>>>>> AffinityKey("1", "1") whereas cursor is empty(on second > iteration). > >>>>> From > >>>>>>>> this output you can conclude SQL query returns icorrect data(empty > >>>>>> value) > >>>>>>>> > >>>>>>>> > >>>>>>>> чт, 13 апр. 2017 г. в 3:42, Denis Magda <dma...@apache.org>: > >>>>>>>> > >>>>>>>>> Bluntly speaking I have no idea where to look and what to expect. > >>>>> This > >>>>>> is > >>>>>>>>> output of the test execution of my machine: > >>>>>>>>> > >>>>>>>>> SQL res: [[1], [d]] > >>>>>>>>> 2 > >>>>>>>>> Op consume: 303 > >>>>>>>>> Value: org.ignite.test.EDU@22db8f4 > >>>>>>>>> SQL res: [] > >>>>>>>>> 0 > >>>>>>>>> Op consume: 9 > >>>>>>>>> Value: org.ignite.test.EDU@29caf222 > >>>>>>>>> SQL res: [] > >>>>>>>>> 0 > >>>>>>>>> Op consume: 15 > >>>>>>>>> Value: org.ignite.test.EDU@7cd1ac19 > >>>>>>>>> SQL res: [] > >>>>>>>>> 0 > >>>>>>>>> Op consume: 5 > >>>>>>>>> > >>>>>>>>> Please be more specific, there are too many files in the code. > >>>>>>>>> > >>>>>>>>> — > >>>>>>>>> Denis > >>>>>>>>> > >>>>>>>>>> On Apr 12, 2017, at 4:50 AM, ALEKSEY KUZNETSOV < > >>>>>>>>> alkuznetsov...@gmail.com> wrote: > >>>>>>>>>> > >>>>>>>>>> So what do u think about the issue ? > >>>>>>>>>> > >>>>>>>>>> ср, 12 апр. 2017 г. в 10:42, ALEKSEY KUZNETSOV < > >>>>>>>>> alkuznetsov...@gmail.com>: > >>>>>>>>>> > >>>>>>>>>>> I have already attached simlified version. Shall i simplify it > >>>>> more ? > >>>>>>>>>>> > >>>>>>>>>>> вт, 11 апр. 2017 г. в 19:28, Denis Magda <dma...@apache.org>: > >>>>>>>>>>> > >>>>>>>>>>> Can you attach the simplified version? Just want to avoid any > >> side > >>>>>>>>> effects. > >>>>>>>>>>> > >>>>>>>>>>> — > >>>>>>>>>>> Denis > >>>>>>>>>>> > >>>>>>>>>>>> On Apr 11, 2017, at 9:14 AM, ALEKSEY KUZNETSOV < > >>>>>>>>> alkuznetsov...@gmail.com> > >>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> I took it from > >> https://issues.apache.org/jira/browse/IGNITE-4401 > >>>>> < > >>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-4401> and > >>>>> simplified . > >>>>>>>>> See > >>>>>>>>>>> in attached > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> вт, 11 апр. 2017 г. в 19:03, Denis Magda <dma...@apache.org > >>>>>> <mailto: > >>>>>>>>>>> dma...@apache.org>>: > >>>>>>>>>>>> Hello, > >>>>>>>>>>>> > >>>>>>>>>>>> Do you have sample code? > >>>>>>>>>>>> > >>>>>>>>>>>> — > >>>>>>>>>>>> Denis > >>>>>>>>>>>>> On Apr 11, 2017, at 2:45 AM, ALEKSEY KUZNETSOV < > >>>>>>>>>>> alkuznetsov...@gmail.com <mailto:alkuznetsov...@gmail.com>> > >>>>> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>> Hi, igniters! > >>>>>>>>>>>>> While doing > https://issues.apache.org/jira/browse/IGNITE-4401 > >> < > >>>>>>>>>>> https://issues.apache.org/jira/browse/IGNITE-4401> ticket i > came > >>>>>>>>>>>>> across the fact that cache querying returns null , while > cache > >>>>>> still > >>>>>>>>>>> has > >>>>>>>>>>>>> got entry. > >>>>>>>>>>>>> Cache query : SELECT nameProp FROM EDUProp WHERE EDUId = 1 > >>>>>>>>>>>>> Cache get operation : ignite().cache("eduPropCache").get(new > >>>>>>>>>>> AffinityKey("1", > >>>>>>>>>>>>> "1")) non-null > >>>>>>>>>>>>> I cannot even imagine what could be wrong with it. > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> -- > >>>>>>>>>>>>> > >>>>>>>>>>>>> *Best Regards,* > >>>>>>>>>>>>> > >>>>>>>>>>>>> *Kuznetsov Aleksey* > >>>>>>>>>>>> > >>>>>>>>>>>> -- > >>>>>>>>>>>> Best Regards, > >>>>>>>>>>>> > >>>>>>>>>>>> Kuznetsov Aleksey > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> -- > >>>>>>>>>>> > >>>>>>>>>>> *Best Regards,* > >>>>>>>>>>> > >>>>>>>>>>> *Kuznetsov Aleksey* > >>>>>>>>>>> > >>>>>>>>>> -- > >>>>>>>>>> > >>>>>>>>>> *Best Regards,* > >>>>>>>>>> > >>>>>>>>>> *Kuznetsov Aleksey* > >>>>>>>>> > >>>>>>>>> -- > >>>>>>>> > >>>>>>>> *Best Regards,* > >>>>>>>> > >>>>>>>> *Kuznetsov Aleksey* > >>>>>>>> > >>>>>>> -- > >>>>>>> > >>>>>>> *Best Regards,* > >>>>>>> > >>>>>>> *Kuznetsov Aleksey* > >>>>>> > >>>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Vladislav Pyatkov > >>>>> > >>>> -- > >>>> > >>>> *Best Regards,* > >>>> > >>>> *Kuznetsov Aleksey* > >>>> > >>> -- > >>> > >>> *Best Regards,* > >>> > >>> *Kuznetsov Aleksey* > >> > >> -- > > > > *Best Regards,* > > > > *Kuznetsov Aleksey* > > -- *Best Regards,* *Kuznetsov Aleksey*