Manno15 opened a new issue #2035:
URL: https://github.com/apache/accumulo/issues/2035


   **Describe the bug**
   The original bug was reported here: 
https://issues.apache.org/jira/browse/ACCUMULO-4160
   
   If an iterator was misconfigured on a table (specifically for minor 
compaction in my testing), it can prevent other tables from loading their 
tablets as well as being able to perform operations on them beyond taking it 
offline and online. 
   
   **Versions (OS, Maven, Java, and others, as appropriate):**
    - Affected version(s) of this project: 2.1.0
   
   **To Reproduce**
   To reproduce, I edited an iterator (RowDeletingIterator for example) to 
throw an exception. This mimics the `BadIterator` class.
   After that:
   1. Create two tables in accumulo and ingest something to get one tablet in 
each.
   2. Configure one table to use this iterator in minc scope (Scan seemed to 
have proper error checking when done with a misconfigured iterator). 
   3. Flush the table with the bad iterator. This will cause the shell to hang 
indefinitely. Minor compaction will repeat until it completes which cannot 
happen unless the bad iterator is deleted. 
   4. Kill the Tserver and bring it back up. The table with the bad iterator 
will never load.
   5. If the good table is brought offline to online, it also will never load 
and no operation can be done on it again. 
   Deleting the bad iterator will allow the minor compaction and the Tserver go 
to back to a healthy state. 
   
   **Expected behavior**
   To not block other tablets from being loaded due to one table having a 
misconfigured iterator and minor compacting indefinitely. 
   
   **Additional context**
   It does seem that the main bug only occurs when the Tserver dies and is 
brought back up. Logs suggest it is still attempting to minor compact. A 
solution to the shell hanging indefinitely and possibly an error message to the 
user could allow someone to notice the misconfigured iterator earlier and be 
deleted. This has also been tested with `MultiTableRecoverIT` which uses 
agitation to test recovery. If one of the tables in that IT is given a 
misconfigured iterator, the test will hang until it timeouts. 
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to