RFR: 8287073: NPE from CgroupV2Subsystem.getInstance()
Peter Levart
plevart at openjdk.java.net
Wed May 25 14:43:57 UTC 2022
On Fri, 20 May 2022 08:34:58 GMT, Maxim Kartashev <mkartashev at openjdk.org> wrote:
> Following the logic from the comment directly above the changed line, since it doesn't matter which controller we pick, pick any available controller instead of the one called "memory" specifically. This way we are guarded against getting `null` as `anyController`, which is being immediately passed down to `CgroupV2Subsystem.getInstance()` that is unprepared to accept `null` values.
>
> It is also worth noting that the previous checks (such as that at line 89) make sure that there exist at least one controller in the map.
src/java.base/linux/classes/jdk/internal/platform/CgroupSubsystemFactory.java line 113:
> 111: CgroupInfo anyController = infos.values().iterator().next();
> 112: CgroupSubsystem subsystem = CgroupV2Subsystem.getInstance(anyController);
> 113: return subsystem != null ? new CgroupMetrics(subsystem) : null;
Looking at implementation of CgroupV2Subsystem.getInstance(...), it seems that it always returns != null ...
-------------
PR: https://git.openjdk.java.net/jdk/pull/8803
More information about the core-libs-dev
mailing list