geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (GEODE-2676) RegionMBean statistics wrong on partitioned regions
Date Wed, 15 Nov 2017 20:07:00 GMT


ASF GitHub Bot commented on GEODE-2676:

jinmeiliao opened a new pull request #1063: GEODE-2676: fix NPE with ShowMetricsCommand.
   Thank you for submitting a contribution to Apache Geode.
   In order to streamline the review of the contribution we ask you
   to ensure the following steps have been taken:
   ### For all changes:
   - [ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?
   - [ ] Has your PR been rebased against the latest commit within the target branch (typically
   - [ ] Is your initial contribution a single, squashed commit?
   - [ ] Does `gradlew build` run cleanly?
   - [ ] Have you written or updated unit tests to verify your changes?
   - [ ] If adding new dependencies to the code, are these dependencies licensed in a way
that is compatible for inclusion under [ASF 2.0](
   ### Note:
   Please ensure that once the PR is submitted, you check travis-ci for build issues and
   submit an update to your PR as soon as possible. If you need help, please send an
   email to

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

> RegionMBean statistics wrong on partitioned regions
> ---------------------------------------------------
>                 Key: GEODE-2676
>                 URL:
>             Project: Geode
>          Issue Type: Bug
>          Components: management
>            Reporter: Fred Krone
>            Priority: Minor
>              Labels: jmx
> RegionMBean attributes hitCount, hitRatio, missCount, lastAccessedTime, and lastModifiedTime
will always be 0 for an mbean that represents an partitioned region.
> The gettors for these methods may call getStatistics() which on a PR always throws UnsupportedOperationException.
So this exception might even get exposed to customers.
> The initialization of RegionMBeanBridge calls getStatisticsEnabled() which returns true
on a PartitionedRegion. This does have meaning on a PR but it does not mean that getStatistics()
is a supported operation. On a PR setting statistics-enabled causes each region-entry to also
keep track of its last access time.
> It is true that if getStatisticsEnabled() is false then you should not call getStatistics.
But the opposite is not true. Since we currently have regions that do not support getStatistics(),
the code in RegionMBeanBridge should catch UnsupportedOperationException and handle it. I
would suggest that the constructor be changed that initializes the "isStatisticsEnabled" field.
Instead of only calling getStatisticsEnabled() it should also call getStatistics(). Something
like this:
> {noformat}
>     {
>       boolean useGetStatistics = regAttrs.getStatisticsEnabled();
>       if (useGetStatistics) {
>         try {
>           region.getStatistics();
>         } catch (UnsupportedOperationException ex) {
>           useGetStatistics = false;
>         }
>       }
>       this.isStatisticsEnabled = useGetStatistics;
>     }
> {noformat}
> That way in a future release if PRs are changed to support getStatistics this code will
start calling it without having a direct dependency on the implementation of PartitionedRegion.
> is a request to support getStatistics
on PRs.

This message was sent by Atlassian JIRA

View raw message