chaos-mesh / chaosd

A Chaos Engineering toolkit.
Apache License 2.0
133 stars 63 forks source link

Network Delay - Error: Specified class not found #221

Open dyegowermelinger opened 1 year ago

dyegowermelinger commented 1 year ago

Issue: Error when running the ChaosD network delay experiment.

What version of ChaosD are you using?

root@chaos-demo:~# chaosd version
Chaosd Version: version.Info{GitVersion:"v1.3.1", GitCommit:"98f3ca40c160c510302a81ed0b0d123e654f96d6", BuildDate:"2022-09-14T16:48:49Z", GoVersion:"go1.18.2", Compiler:"gc", Platform:"linux/amd64"}

What did you do? chaosd attack network delay -d "ens3" -l 500ms -p all

Error: root@chaos-demo:~# chaosd attack network delay -d "ens3" -l 500ms -p all 2022-12-02T12:24:02.591Z INFO chaosd/network.go:77 Set iptables chains {"request": ""} 2022-12-02T12:24:02.607Z INFO chaosd/network.go:82 handling tc request {"tcs": "tcs:{netem:{time:3000000} ipset:\"chaos-0e441868-849d-43\"} tcs:{netem:{time:3000000} ipset:\"chaos-9e9b5b73-a02c-42\"} tcs:{netem:{time:3000000} ipset:\"chaos-a21c8660-6767-4d\" protocol:\"all\"} tcs:{netem:{time:3000000} protocol:\"all\"} tcs:{netem:{time:3000000} protocol:\"all\"} tcs:{netem:{time:1000} protocol:\"all\"} tcs:{netem:{time:500000} protocol:\"all\"} tcs:{netem:{time:300000} ipset:\"chaos-edd2e6a9-8fa2-42\" protocol:\"all\"} tcs:{netem:{time:300000} ipset:\"chaos-d2545c70-9a1b-49\" protocol:\"all\"} tcs:{netem:{time:300000} ipset:\"chaos-4f08a46f-4a9e-4f\" protocol:\"all\"} tcs:{netem:{time:500000} protocol:\"all\" device:\"ens3\"}"} 2022-12-02T12:24:02.607Z INFO chaosd/network.go:194 get interfaces from net.Interfaces() {"ifaces": ["lo", "ens3", "docker0", "eth0"]} 2022-12-02T12:24:02.618Z INFO chaosdaemon/tc_server.go:184 adding prio {"parent": 0} 2022-12-02T12:24:02.625Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:3000000} ipset:\"chaos-0e441868-849d-43\" device:\"eth0\""} 2022-12-02T12:24:02.625Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:4", "handle": "handle 5:"} 2022-12-02T12:24:02.627Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:3000000} ipset:\"chaos-9e9b5b73-a02c-42\" device:\"eth0\""} 2022-12-02T12:24:02.627Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:5", "handle": "handle 6:"} 2022-12-02T12:24:02.629Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:3000000} ipset:\"chaos-a21c8660-6767-4d\" protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.629Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:6", "handle": "handle 7:"} 2022-12-02T12:24:02.630Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:3000000} protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.631Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:7", "handle": "handle 8:"} 2022-12-02T12:24:02.632Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:3000000} protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.632Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 8:", "handle": "handle 9:"} 2022-12-02T12:24:02.634Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:1000} protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.634Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 9:", "handle": "handle 10:"} 2022-12-02T12:24:02.636Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:500000} protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.636Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 10:", "handle": "handle 11:"} 2022-12-02T12:24:02.638Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:300000} ipset:\"chaos-edd2e6a9-8fa2-42\" protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.638Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:8", "handle": "handle 12:"} 2022-12-02T12:24:02.640Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:300000} ipset:\"chaos-d2545c70-9a1b-49\" protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.640Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:9", "handle": "handle 13:"} 2022-12-02T12:24:02.641Z INFO chaosdaemon/tc_server.go:184 add tc {"tc": "netem:{time:300000} ipset:\"chaos-4f08a46f-4a9e-4f\" protocol:\"all\" device:\"eth0\""} 2022-12-02T12:24:02.641Z INFO chaosdaemon/tc_server.go:257 adding netem {"device": "eth0", "parent": "parent 1:10", "handle": "handle 14:"} 2022-12-02T12:24:02.643Z ERROR chaosd/network.go:194 error while adding tc {"error": "error code: exit status 2, msg: Error: Specified class not found.\n", "errorVerbose": "error code: exit status 2, msg: Error: Specified class not found.\n\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon/util.EncodeOutputToError\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/util/util.go:118\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*tcClient).addNetem\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:400\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*tcClient).addTc\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:341\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*DaemonServer).setFilterTcs\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:257\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*DaemonServer).SetTcs\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:184\ngithub.com/chaos-mesh/chaosd/pkg/server/chaosd.(*Server).applyTC\n\t/__w/chaosd/chaosd/pkg/server/chaosd/network.go:194\ngithub.com/chaos-mesh/chaosd/pkg/server/chaosd.networkAttack.Attack\n\t/__w/chaosd/chaosd/pkg/server/chaosd/network.go:82\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.commonNetworkAttackFunc\n\t/__w/chaosd/chaosd/cmd/attack/network.go:251\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.NewNetworkDelayCommand.func1\n\t/__w/chaosd/chaosd/cmd/attack/network.go:67\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\nruntime.goexit\n\t/__t/go/1.18.2/x64/src/runtime/asm_amd64.s:1571"} github.com/chaos-mesh/chaosd/pkg/server/chaosd.(*Server).applyTC /__w/chaosd/chaosd/pkg/server/chaosd/network.go:194 github.com/chaos-mesh/chaosd/pkg/server/chaosd.networkAttack.Attack /__w/chaosd/chaosd/pkg/server/chaosd/network.go:82 github.com/chaos-mesh/chaosd/pkg/server/chaosd.(*Server).ExecuteAttack /__w/chaosd/chaosd/pkg/server/chaosd/attack.go:105 github.com/chaos-mesh/chaosd/cmd/attack.commonNetworkAttackFunc /__w/chaosd/chaosd/cmd/attack/network.go:251 reflect.Value.call /__t/go/1.18.2/x64/src/reflect/value.go:556 reflect.Value.Call /__t/go/1.18.2/x64/src/reflect/value.go:339 go.uber.org/dig.defaultInvoker /github/home/go/pkg/mod/go.uber.org/dig@v1.14.1/container.go:220 go.uber.org/dig.(*Scope).Invoke /github/home/go/pkg/mod/go.uber.org/dig@v1.14.1/invoke.go:92 go.uber.org/fx.runInvoke /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/invoke.go:93 go.uber.org/fx.(*module).executeInvoke /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/module.go:174 go.uber.org/fx.(*module).executeInvokes /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/module.go:155 go.uber.org/fx.New /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/app.go:534 github.com/chaos-mesh/chaosd/pkg/utils.FxNewAppWithoutLog /__w/chaosd/chaosd/pkg/utils/utils.go:27 github.com/chaos-mesh/chaosd/cmd/attack.NewNetworkDelayCommand.func1 /__w/chaosd/chaosd/cmd/attack/network.go:67 github.com/spf13/cobra.(*Command).execute /github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:860 github.com/spf13/cobra.(*Command).ExecuteC /github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974 github.com/spf13/cobra.(*Command).Execute /github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902 main.main /__w/chaosd/chaosd/cmd/main.go:79 runtime.main /__t/go/1.18.2/x64/src/runtime/proc.go:250 2022-12-02T12:24:02.644Z ERROR chaosd/network.go:82 error while setting filter tc {"error": "error code: exit status 2, msg: Error: Specified class not found.\n", "errorVerbose": "error code: exit status 2, msg: Error: Specified class not found.\n\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon/util.EncodeOutputToError\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/util/util.go:118\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*tcClient).addNetem\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:400\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*tcClient).addTc\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:341\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*DaemonServer).setFilterTcs\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:257\ngithub.com/chaos-mesh/chaos-mesh/pkg/chaosdaemon.(*DaemonServer).SetTcs\n\t/github/home/go/pkg/mod/github.com/chaos-mesh/chaos-mesh@v0.9.1-0.20220812140450-4bc7ef589c13/pkg/chaosdaemon/tc_server.go:184\ngithub.com/chaos-mesh/chaosd/pkg/server/chaosd.(*Server).applyTC\n\t/__w/chaosd/chaosd/pkg/server/chaosd/network.go:194\ngithub.com/chaos-mesh/chaosd/pkg/server/chaosd.networkAttack.Attack\n\t/__w/chaosd/chaosd/pkg/server/chaosd/network.go:82\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.commonNetworkAttackFunc\n\t/__w/chaosd/chaosd/cmd/attack/network.go:251\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.NewNetworkDelayCommand.func1\n\t/__w/chaosd/chaosd/cmd/attack/network.go:67\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\nruntime.goexit\n\t/__t/go/1.18.2/x64/src/runtime/asm_amd64.s:1571"} github.com/chaos-mesh/chaosd/pkg/server/chaosd.networkAttack.Attack /__w/chaosd/chaosd/pkg/server/chaosd/network.go:82 github.com/chaos-mesh/chaosd/pkg/server/chaosd.(*Server).ExecuteAttack /__w/chaosd/chaosd/pkg/server/chaosd/attack.go:105 github.com/chaos-mesh/chaosd/cmd/attack.commonNetworkAttackFunc /__w/chaosd/chaosd/cmd/attack/network.go:251 reflect.Value.call /__t/go/1.18.2/x64/src/reflect/value.go:556 reflect.Value.Call /__t/go/1.18.2/x64/src/reflect/value.go:339 go.uber.org/dig.defaultInvoker /github/home/go/pkg/mod/go.uber.org/dig@v1.14.1/container.go:220 go.uber.org/dig.(*Scope).Invoke /github/home/go/pkg/mod/go.uber.org/dig@v1.14.1/invoke.go:92 go.uber.org/fx.runInvoke /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/invoke.go:93 go.uber.org/fx.(*module).executeInvoke /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/module.go:174 go.uber.org/fx.(*module).executeInvokes /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/module.go:155 go.uber.org/fx.New /github/home/go/pkg/mod/go.uber.org/fx@v1.17.1/app.go:534 github.com/chaos-mesh/chaosd/pkg/utils.FxNewAppWithoutLog /__w/chaosd/chaosd/pkg/utils/utils.go:27 github.com/chaos-mesh/chaosd/cmd/attack.NewNetworkDelayCommand.func1 /__w/chaosd/chaosd/cmd/attack/network.go:67 github.com/spf13/cobra.(*Command).execute /github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:860 github.com/spf13/cobra.(*Command).ExecuteC /github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974 github.com/spf13/cobra.(*Command).Execute /github/home/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902 main.main /__w/chaosd/chaosd/cmd/main.go:79 runtime.main /__t/go/1.18.2/x64/src/runtime/proc.go:250 Error: error code: exit status 2, msg: Error: Specified class not found.

OS Version root@chaos-demo:~# cat /etc/os-release NAME="Ubuntu" VERSION="20.04.2 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.2 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal root@chaos-demo:~#

Network config: root@chaos-demo:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether fa:16:3e:ef:0c:bf brd ff:ff:ff:ff:ff:ff inet 10.31.30.141/24 brd 10.31.30.255 scope global dynamic ens3 valid_lft 49577sec preferred_lft 49577sec inet6 fe80::f816:3eff:feef:cbf/64 scope link valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 02:42:d1:0c:39:78 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:d1ff:fe0c:3978/64 scope link valid_lft forever preferred_lft forever 16: eth0: <BROADCAST,NOARP> mtu 1500 qdisc prio state DOWN group default qlen 1000 link/ether 7a:c7:c5:5f:53:d3 brd ff:ff:ff:ff:ff:ff

Observations:

ip addr sudo ip link add eth0 type dummy