[
https://issues.apache.org/jira/browse/HBASE-29331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Istvan Toth updated HBASE-29331:
--------------------------------
Description:
HBASE-28963 changes the QuotaCache logic so that QuotaRefresherChore is not run
before returning the Quota object.
This results in the first quota object returned being a default object, which
gets updated by the next QuotaRefresherChore run.
Normally, this shouldn't be a problem, as eventually a QuotaRefresherChore is
run, and the Quota gets updated to the real value.
However, in tests the EnvironmentEdgeManager clock is advanced several minutes
several times between trying to execute the operations, which results in the
Quota entry always getting evicted before it has had a chance to get updated,
and the test is always using the default Quota object instead of the real one.
Specifically, this manifests in TestDefaultQuota always failing on my machine
(and internal CI hosts).
was:
HBASE-28963 changes the QuotaCache logic so that QuotaRefresherChore is not run
before returning the Quota object.
This results in the first quota object returned being a default object, which
gets updated by the next QuotaRefresherChore run.
Normally, this shouldn't be a problem, as eventually a QuotaRefresherChore is
run, and the Quota gets updated to the real value.
However, in tests the EnvironmentEdgeManager clock is advanced several minutes
several times, between trying to execute the operations, which results in the
Quota entry always getting evicted before it has has had a chance to get
updated, and the test is always using the default Quota object instead of the
real one.
Specifically, this manifests in TestDefaultQuota always failing on my machine
(and internal CI hosts).
> TestDefaultQuota fails because of pseudo-race condition
> -------------------------------------------------------
>
> Key: HBASE-29331
> URL: https://issues.apache.org/jira/browse/HBASE-29331
> Project: HBase
> Issue Type: Bug
> Components: Quotas
> Reporter: Istvan Toth
> Assignee: Istvan Toth
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.7.0, 3.0.0-beta-2, 2.6.3
>
>
> HBASE-28963 changes the QuotaCache logic so that QuotaRefresherChore is not
> run before returning the Quota object.
> This results in the first quota object returned being a default object, which
> gets updated by the next QuotaRefresherChore run.
> Normally, this shouldn't be a problem, as eventually a QuotaRefresherChore is
> run, and the Quota gets updated to the real value.
> However, in tests the EnvironmentEdgeManager clock is advanced several
> minutes several times between trying to execute the operations, which results
> in the Quota entry always getting evicted before it has had a chance to get
> updated, and the test is always using the default Quota object instead of the
> real one.
> Specifically, this manifests in TestDefaultQuota always failing on my machine
> (and internal CI hosts).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)