Agree we should throw a UserRpcException. This used to be the pattern
everywhere before we added an accommodation to support non-connection
terminating exceptions. I came to the conclusion that the Ack.Fail pattern
was actually an anti-pattern since it requires the sender to check the
nature of the message to determine if it was successful and makes things
like outcome listeners much more complicated. I thought we fixed this
everywhere but apparently not.
--
Jacques Nadeau
CTO and Co-Founder, Dremio
On Wed, Jan 6, 2016 at 3:57 PM, Abdel Hakim Deneche <adeneche@maprtech.com>
wrote:
> Looking at DataServer.send() when we hit an IOException or a
> FragmentSetupException we log the error and return a FAILED acknowledgment
> to the sender. The query fails and displays a generic "Data not accepted
> downstream" message instead of the real exception.
>
> Is there a specific reason we do it this way ? Why not just throw an
> exception and let the RPC layer propagate the root cause to the sender ?
>
> Thanks
>
> --
>
> Abdelhakim Deneche
>
> Software Engineer
>
> <http://www.mapr.com/>
>
>
> Now Available - Free Hadoop On-Demand Training
> <http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available>
>
|