[8u] RFR: 8217766: Container Support doesn't work for some Join Controllers combinations

Severin Gehwolf sgehwolf at redhat.com
Mon Nov 30 09:14:11 UTC 2020


On Mon, 2020-11-30 at 05:13 +0000, Andrew Hughes wrote:
> On 15:32 Tue 27 Oct     , Severin Gehwolf wrote:
> > Hi!
> > 
> > Could I please get a review for this 8u backport of 8217766. I see
> > Oracle backported it too to 8u281. The JDK 11 patch does not apply
> > cleanly, because a) no unified logging in hotspot in 8u b) split of jdk
> > and hotspot repositories in 8u.
> > 
> > I've manually backported hotspot changes. The JDK changes actually
> > applied cleanly. While this fixes part of the problem. JDK-8254854 will
> > be fixed separately and as a follow-up.
> > 
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8217766
> > webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8217766/01/
> > 
> > Testing: Manually on affected system with join controllers[1].
> > Container tests on Linux x86_64: no regressions.
> > 
> > Thoughts?
> > 
> > Thanks,
> > Severin
> > 
> > [1] https://bugs.openjdk.java.net/browse/JDK-8217766?focusedCommentId=14373516&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-14373516
> > 
> 
> A blank line (before the mountinfo comment) gets lost in the backport
> from 11u to 8u, causing the diffs of osContainer_linux.cpp to not line
> up. You can see this after applying your patch and comparing the two
> files:
> 
> @@ -262,13 +324,14 @@
>      char tmpcgroups[MAXPATHLEN+1];
>      char *cptr = tmpcgroups;
>      char *token;
> +
>      // mountinfo format is documented at https://www.kernel.org/doc/Documentation/filesystems/proc.txt
>      if (sscanf(p, "%*d %*d %*d:%*d %s %s %*[^-]- cgroup %*s %s", tmproot, tmpmount, tmpcgroups) != 3) {
>        continue;
>      }
>      while ((token = strsep(&cptr, ",")) != NULL) {
>        if (strcmp(token, "memory") == 0) {
> -        memory = new CgroupSubsystem(tmproot, tmpmount);
> +        memory = new CgroupMemorySubsystem(tmproot, tmpmount);
>        } else if (strcmp(token, "cpuset") == 0) {
>          cpuset = new CgroupSubsystem(tmproot, tmpmount);
>        } else if (strcmp(token, "cpu") == 0) {
> 
> Not only does this make it hard to compare your backport with the
> original to see what changed, it will cause unnecessary context
> differences for future backports. Please rectify this.

Thanks for the review!

Done:
https://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8217766/jdk8/hotspot/webrev/

Thanks,
Severin



More information about the jdk8u-dev mailing list