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

Andrew Hughes gnu.andrew at redhat.com
Mon Nov 30 16:40:54 UTC 2020


On 10:14 Mon 30 Nov     , Severin Gehwolf wrote:
> 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
> 

Thanks. That looks better.

webrev is still doing something weird. If I apply the 11u patch myself,
I get a clean diff between it and the 11u version:

https://cr.openjdk.java.net/~andrew/openjdk8/8217766/webrev.01/8217766.8u.andrew

but, as soon as I webrev that, I get what you did this time:

https://cr.openjdk.java.net/~andrew/openjdk8/8217766/webrev.01/hotspot.patch

Quite bizarre.

Anyway, if what you have locally is the same as the first of these links,
I'm happy. I thought at first you'd had to add your own logging code, but
it's just the removal that's slightly different. Please flag for approval.

Thanks,
-- 
Andrew :)

Senior Free Java Software Engineer
OpenJDK Package Owner
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222


More information about the jdk8u-dev mailing list