Skip to content

YARN-11956: Register RMQueueAclInfo for RM REST JSON serialization#8449

Open
riya2305 wants to merge 2 commits intoapache:trunkfrom
riya2305:YARN-11956
Open

YARN-11956: Register RMQueueAclInfo for RM REST JSON serialization#8449
riya2305 wants to merge 2 commits intoapache:trunkfrom
riya2305:YARN-11956

Conversation

@riya2305
Copy link
Copy Markdown

@riya2305 riya2305 commented Apr 21, 2026

Description of PR

JIRA: YARN-11956: Register RMQueueAclInfo for RM REST JSON serialization

The RM queue access REST call (…/queues/{queue}/access?user=…) returns RMQueueAclInfo, which was missing from the MOXy JSON allowlist in ClassSerialisationConfig, so Accept: application/json could fail with no MessageBodyWriter. Register RMQueueAclInfo there so that endpoint can return JSON.

How was this patch tested?

tested manually:
curl -sS -H 'Accept: application/json'
'http://localhost:8088/ws/v1/cluster/queues/default/access?user=yarn'

With the fix: HTTP 200, JSON body ( unwrapped, no rmQueueAclInfo wrapper )
Without the fix: error response mentioning MessageBodyWriter not found for RMQueueAclInfo

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

AI Tooling

If an AI tool was used:

@riya2305 riya2305 changed the title YARN-11956. Register RMQueueAclInfo for RM REST JSON serialization YARN-11956: Register RMQueueAclInfo for RM REST JSON serialization Apr 21, 2026
Copy link
Copy Markdown
Contributor

@Hean-Chhinling Hean-Chhinling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the patch, @riya2305.
LGTM!

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 19m 28s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+1 💚 mvninstall 48m 49s trunk passed
+1 💚 compile 1m 24s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 1m 25s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 1m 22s trunk passed
+1 💚 mvnsite 1m 29s trunk passed
+1 💚 javadoc 1m 14s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 1m 11s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 2m 39s trunk passed
+1 💚 shadedclient 35m 42s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 1m 0s the patch passed
+1 💚 compile 0m 55s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 0m 55s the patch passed
+1 💚 compile 0m 59s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 0m 59s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 mvnsite 1m 4s the patch passed
+1 💚 javadoc 0m 45s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 0m 45s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 2m 20s the patch passed
+1 💚 shadedclient 35m 0s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 114m 40s hadoop-yarn-server-resourcemanager in the patch passed.
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
273m 35s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/1/artifact/out/Dockerfile
GITHUB PR #8449
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets
uname Linux a1853c43ed34 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 55629fe
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/1/testReport/
Max. process+thread count 947 (vs. ulimit of 10000)
modules C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/1/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@K0K0V0K
Copy link
Copy Markdown
Contributor

K0K0V0K commented Apr 22, 2026

Thanks Riya for the fix!

what do you think can we modify the IncludeRootJsonProvider to handle scenarios when DTO not present in any list?

So kinda modify this

boolean match = classSerialisationConfig.getWrappedClasses().contains(type);

to

boolean match = classSerialisationConfig.getWrappedClasses().contains(type) || !classSerialisationConfig.getWrappedClasses().contains(type) && !classSerialisationConfig.getUnWrappedClasses().contains(type));

@riya2305 riya2305 marked this pull request as draft April 22, 2026 13:45
@riya2305 riya2305 marked this pull request as ready for review April 23, 2026 03:00
@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 51s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+1 💚 mvninstall 48m 26s trunk passed
+1 💚 compile 1m 24s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 1m 28s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 1m 26s trunk passed
+1 💚 mvnsite 1m 32s trunk passed
+1 💚 javadoc 1m 16s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 1m 13s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 2m 41s trunk passed
+1 💚 shadedclient 35m 53s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 1m 0s the patch passed
+1 💚 compile 0m 56s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 0m 56s the patch passed
+1 💚 compile 1m 1s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 1m 1s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 mvnsite 1m 3s the patch passed
+1 💚 javadoc 0m 44s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 0m 44s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 2m 23s the patch passed
+1 💚 shadedclient 36m 3s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 114m 34s hadoop-yarn-server-resourcemanager in the patch passed.
+1 💚 asflicense 0m 36s The patch does not generate ASF License warnings.
255m 49s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/2/artifact/out/Dockerfile
GITHUB PR #8449
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets
uname Linux 96558cd4bd3f 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / e45af37
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/2/testReport/
Max. process+thread count 946 (vs. ulimit of 10000)
modules C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/2/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 52s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
+1 💚 mvninstall 47m 56s trunk passed
+1 💚 compile 1m 21s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 1m 25s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 1m 19s trunk passed
+1 💚 mvnsite 1m 30s trunk passed
+1 💚 javadoc 1m 13s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 1m 13s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 2m 40s trunk passed
+1 💚 shadedclient 35m 39s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 1m 0s the patch passed
+1 💚 compile 0m 55s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 0m 55s the patch passed
+1 💚 compile 0m 59s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 0m 59s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 checkstyle 0m 53s the patch passed
+1 💚 mvnsite 1m 4s the patch passed
+1 💚 javadoc 0m 44s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 0m 46s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 spotbugs 2m 19s the patch passed
+1 💚 shadedclient 34m 45s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 114m 30s hadoop-yarn-server-resourcemanager in the patch passed.
+1 💚 asflicense 0m 36s The patch does not generate ASF License warnings.
253m 40s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/3/artifact/out/Dockerfile
GITHUB PR #8449
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets
uname Linux 9ac73f3385f4 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 62f9813
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/3/testReport/
Max. process+thread count 883 (vs. ulimit of 10000)
modules C: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager U: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8449/3/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@riya2305
Copy link
Copy Markdown
Author

riya2305 commented Apr 23, 2026

  • continuous-integration/jenkins/pr-merge

Thanks Riya for the fix!

what do you think can we modify the IncludeRootJsonProvider to handle scenarios when DTO not present in any list?

So kinda modify this

boolean match = classSerialisationConfig.getWrappedClasses().contains(type);

to

boolean match = classSerialisationConfig.getWrappedClasses().contains(type) || !classSerialisationConfig.getWrappedClasses().contains(type) && !classSerialisationConfig.getUnWrappedClasses().contains(type));

Interesting idea — one concern: with that condition, wouldn’t IncludeRoot effectively claim every type that isn’t explicitly unwrapped, so DTOs default to wrapped JSON (extra root object)? That might fix the missing writer but still change the response shape for clients.
Alternatively, if we want a fallback, should it bias toward unwrapped instead, so we don’t introduce an extra root by default? Curious what you think is the safer default.

@Hean-Chhinling
Copy link
Copy Markdown
Contributor

Thanks Riya for the fix!

what do you think can we modify the IncludeRootJsonProvider to handle scenarios when DTO not present in any list?

So kinda modify this

boolean match = classSerialisationConfig.getWrappedClasses().contains(type);

to

boolean match = classSerialisationConfig.getWrappedClasses().contains(type) || !classSerialisationConfig.getWrappedClasses().contains(type) && !classSerialisationConfig.getUnWrappedClasses().contains(type));

That is a good idea.
May I ask why it should not be in the ExcludeRootJsonProvider?
The expected response format seems to be without the root element

Example:

{
  "allowed": "true",
  "user": "hive",
  "diagnostics": ""
}

Not with root rmQueueAclInfo

{
  "rmQueueAclInfo": {
    "allowed": true,
    "user": "yarn",
    "diagnostics": ""
  }
}

But please correct me if I am mistaken

@riya2305
Copy link
Copy Markdown
Author

That is a good idea. May I ask why it should not be in the ExcludeRootJsonProvider? The expected response format seems to be without the root element

Example:

{
  "allowed": "true",
  "user": "hive",
  "diagnostics": ""
}

Not with root rmQueueAclInfo

{
  "rmQueueAclInfo": {
    "allowed": true,
    "user": "yarn",
    "diagnostics": ""
  }
}

But please correct me if I am mistaken

You’re not mistaken for this endpoint, which is why the fix registers it under CONST_UNWRAPPED_CLASSES.
I commented about the “fallback for DTOs missing from both lists” idea which @K0K0V0K mentioned.

@riya2305
Copy link
Copy Markdown
Author

@slfan1989 can you please review this PR and help merge it ?

@riya2305
Copy link
Copy Markdown
Author

riya2305 commented May 4, 2026

@brumi1024 can you please review this PR and help merge it ?

@slfan1989
Copy link
Copy Markdown
Contributor

LGTM.

@riya2305
Copy link
Copy Markdown
Author

riya2305 commented May 7, 2026

LGTM.

can you please merge this pr? @slfan1989

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants