Ilya,

Yes, this is definitely a bug, please create a ticket.

-Val

On Wed, Mar 14, 2018 at 2:16 AM, Ilya Kasnacheev <ilya.kasnach...@gmail.com>
wrote:

> Hello Val!
>
> No, this does NOT happen. If you collect future, call get() on it later, it
> will finish normally despite exceptions in server log and entry not being
> written. I will do some digging to figure out why this happens exactly.
>
> There's also another huge problems with DataStreamer's futures. They never
> finish unless you call flush() on DS before calling get() on futures.
> I think this is a colossal usability problem (I'm pretty sure I've seen
> numerous messages about it on userlist) and I'll fill an issue if nobody is
> objecting.
>
> Ilya.
>
> --
> Ilya Kasnacheev
>
> 2018-03-05 22:50 GMT+03:00 Valentin Kulichenko <
> valentin.kuliche...@gmail.com>:
>
> > Ilya,
> >
> > IgniteDataStreamer#addData method returns future which should be
> completed
> > with error if one is thrown on server side. Does this happen or not?
> >
> > -Val
> >
> > On Mon, Mar 5, 2018 at 4:10 AM, Nikolay Izhikov <nizhi...@apache.org>
> > wrote:
> >
> > > Hello, Ilya.
> > >
> > > > I think it's time to end this, if that was the case. DataStreamer
> > should
> > > > not be a special case and it should guarantee data safety. WDYT?
> > >
> > > +1 from me.
> > >
> > > I'm also facing this issue.
> > >
> > > Ticket - https://issues.apache.org/jira/browse/IGNITE-7756
> > > Discussion - http://apache-ignite-developers.2346864.n4.nabble.
> > > com/IgniteDataStreamer-silently-fails-on-a-server-node-td27239.html
> > >
> > >
> > >
> > > В Пн, 05/03/2018 в 14:46 +0300, Ilya Kasnacheev пишет:
> > > > Dear Igniters, why do I have a hunch that DataStreamer would readily
> > > > swallow exceptions?
> > > >
> > > > DataStreamerImpl:1756 swallows marshalling error, lines 1774 & 1781
> eat
> > > > deployment errors.
> > > >
> > > > Some people are worried they can fill a leaking vessel without
> noticing
> > > > anything off.
> > > > Also in line 2156 fsync() on WAL can throw exceptions, which will be
> > > > swallowed, and IMP this fsync doesn't belong to DataStreamer code.
> > > >
> > > > This question is not purely theoretical, we have also replaced one of
> > > these
> > > > eaters with throw with IGNITE-7519.
> > > >
> > > > There was a fault in PDS implementation, which did not propagate to
> > > client.
> > > > A serious issue IMHO.
> > > >
> > > > As a data streamer user I will expect that flush()/close() will throw
> > any
> > > > pending exceptions and will only be silent if all data landed safely
> in
> > > the
> > > > cluster.
> > > >
> > > > I also have this feeling that DataStreamer was written using very
> > > internal
> > > > APIs so that it can compromise guarantees that cache and SQL APIs are
> > > bound
> > > > by. I think I've heard something about not recovering properly in
> case
> > of
> > > > node failures.
> > > > I think it's time to end this, if that was the case. DataStreamer
> > should
> > > > not be a special case and it should guarantee data safety. WDYT?
> > > >
> > >
> >
>

Reply via email to