dlmarion commented on code in PR #5474:
URL: https://github.com/apache/accumulo/pull/5474#discussion_r2049331010


##########
core/src/main/java/org/apache/accumulo/core/clientImpl/ClientTabletCacheImpl.java:
##########
@@ -660,6 +660,7 @@ private void requestTabletHosting(ClientContext context,
     }
 
     // System tables should always be hosted
+    // TODO should this return for all sys tables?
     if (AccumuloTable.ROOT.tableId() == tableId || 
AccumuloTable.METADATA.tableId() == tableId) {
       return;
     }

Review Comment:
   > Yes it should return for all tablets, we always expect the system tablets 
to be hosted. 
   
   I think this might not be fully in place. 
`TableOperationsImpl.setTabletAvailability` uses the `NOT_BUILTIN_TABLE` 
validator to throw an IllegalArgumentException if someone tries to
   set the TabletAvailability on a table in the `accumulo` namespace using the 
client.
   
   However, `TabletMetadata.getTabletAvailability` only overrides the value to 
`HOSTED` for the root and metadata tables. 
`TabletMetadata.getTabletAvailability` is used by `TabletGoalState.compute`, 
which is used by the TabletGroupWatcher. It might be possible to someone to do 
surgery on the `accumulo.metadata` table and manually set the `fate` and 
`scanref` tables to `UNHOSTED` or `ONDEMAND`.
   
   I'll create a PR to fix this.



-- 
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.

To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to