Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[Bug] Deleting the last item problem of the ACL topic/group perms or the global white list caused by the UtilAll#split func flaw #7710

Copy link
Copy link
@Qinglong-Lee

Description

@Qinglong-Lee
Issue body actions

Before Creating the Bug Report

  • I found a bug, not just asking a question, which should be created in GitHub Discussions.

  • I have searched the GitHub Issues and GitHub Discussions of this repository and believe that this is not a duplicate.

  • I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.

Runtime platform environment

OS(CentOS release 7.6.1810)

RocketMQ version

branch(develop) version(5.1.5-SNAPSHOT)

JDK Version

Compliler(Oracke JDK 1.8.0_361) OS(CentOS release 7.6.1810)

Describe the Bug

I found an bug of ACL during my work on RocketMQ.
When I tried to delete the last item of the ACL topic/group perms, there was an error which indicates the resouce fomat is incrorrect. And there's also an similar problem of the global white list, which is always remain an empty data at last.

Steps to Reproduce

To reproduce you can use two ways:

  1. If you use the Dashboard(take the topic/group perms for example)
    1.1 Create an ACL with mutiple topic perms and group perms.
    1.2 Delete the topic perms or group perms one by one.
    1.3 The error woud appear when delete the last one.

AgAACF5zlnReY1XDkERMf6P-SgV5fqC1
AgAACF5zlnR_G2hISrFGkp9IHvbLVnhw
AgAACF5zlnQIxRfBwMZA4odWFJ1KCjd_

  1. If you want to create an test method for reproduce
    2.1 New an DefaultMQAdminExt and config it with namesrv and then start it.
    2.2 New an PlainAccessConfig and setGroupPerms(Collections.EMPTY_LIST), setTopicPerms(Collections.EMPTY_LIST).
    2.3 Then call DefaultMQAdminExt #createAndUpdatePlainAccessConfig.
    2.4 Or to call DefaultMQAdminExt #updateGlobalWhiteAddrConfig with the second parmeter an empty string.

图片
图片

What Did You Expect to See?

For the topic/group perms, it should not be an error to delete the last item.
图片

For the global white list, it should not be an empty data

图片

What Did You See Instead?

For the topic/group perms, it popup an error:
org.apache.rocketmq.client.exception.MQClientException: CODE: 209 DESC: Parse Resource format error for .
The expected resource format is 'Res=Perm'. For example: topicA=SUB

AgAACF5zlnReY1XDkERMf6P-SgV5fqC1

For the global white list, it remains an empty data

AgAACF5zlnR_G2hISrFGkp9IHvbLVnhw

Additional Context

I've already found and fixed the bug, and I'll submit an PR later.

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.