Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
3.0.0-alpha-1, 2.1.0
-
None
Description
As demonstarted in HBASE-20662.master.002.patch re-creating a dropped namespace and contained table inherits previously set space quota settings.
Steps:
- Create a namespace and a table in it
- Set space quota on namespace
- Violate namespace quota
- Drop table and then namespace
- Re create same namespace and same table
- Put data into the table (more than the previosuly set namespace quota limit)
private void setQuotaAndThenDropNamespace(final String namespace, SpaceViolationPolicy policy) throws Exception { Put put = new Put(Bytes.toBytes("to_reject")); put.addColumn(Bytes.toBytes(SpaceQuotaHelperForTests.F1), Bytes.toBytes("to"), Bytes.toBytes("reject")); createNamespaceIfNotExist(TEST_UTIL.getAdmin(), namespace); // Do puts until we violate space policy final TableName tn = writeUntilNSSpaceViolationAndVerifyViolation(namespace, policy, put); // Now, drop the table TEST_UTIL.deleteTable(tn); LOG.debug("Successfully deleted table ", tn); // Now, drop the namespace TEST_UTIL.getAdmin().deleteNamespace(namespace); LOG.debug("Successfully deleted the namespace ", namespace); // Now re-create the namespace createNamespaceIfNotExist(TEST_UTIL.getAdmin(), namespace); LOG.debug("Successfully re-created the namespace ", namespace); TEST_UTIL.createTable(tn, Bytes.toBytes(SpaceQuotaHelperForTests.F1)); LOG.debug("Successfully re-created table ", tn); // Put some rows now: should not violate as namespace/quota was dropped verifyNoViolation(policy, tn, put); }
Expected: SpaceQuota settings should not exist on the newly re-created table and we should be able to put limit less data into the table
Actual: We fail to put data into newly created table as SpaceQuota settings (systematically created due to previously added namespace space quota) exist on table
Attachments
Attachments
Issue Links
- links to