Skip to content

[Bug] StatisticsBrief accepts invalid percentile metadata #10871

Description

@yuluo-yx

Before Creating the Bug Report

  • I found a bug, not just a question.
  • I searched open GitHub Issues and pull requests and found no duplicate.
  • I confirmed that this bug belongs to Apache RocketMQ.

Runtime platform environment

macOS (Darwin), reproduced with an isolated local unit test.

RocketMQ version

Branch: develop
Git commit: fd0c959

JDK Version

Zulu OpenJDK 8 (8.94.0.17)

Describe the Bug

StatisticsBrief validates only the outer shape of percentile metadata. Non-positive slot counts, non-increasing range boundaries, and slot counts wider than their range are accepted. These values can later cause division by zero, invalid slot calculations, or array-size overflow.

Steps to Reproduce

  1. Construct StatisticsBrief with metadata such as {{10, 0}}, {{10, 2}, {10, 2}}, or {{10, 11}}.
  2. Sample a value or calculate the slot count.
  3. Observe invalid arithmetic or inconsistent bucket behavior.

What Did You Expect to See?

The constructor should reject invalid metadata with IllegalArgumentException.

What Did You See Instead?

Malformed metadata passes validation and fails later in statistics processing.

Additional Context

The invalid cases are reproducible with focused StatisticsBrief unit tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions