The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/group-create-preserve-settings has failed.
Run started by GitHub user unbridled-41 (triggered by unbridled-41).

Head commit for run:
8d2b1ebee8cf4b5f9689c4adbf32f3a04ba91916 / unbridled-41 
<[email protected]>
fix(group): keep an existing group's broker settings when create is called again

The create path built a fresh SubscriptionGroupConfig with the creation defaults
(retryQueueNums 1, consumeEnable true, consumeBroadcastEnable true,
consumeMessageOrderly from the request) and, for every non-import call, wrote it
unconditionally:

    boolean physicalExists = importing && verifyGroupImport(admin, brokerAddrs, 
config);
    if (!physicalExists) {
        for (String addr : brokerAddrs) { 
admin.createAndUpdateSubscriptionGroupConfig(addr, config); }
    }

So calling create for a group that already exists on the broker silently reset
those four settings. That happens on a resubmitted create form, and it is the
normal path for the AI upsert, which calls create whenever the metadata table 
has
no row - including for every physically existing group that was never imported. 
A
group an operator had disabled (consumeEnable=false) was re-enabled, ordered
consumption was turned back to concurrent, and retryQueueNums dropped to 1.

The update path already does the opposite and documents it ("Read every broker
before writing ... Preserve each broker's other settings; zero is an explicit
retry limit"), so mirror that: pre-read the master's config, apply the retry 
limit
and, only when the request names a delivery order type, the ordered flag; keep
everything else. Absent groups (and absent configs) still get the creation
defaults, and the import path is unchanged.

Tests (server/): mvn -o -B -ntp test -Dtest='RocketMQAdminClientImplTest'
-> Tests run: 81, Failures: 0, Errors: 0.
- new 
createConsumerGroupKeepsTheExistingBrokerSettingsOfAnAlreadyPresentGroupTest
  fails before this change (retryQueueNums expected 5, got 1) and passes after 
it.
- mvn -o -B -ntp test 
-Dtest='MetadataServiceTest,RocketMQMetadataProviderTest,TopicControllerTest,ConsumerGroupControllerTest'
  -> Tests run: 107, Failures: 0, Errors: 0; checkstyle passes.

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

With regards,
GitHub Actions via GitBox

Reply via email to