Description
HBASE-804 was not about the good problem, this one is. Anyone that iterates through the results of a scanner and that rewrites data back into the row at each iteration will hit a UnknownScannerException if a split occurs. See the stack in the referred jira. Timeline :
Split occurs, acquires a write lock and waits for scanners to finish
The scanner in the custom code iterates and writes data until the write is blocked by the lock
deadlock
The scanner timeouts thus the region splits but the USE will be thrown when next() is called
Inside a Map, the task will simply be retried when the first one fails. Elsewhere, it becomes more complicated.