Incompatibilidade entre Java e cgroups v2
Nos sistemas mais recentes, o gerenciamento de recursos no Linux é feito pelo cgroups v2, um sistema que controla a alocação de CPU, memória e outros recursos para processos.
No entanto, versões mais antigas do JDK ainda não possuem suporte completo para essa nova arquitetura, o que pode resultar no erro:
"Cannot invoke 'jdk.internal.platform.CgroupInfo.getMountPoint()' because 'anyController' is null"
Esse erro ocorre porque o Java espera encontrar a estrutura do cgroups v1, que foi substituída pelo cgroups v2 no systemd v256+. Como resultado, a JVM falha ao obter informações de controle de recursos, afetando a execução de aplicações.
Solução
Para contornar essa incompatibilidade, é necessário utilizar uma versão do JDK que tenha suporte adequado ao cgroups v2. As versões JDK 17.0.4+ já incluem essa compatibilidade, garantindo que o gerenciamento de recursos funcione corretamente.
Porém, ferramentas populares de gerenciamento de versões, como ASDF e Mise, atualmente só oferecem suporte até a versão JDK 17.0.2 do OpenJDK para a família 17, que ainda apresenta essa limitação. Para resolver o problema, a solução é instalar manualmente a versão Zulu JDK 17.56.15, que já inclui os ajustes necessários para rodar corretamente com cgroups v2.
Passos para Resolver
1. Remova versões antigas do JDK 17 instaladas via Mise
$ mise rm java@openjdk17.0.2
2. Instale a versão correta do Zulu JDK
$ mise use -g java@zulu-17.56.15
3. Verifique se a versão está correta
java -version
Após essas configurações, a JVM será executada corretamente sem erros relacionados ao cgroups v2, garantindo compatibilidade total com os sistemas mais recentes.