Username: sharpler Full Name: Alexander Menshikov
2016-12-27 22:57 GMT+03:00 Denis Magda <dma...@apache.org>: > Alexander, > > I need to know your JIRA ID in order to add you to the contributors list. > > As for your questions, this situation might be caused by the race when a > cache is being stopped and there are still scan queries running in > parallel. So, in general it’s not about data loss. > > Sam, Alex G., could you share your thoughts in regards to the proper fix? > > — > Denis > > > On Dec 26, 2016, at 2:43 AM, Александр Меньшиков <sharple...@gmail.com> > wrote: > > > > Hello everyone. > > > > I want to pick up *https://issues.apache.org/jira/browse/IGNITE-4487 > > <https://issues.apache.org/jira/browse/IGNITE-4487>* as my > > first issue. > > > > Please add me as contributor. > > > > I already found that: in inner class > > 'GridCacheQueryAdapter.ScanQueryFallbackClosableIterator' in > constructor is > > called with method 'init()', but method 'init()' cannot be called with an > > empty field 'nodes'. In source code it looks like: > > > > private ScanQueryFallbackClosableIterator(int part, > GridCacheQueryAdapter > > qry, > > GridCacheQueryManager qryMgr, GridCacheContext cctx) { > > this.qry = qry; > > this.qryMgr = qryMgr; > > this.cctx = cctx; > > this.part = part; > > > > nodes = fallbacks(cctx.discovery().topologyVersionEx()); > > // !!! Here nodes.isEmpty()==true, and init() will fail in the > > future. !!! > > init(); > > } > > > > I can fix it by adding some check in code, but i must know what behavior > > are best in this case? As I understand it, the list of nodes is empty if > > there are no nodes with the current partition, which means data loss, and > > either need to return a meaningful exception, or ignore this situation. > But > > maybe I missed something. > >