Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[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

Closed
3 tasks done
Qinglong-Lee opened this issue Jan 1, 2024 · 1 comment · Fixed by #7712

Comments

@Qinglong-Lee
Copy link
Contributor

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.

@Qinglong-Lee
Copy link
Contributor Author

@RongtongJin @fuyou001

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant