A jira sounds like a good idea. Even if this is buried somewhere, it's clearly not prominent enough.
On Jan 29, 2017 9:43 AM, "Steen Manniche" <[email protected]> wrote: > Hi Gary, > > thanks for taking the time to answer this. Indeed, from my tests, it seems > that throwing a CoprocessorException type is carried through to the client > and will not cause the HBase RegionServer to crash in the process. This is > great news, and will allow us to implement the application logic in a > coprocessor instead of outside the HBase service. > > I can only wonder why this isn't documented better both in the API docs > (which says nothing at all) as well as in the HBase book - not one mention > of the semantics of the CoprocessorException type. Would it be good to open > an issue on Jira regarding this? Or am I just overlooking where the > CoprocessorException is described? > > On Fri, Jan 27, 2017 at 6:31 PM, Gary Helmling <[email protected]> > wrote: > > > Did you try throwing CoprocessorException or making your custom > exception a > > subclass of it? These should be carried through to the client. > > > > Yes, for exceptions outside of this hierarchy, there is no way to know if > > the exception is recoverable or not, so the safe route is chosen and > either > > the regionserver will abort or the coprocessor will be unloaded, > depending > > on configuration. > > > > On Fri, Jan 27, 2017 at 12:55 AM Steen Manniche <[email protected]> > > wrote: > > > > > We have been using coprocessors to create secondary indexes as well as > > > doing some sanity checks on incoming data. > > > > > > Especially in the last case, we planned to use the prePut event to > reject > > > Puts to hbase that did not pass our sanity checks for incoming data. I > > had > > > expected being able to signal the client ingesting data into hbase via > > > throwing a custom exception, but learned that the regionserver the > > > coprocessor is installed on basically only have two options in the face > > of > > > a coprocessor throwing an exception: unloading the coprocessor or > > shutting > > > down. > > > > > > This behaviour surprises me since coprocessors almost by definition > > contain > > > application logic, and exceptions are a standard way of signalling in > > > application logic. Are there any plans to make the signal handling work > > > better wrt. clients in coprocessors? Or have I simply misunderstood the > > > intention of coprocessors here? > > > > > > Thanks in advance and best regards, > > > Steen Manniche > > > > > >
