Other |
---|
tbdResolved |
Duplicate :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
A user reports that if wildfly tests run within a container they fail to initialize with: [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) The relevant mountinfo line is: 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 The relevant line for the memory controller in /proc/self/cgroups is: 9:memory:/user.slice/user-1000.slice/session-3.scope The relevant code reads: public void setPath(String cgroupPath) { if (root != null && cgroupPath != null) { if (root.equals("/")) { if (!cgroupPath.equals("/")) { path = mountPoint + cgroupPath; } else { path = mountPoint; } } else { if (root.equals(cgroupPath)) { path = mountPoint; } else { if (cgroupPath.startsWith(root)) { if (cgroupPath.length() > root.length()) { String cgroupSubstr = cgroupPath.substring(root.length()); path = mountPoint + cgroupSubstr; } } } } } } This seems to be a case not covered in the setPath() method in CgroupV1SubsystemController. root == /user.slice/user-1000.slice/session-50.scope, cGroupPath == /user.slice/user-1000.slice/session-3.scope. Therefore 'path' ends up not being set, causing the NPE. This was originally reported here: https://bugzilla.redhat.com/show_bug.cgi?id=2082094 More detailed info here: https://gist.github.com/gaol/4d96eace8290e6549635fdc0ea41d0b4
|