Bug: list_quota_table_sizes returns a table whose quota is not set
Status: Open | Priority: Major | Resolution: 
Created: 01/Oct/23 19:35
Affects Version/s: 2.4.17

When using HBase cluster 2.4.17, I noticed that the list_quota_table_sizes sometimes could return a table whose quota is not set.
h1. Reproduce

{_}This bug cannot be reproduced deterministically{_}. The probability for its manifestation is 1.1% (Keep executing the commands, and it occurs two times out of 178 repeatedly executions).

Start up HBase 2.4.17 cluster (2.10.2 HDFS, 1 HMaster, 2 RS)

Executing the following commands,
{code:java}
create_namespace 'uuidef8e6005b9e74092927a4b335424f7c5'
create 'uuid80d6aa3495094cd7b4018d3ab3fe9db8', {NAME => 'uuid07f904a09baf414d903b2818d3091f28', VERSIONS => 2, COMPRESSION => 'NONE', BLOOMFILTER => 'ROWCOL', IN_MEMORY => 'true'}, {NAME => 'uuida60aaa69834e4f0596b5b3b3c12b2cb8', VERSIONS => 4, COMPRESSION => 'NONE', BLOOMFILTER => 'ROWCOL', IN_MEMORY => 'true'}, {NAME => 'uuid085c0991aa1c4d4ea145767e7e7bf60c', VERSIONS => 4, COMPRESSION => 'GZ', BLOOMFILTER => 'NONE', IN_MEMORY => 'true'}, {NAME => 'uuid1d9a2bc405c64708b9e471ae14794741', VERSIONS => 2, COMPRESSION => 'NONE', BLOOMFILTER => 'ROW', IN_MEMORY => 'false'}
create 'uuid5cafa12ce5034015bb597428b294a40d', {NAME => 'uuid7d9efb39ac94472b90dc60ed3723cdf9', VERSIONS => 2, COMPRESSION => 'NONE', BLOOMFILTER => 'NONE', IN_MEMORY => 'true'}, {NAME => 'uuidde273134b6434fc584990554cfa64b10', VERSIONS => 2, COMPRESSION => 'GZ', BLOOMFILTER => 'ROWCOL', IN_MEMORY => 'true'}
clone_table_schema 'uuid80d6aa3495094cd7b4018d3ab3fe9db8', 'uuidb8e2393af3314726890b70ef5871a9d0'
drop 'uuid5cafa12ce5034015bb597428b294a40d'
truncate 'uuidb8e2393af3314726890b70ef5871a9d0'
compaction_state 'uuid80d6aa3495094cd7b4018d3ab3fe9db8'
truncate_preserve 'uuidb8e2393af3314726890b70ef5871a9d0'
drop 'uuidb8e2393af3314726890b70ef5871a9d0'
truncate 'uuid80d6aa3495094cd7b4018d3ab3fe9db8'
alter 'uuid80d6aa3495094cd7b4018d3ab3fe9db8', {NAME => 'uuida60aaa69834e4f0596b5b3b3c12b2cb8', METHOD => 'delete'}
disable 'uuid80d6aa3495094cd7b4018d3ab3fe9db8'
incr 'uuid80d6aa3495094cd7b4018d3ab3fe9db8', 'uuid863efa8e4f1f44888af0ed139effba33', 'uuid085c0991aa1c4d4ea145767e7e7bf60c:NONE', 3
drop 'uuid80d6aa3495094cd7b4018d3ab3fe9db8'
wal_roll 'hregion2,16020'
wal_roll 'hregion1,16020'
create 'uuid4323f716aea24b5fa001f0722cdc66f9', {NAME => 'uuidd64032ff2e7340fb8832a16430fc14c1', VERSIONS => 3, COMPRESSION => 'GZ', BLOOMFILTER => 'ROWCOL', IN_MEMORY => 'false'}, {NAME => 'uuidc4be1958501543ac86661793a4c144cb', VERSIONS => 2, COMPRESSION => 'GZ', BLOOMFILTER => 'ROW', IN_MEMORY => 'true'}, {NAME => 'uuid0c7961e7f67a464387f9f5ce428f08d1', VERSIONS => 4, COMPRESSION => 'NONE', BLOOMFILTER => 'ROW', IN_MEMORY => 'false'}, {NAME => 'uuida9f7a62b76fa4560834cc5789d5abf3a', VERSIONS => 2, COMPRESSION => 'NONE', BLOOMFILTER => 'ROW', IN_MEMORY => 'false'}
major_compact 'uuid4323f716aea24b5fa001f0722cdc66f9', 'uuid0c7961e7f67a464387f9f5ce428f08d1'
incr 'uuid4323f716aea24b5fa001f0722cdc66f9', 'uuidffb29730a2fb4f5f8c18f0c1bc254402', 'uuida9f7a62b76fa4560834cc5789d5abf3a:cc', 3
alter 'uuid4323f716aea24b5fa001f0722cdc66f9', {NAME => 'uuida9f7a62b76fa4560834cc5789d5abf3a', METHOD => 'delete'}
update_config 'hregion1,16020' {code}
Then execute read command in hbase shell
{code:java}
list_quota_table_sizes

TABLE  SIZE
uuid4323f716aea24b5fa001f0722cdc66f9 5133
1 row(s)
Took 0.0278 seconds {code}
uuid4323f716aea24b5fa001f0722cdc66f9 is not set in the quota table but it still appears in in list_quota_table_sizes results also with a strange value: 5133. 
h1. Thoughts

The root cause might be related to how *quota* table reacts when a new table is created. I am still investigating the root cause (Injecting logs to MasterQuotaManager to understand why it also records this table).