chaos-mesh对JVM注入故障失败

chaos-mesh web端对jvm注入故障报错:

Failed to apply chaos: {“error”:true,“message”:“error.api.internal_server_error: exit status 127”,“code”:“error.api.internal_server_error”,“full_text”:“error.api.internal_server_error: exit status 127\n at github.com/chaos-mesh/chaosd/pkg/server/httpserver.handleError()\n\t/__w/chaosd/chaosd/pkg/server/httpserver/server.go:499\n at github.com/chaos-mesh/chaosd/pkg/server/httpserver.(*HttpServer).createJVMAttack()\n\t/__w/chaosd/chaosd/pkg/server/httpserver/server.go:337\n at github.com/gin-gonic/gin.(*Context).Next()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/context.go:173\n at github.com/chaos-mesh/chaosd/pkg/server/httpserver.authenticateClientCert.func1()\n\t/__w/chaosd/chaosd/pkg/server/httpserver/auth.go:125\n at github.com/gin-gonic/gin.(*Context).Next()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/context.go:173\n at github.com/chaos-mesh/chaosd/pkg/server/utils.MWHandleErrors.func1()\n\t/__w/chaosd/chaosd/pkg/server/utils/error.go:47\n at github.com/gin-gonic/gin.(*Context).Next()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/context.go:173\n at github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/recovery.go:101\n at github.com/gin-gonic/gin.(*Context).Next()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/context.go:173\n at github.com/gin-gonic/gin.LoggerWithConfig.func1()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/logger.go:240\n at github.com/gin-gonic/gin.(*Context).Next()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/context.go:173\n at github.com/gin-gonic/gin.(*Engine).handleHTTPRequest()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/gin.go:616\n at github.com/gin-gonic/gin.(*Engine).ServeHTTP()\n\t/github/home/go/pkg/mod/github.com/gin-gonic/gin@v1.8.1/gin.go:572\n at net/http.serverHandler.ServeHTTP()\n\t/__t/go/1.18.2/x64/src/net/http/server.go:2916\n at net/http.(*conn).serve()\n\t/__t/go/1.18.2/x64/src/net/http/server.go:1966\n at runtime.goexit()\n\t/__t/go/1.18.2/x64/src/runtime/asm_amd64.s:1571”}: HTTP status is not OK

chaosmesh用命令chaosd对jvm注入故障报错

[2025/02/20 17:18:01.174 +08:00] [ERROR] [jvm.go:57] [“bash: bminstall.sh: command not found\n”] [error=“exit status 127”] [stack=“github.com/chaos-mesh/chaosd/pkg/server/chaosd.jvmAttack.Attack\n\t/__w/chaosd/chaosd/pkg/server/chaosd/jvm.go:57\ngithub.com/chaos-mesh/chaosd/pkg/server/chaosd.(*Server).ExecuteAttack\n\t/__w/chaosd/chaosd/pkg/server/chaosd/attack.go:105\ngithub.com/chaos-mesh/chaosd/cmd/attack.jvmCommandFunc\n\t/__w/chaosd/chaosd/cmd/attack/jvm.go:181\nreflect.Value.call\n\t/__t/go/1.18.2/x64/src/reflect/value.go:556\nreflect.Value.Call\n\t/__t/go/1.18.2/x64/src/reflect/value.go:339\ngo.uber.org/dig.defaultInvoker\n\t/github/home/go/pkg/mod/go.uber.org/dig@v1.14.1/container.go:220\ngo.uber.org/dig.(*Scope).Invoke\n\t/github/home/go/pkg/mod/go.uber.org/dig@v1.14.1/invoke.go:92\ngo.uber.org/fx.runInvoke\n\t/github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/invoke.go:93\ngo.uber.org/fx.(*module).executeInvoke\n\t/github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/module.go:174\ngo.uber.org/fx.(*module).executeInvokes\n\t/github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/module.go:155\ngo.uber.org/fx.New\n\t/github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/app.go:534\ngithub.com/chaos-mesh/chaosd/pkg/utils.FxNewAppWithoutLog\n\t/__w/chaosd/chaosd/pkg/utils/utils.go:27\ngithub.com/chaos-mesh/chaosd/cmd/attack.NewJVMGCCommand.func1\n\t/__w/chaosd/chaosd/cmd/attack/jvm.go:132\ngithub.com/spf13/cobra.(*Command).execute\n\t/github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:860\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\t/github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974\ngithub.com/spf13/cobra.(*Command).Execute\n\t/github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902\nmain.main\n\t/__w/chaosd/chaosd/cmd/main.go:79\nruntime.main\n\t/__t/go/1.18.2/x64/src/runtime/proc.go:250”]
Error: exit status 127

更换过chaosd版本,更换过不同的服务器部署,报错依旧,麻烦有了解的大佬指点指点,多谢!

下面这些点都重点排查一下:

  • 检查 Chaos Controller Manager 日志,确认实验调度过程是否报错(如权限拒绝、资源未找到)。
  • 查看目标 Pod 的事件日志,确认 Byteman Agent 是否成功加载及规则提交状态。
  • 使用kubectl exec进入目标 Pod,执行jps -l验证 Byteman Agent 进程(org.jboss.byteman.agent.Main)是否存在。
  • 通过bmclog命令查看 Byteman 规则是否生效及执行日志。
    建议优先验证端口配置、Java 版本兼容性及权限配置,这三个因素在实践中最常导致 JVM 注入失败

报错里提示很清楚了,是你在执行 chaod工具命令的时候,没有找到对应的依赖库导致报错了