[ 
https://issues.apache.org/jira/browse/HBASE-15563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15268667#comment-15268667
 ] 

Matt Warhaftig commented on HBASE-15563:
----------------------------------------

Just FYI counter reset logic was:
{code}
  public static final int getAndIncrement() {
    for (;;) {
      int current = counterInt.get();
      int next = (current + 1);
      if (next == groupNames.length) {
        next = 0;
      }
      if (counterInt.compareAndSet(current, next)) return current;
    }
  }
{code}

> 'counter' may overflow in BoundedGroupingStrategy
> -------------------------------------------------
>
>                 Key: HBASE-15563
>                 URL: https://issues.apache.org/jira/browse/HBASE-15563
>             Project: HBase
>          Issue Type: Bug
>          Components: wal
>            Reporter: Duo Zhang
>            Assignee: Matt Warhaftig
>            Priority: Minor
>              Labels: beginner
>         Attachments: hbase-15563-v1.patch
>
>
> {code}
> groupName = groupNames[counter.getAndIncrement() % groupNames.length];
> {code}
> Theoretically, counter can overflow and becomes negative then causes an 
> ArrayIndexOutOfBoundsException.
> But in practice, we need 2 billions different identifiers to make this 
> happen, and before the overflow we will run into OOM because of a huge 
> groupNameCache...
> So not sure if it is worth to fix



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to