StarRocks / starrocks

StarRocks, a Linux Foundation project, is a next-generation sub-second MPP OLAP database for full analytics scenarios, including multi-dimensional analytics, real-time analytics, and ad-hoc queries.
https://starrocks.io
Apache License 2.0
8.29k stars 1.68k forks source link

[BugFix] Fix match of source ip for resource group (backport #47732) #47804

Closed mergify[bot] closed 2 days ago

mergify[bot] commented 2 days ago

Why I'm doing:

What I'm doing:

Fixes #47437.

  1. Match SubnetUtils::isInRange doesn't consider the broadcast and network address as a usable endpoint by default. As a result, 127.0.0.1 cannot matched 127.0.0.1/32.

  2. Weight The weight of sourceIP of a resource group classifier is 1 + cidrPrefixLength/64. However, we calculate cidrPrefixLength by Long.numberOfLeadingZeros(subnetUtils.getInfo().getAddressCountLong()) - 32, which should be Long.numberOfLeadingZeros(subnetUtils.getInfo().getAddressCountLong()) - 31.

What type of PR is this:

Does this PR entail a change in behavior?

If yes, please specify the type of change:

Checklist:

Bugfix cherry-pick branch check:

What I'm doing:

Fixes #47437.

  1. Match SubnetUtils::isInRange doesn't consider the broadcast and network address as a usable endpoint by default. As a result, 127.0.0.1 cannot matched 127.0.0.1/32.

  2. Weight The weight of sourceIP of a resource group classifier is 1 + cidrPrefixLength/64. However, we calculate cidrPrefixLength by Long.numberOfLeadingZeros(subnetUtils.getInfo().getAddressCountLong()) - 32, which should be Long.numberOfLeadingZeros(subnetUtils.getInfo().getAddressCountLong()) - 31.

What type of PR is this:

Does this PR entail a change in behavior?

If yes, please specify the type of change:

Checklist:

mergify[bot] commented 2 days ago

Cherry-pick of 43c117440af1d2646f88dabadd7b4a8b9337e14f has failed:

On branch mergify/bp/branch-3.2/pr-47732
Your branch is up to date with 'origin/branch-3.2'.

You are currently cherry-picking commit 43c117440a.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
    modified:   fe/fe-core/src/main/java/com/starrocks/catalog/ResourceGroupClassifier.java
    modified:   fe/fe-core/src/test/java/com/starrocks/analysis/ResourceGroupStmtTest.java
    new file:   fe/fe-core/src/test/java/com/starrocks/catalog/ResourceGroupClassifierTest.java
    new file:   fe/fe-core/src/test/java/com/starrocks/common/util/NetUtilsTest.java

Unmerged paths:
  (use "git add <file>..." to mark resolution)
    both modified:   fe/fe-core/src/main/java/com/starrocks/common/util/NetUtils.java

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

mergify[bot] commented 2 days ago

@mergify[bot]: Backport conflict, please reslove the conflict and resubmit the pr