ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ilya Kasnacheev <ilya.kasnach...@gmail.com>
Subject Re: Why does DataStreamer swallow exceptions?
Date Thu, 15 Mar 2018 10:25:59 GMT
Hello!

I have filed an issue https://issues.apache.org/jira/browse/IGNITE-7962 -
going to work on it soon.

I have also filed a ticket about usability issue:
https://issues.apache.org/jira/browse/IGNITE-7963
Feedback is appreciated.

Regards,

-- 
Ilya Kasnacheev

2018-03-14 23:35 GMT+03:00 Valentin Kulichenko <
valentin.kulichenko@gmail.com>:

> Ilya,
>
> Yes, this is definitely a bug, please create a ticket.
>
> -Val
>
> On Wed, Mar 14, 2018 at 2:16 AM, Ilya Kasnacheev <
> ilya.kasnacheev@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.kulichenko@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 <nizhikov@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?
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message