On Tue, 8 Jun 2021 06:39:12 GMT, David Holmes <dhol...@openjdk.org> wrote:
>> src/jdk.management/linux/native/libmanagement_ext/UnixOperatingSystem.c line >> 70: >> >>> 68: do { >>> 69: c = fgetc(f); >>> 70: } while(c != '\n' && c != EOF); >> >> Style nit: please add space before ( > > It is not obvious to me that the caller of next_line will handle the fact > that we have hit EOF? In my case, it happened in the container environment. the /proc filesystem of the container is provided by lxcfs, but a lxcfs bug may make the /proc/stat mount point change, then the file descriptor is different and fgetc function returns an EOF on error, But c != '\n' is true and it leads to the infinit loop. Below are our flamegraph in the production , it happends on serveral frameworks(micrometer, elasticsearch..)which use the api "sun/management/OperatingSystemImpl.getSystemCpuLoad"  ------------- PR: https://git.openjdk.java.net/jdk/pull/4378