Gary, "The coprocessor class is of course still in memory on the regionserver,...."
That was kinda my point. You can't remove the class from the RS until you do a rolling restart. And to your point... yeah I can see issues in trying to debug failures when you have failures that are data dependent. On Oct 21, 2013, at 9:06 PM, Gary Helmling <[email protected]> wrote: >> You can't remove a coprocessor. >> >> Well, you can, but that would require a rolling restart. >> >> It still exists and is still loaded. >> >> > Assuming we are talking about RegionObserver coprocessors here, when a > coprocessor throws an exception (other than IOException), it is either: > > a) removed from the list of active RegionObservers being invoked on the > region's operations > b) or if "hbase.coprocessor.abortonerror" is "true", the regionserver aborts > > The coprocessor class is of course still in memory on the regionserver, but > that instance will no longer be invoked in any pre/post hooks for > operations on that region. > > Back to the original question, the coprocessor is only removed from the > list of active coprocessors for the region(s) where it has thrown an > exception. It will still be active on any regions where it has not thrown > an exception. The opinions expressed here are mine, while they may reflect a cognitive thought, that is purely accidental. Use at your own risk. Michael Segel michael_segel (AT) hotmail.com
