Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-3436

Cgroup v1 initialization causes NullPointerException when cgroup path does not start with the mount root

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: Generate New Ti...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • None
    • None
    • rhel-sst-java
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • If docs needed, set a value
    • None
    • 57,005

      Description of problem:

      When I ran WildFly testsuite on JDK 17.0.2 within a podman container, I got NPE for all tests, all work fine if I run it on base metal:

      [ERROR] Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:2.0.1.Final:execute-commands (apply-elytron) on project wildfly-ts-integ-smoke: Failed to execute commands: Exception in thread "main"
      java.lang.NullPointerException
      [ERROR] at java.base/java.util.Objects.requireNonNull(Objects.java:208)
      [ERROR] at java.base/sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:263)
      [ERROR] at java.base/java.nio.file.Path.of(Path.java:147)
      [ERROR] at java.base/java.nio.file.Paths.get(Paths.java:69)
      [ERROR] at java.base/jdk.internal.platform.CgroupUtil.lambda$readStringValue$1(CgroupUtil.java:67)
      [ERROR] at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
      [ERROR] at java.base/jdk.internal.platform.CgroupUtil.readStringValue(CgroupUtil.java:69)
      [ERROR] at java.base/jdk.internal.platform.CgroupSubsystemController.getStringValue(CgroupSubsystemController.java:65)
      [ERROR] at java.base/jdk.internal.platform.CgroupSubsystemController.getLongValue(CgroupSubsystemController.java:124)
      [ERROR] at java.base/jdk.internal.platform.cgroupv1.CgroupV1Subsystem.getLongValue(CgroupV1Subsystem.java:175)
      [ERROR] at java.base/jdk.internal.platform.cgroupv1.CgroupV1Subsystem.getHierarchical(CgroupV1Subsystem.java:149)
      [ERROR] at java.base/jdk.internal.platform.cgroupv1.CgroupV1Subsystem.initSubSystem(CgroupV1Subsystem.java:84)
      [ERROR] at java.base/jdk.internal.platform.cgroupv1.CgroupV1Subsystem.getInstance(CgroupV1Subsystem.java:60)
      [ERROR] at java.base/jdk.internal.platform.CgroupSubsystemFactory.create(CgroupSubsystemFactory.java:116)
      [ERROR] at java.base/jdk.internal.platform.CgroupMetrics.getInstance(CgroupMetrics.java:167)
      [ERROR] at java.base/jdk.internal.platform.SystemMetrics.instance(SystemMetrics.java:29)
      [ERROR] at java.base/jdk.internal.platform.Metrics.systemMetrics(Metrics.java:58)
      [ERROR] at java.base/jdk.internal.platform.Container.metrics(Container.java:43)
      [ERROR] at jdk.management/com.sun.management.internal.OperatingSystemImpl.<init>(OperatingSystemImpl.java:182)
      [ERROR] at jdk.management/com.sun.management.internal.PlatformMBeanProviderImpl.getOperatingSystemMXBean(PlatformMBeanProviderImpl.java:280)
      [ERROR] at jdk.management/com.sun.management.internal.PlatformMBeanProviderImpl$3.nameToMBeanMap(PlatformMBeanProviderImpl.java:199)
      [ERROR] at java.management/java.lang.management.ManagementFactory.lambda$getPlatformMBeanServer$0(ManagementFactory.java:488)
      [ERROR] at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
      [ERROR] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
      [ERROR] at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779)
      [ERROR] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
      [ERROR] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
      [ERROR] at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
      [ERROR] at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
      [ERROR] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      [ERROR] at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
      [ERROR] at java.management/java.lang.management.ManagementFactory.getPlatformMBeanServer(ManagementFactory.java:489)
      [ERROR] at org.jboss.modules.ModuleLoader$RealMBeanReg$1.run(ModuleLoader.java:1258)
      [ERROR] at org.jboss.modules.ModuleLoader$RealMBeanReg$1.run(ModuleLoader.java:1256)
      [ERROR] at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
      [ERROR] at org.jboss.modules.ModuleLoader$RealMBeanReg.<init>(ModuleLoader.java:1256)
      [ERROR] at org.jboss.modules.ModuleLoader$TempMBeanReg.installReal(ModuleLoader.java:1240)
      [ERROR] at org.jboss.modules.ModuleLoader.installMBeanServer(ModuleLoader.java:273)
      [ERROR] at org.jboss.modules.Main.main(Main.java:605)

      Version-Release number of selected component (if applicable):

      The environment that I reproduced the problem:

      Java version:
      [jenkins@testjenkins ~]$ java -version
      openjdk version "17.0.2" 2022-01-18
      OpenJDK Runtime Environment 21.9 (build 17.0.2+8)
      OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8, mixed mode, sharing)

      RHEL 8.5:
      [jenkins@testjenkins ~]$ uname -a
      Linux testjenkins 4.18.0-348.el8.x86_64 #1 SMP Mon Oct 4 12:17:22 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux
      [jenkins@testjenkins ~]$ cat /etc/redhat-release
      Red Hat Enterprise Linux release 8.5 (Ootpa)

      podman version:
      [jenkins@testjenkins ~]$ podman --version
      podman version 3.4.2

      In this case /proc/self/cgroup file in the container has the following line:

      9:memory:/user.slice/user-1000.slice/session-3.scope

      while /proc/self/mountinfo file in the container has the following line:

      941 931 0:36 /user.slice/user-1000.slice/session-50.scope /sys/fs/cgroup/memory ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,seclabel,memory

      For more detail info, please refer to https://gist.github.com/gaol/4d96eace8290e6549635fdc0ea41d0b4

      It also relates to https://bugs.openjdk.java.net/browse/JDK-8272124

              sgehwolf@redhat.com Severin Gehwolf
              rhn-engineering-lgao Lin Gao
              Severin Gehwolf Severin Gehwolf
              David Kutalek David Kutalek
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: