The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/alert-rule-text-bounds has failed.
Run started by GitHub user unbridled-41 (triggered by unbridled-41).

Head commit for run:
5d1ed7af9fe28f1700d8fa411a223404397c983f / unbridled-41 
<[email protected]>
fix(alert): bound the rule text fields to their columns

The create/update path validated enums and durations but never bounded the 
free-text
fields, so the first length check was the database write:

    // AlertRuleRequestDTO: no @Size on name/metric/description/...
    // AlertService.createRule catches only DuplicateKeyException

`description VARCHAR(512)`, `name/metric/brokerName/clusterName/instance_id
VARCHAR(128)`, `consumer_group`/`topic VARCHAR(255)`. A description of 513 
characters
(the rule dialog's TextArea has no maxLength, unlike the fields next to it) 
therefore
raised DataIntegrityViolationException, which no handler maps, and the API 
answered
500 "Internal Server Error" with the rule not created; under a non-strict 
sql_mode the
value is truncated instead, and for `name` the truncation is invisible 
afterwards
because the semantic fingerprint ignores the name. The sibling instance writer
documents the rule this fix follows ("Letting a longer value through does not 
store
it: MySQL rejects the write, so the caller gets a 500 from the persistence layer
instead of the validation error").

Add @Size constraints matching each column so the request is rejected with 400 
and a
usable message before any write.

Tests (server/): mvn -o -B -ntp test 
-Dtest='org.apache.rocketmq.studio.ops.alert.**'
-> Tests run: 328, Failures: 0, Errors: 0.
- new AlertRuleRequestDTOTest#textFieldsShouldBeBoundedToTheirColumnsTest fails 
before
  this change (no violations) and passes after it; a companion case pins that a 
value
  at the column width is still accepted.
- AlertRuleControllerTest/ClusterAlertRuleControllerTest keep passing;
  checkstyle passes.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37994811574

With regards,
GitHub Actions via GitBox

Reply via email to