Chaos Mesh能进行pod 故障实验,但注入JVM故障报错
环境:OCP
报错内容:
Failed to apply chaos: rpc error: code = Unknown desc = com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file /proc/1991978/root/tmp/.java_pid1: target process 1991978 doesn’t respond within 10500ms or HotSpot VM not loaded at jdk.attach/sun.tools.attach.VirtualMachineImpl.(VirtualMachineImpl.java:100) at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58) at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207) at org.chaos_mesh.agent_installer.Install.attach(Install.java:203) at org.chaos_mesh.agent_installer.Install.main(Install.java:47) : exit status 1
您好,请问使用的 Chaos Mesh 是什么版本的呢?运行的容器中 Java 进程是否是第一个进程呢?
看起来和 https://github.com/chaos-mesh/chaos-mesh/issues/3330 中最初描述的问题很像,即 JVMChaos 只注入容器里的第一个进程,如果它不是 java 就会有这个错误。这个问题在 2.2 中已经修复,而在 2.1 中的 bugfix 在二十天前也已经合入,但没有发布新的 bugfix 版本。
您好,谢谢回复。我使用的是chaos mesh 2.2.0版本。
好像是因为OCP默认给每个容器(或者pod,不确定)分配一个uid。而chaos mesh的deamon服务是以root用户启动的。两者不一致。
我把我的java应用的容器指定以root用户启动之后,就不报这个错误了,但是报了另一个错误:
Failed to apply chaos: rpc error: code = Unknown desc = com.sun.tools.attach.AgentLoadException: 102 com.sun.tools.attach.AgentLoadException: 100 at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:108) at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:119) at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:147) at jdk.attach/com.sun.tools.attach.VirtualMachine.loadAgent(VirtualMachine.java:538) at org.chaos_mesh.agent_installer.Install.injectAgent(Install.java:255) at org.chaos_mesh.agent_installer.Install.main(Install.java:48) : exit status 1
容器日志报以下错误: