{"action":"created","issue":{"url":"https://api.github.com/repos/google/metallb/issues/246","repository_url":"https://api.github.com/repos/google/metallb","labels_url":"https://api.github.com/repos/google/metallb/issues/246/labels{/name}","comments_url":"https://api.github.com/repos/google/metallb/issues/246/comments","events_url":"https://api.github.com/repos/google/metallb/issues/246/events","html_url":"https://github.com/google/metallb/issues/246","id":315849614,"number":246,"title":"High CPU usage after pod deletion with layer2","user":{"login":"flaktack","id":58879,"avatar_url":"https://avatars2.githubusercontent.com/u/58879?v=4","gravatar_id":"","url":"https://api.github.com/users/flaktack","html_url":"https://github.com/flaktack","followers_url":"https://api.github.com/users/flaktack/followers","following_url":"https://api.github.com/users/flaktack/following{/other_user}","gists_url":"https://api.github.com/users/flaktack/gists{/gist_id}","starred_url":"https://api.github.com/users/flaktack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flaktack/subscriptions","organizations_url":"https://api.github.com/users/flaktack/orgs","repos_url":"https://api.github.com/users/flaktack/repos","events_url":"https://api.github.com/users/flaktack/events{/privacy}","received_events_url":"https://api.github.com/users/flaktack/received_events","type":"User","site_admin":false},"labels":[{"id":744727995,"url":"https://api.github.com/repos/google/metallb/labels/bug","name":"bug","color":"ee0701","default":true}],"state":"open","locked":false,"assignee":{"login":"danderson","id":1918,"avatar_url":"https://avatars0.githubusercontent.com/u/1918?v=4","gravatar_id":"","url":"https://api.github.com/users/danderson","html_url":"https://github.com/danderson","followers_url":"https://api.github.com/users/danderson/followers","following_url":"https://api.github.com/users/danderson/following{/other_user}","gists_url":"https://api.github.com/users/danderson/gists{/gist_id}","starred_url":"https://api.github.com/users/danderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danderson/subscriptions","organizations_url":"https://api.github.com/users/danderson/orgs","repos_url":"https://api.github.com/users/danderson/repos","events_url":"https://api.github.com/users/danderson/events{/privacy}","received_events_url":"https://api.github.com/users/danderson/received_events","type":"User","site_admin":false},"assignees":[{"login":"danderson","id":1918,"avatar_url":"https://avatars0.githubusercontent.com/u/1918?v=4","gravatar_id":"","url":"https://api.github.com/users/danderson","html_url":"https://github.com/danderson","followers_url":"https://api.github.com/users/danderson/followers","following_url":"https://api.github.com/users/danderson/following{/other_user}","gists_url":"https://api.github.com/users/danderson/gists{/gist_id}","starred_url":"https://api.github.com/users/danderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danderson/subscriptions","organizations_url":"https://api.github.com/users/danderson/orgs","repos_url":"https://api.github.com/users/danderson/repos","events_url":"https://api.github.com/users/danderson/events{/privacy}","received_events_url":"https://api.github.com/users/danderson/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-04-19T12:11:16Z","updated_at":"2018-04-19T19:17:37Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"**Is this a bug report or a feature request?**:\r\n\r\nbug\r\n\r\n**What happened**:\r\n\r\nWhen an interface (pod) was deleted the speaker cpu usage went above >100% until it was restarted.\r\n\r\n**What you expected to happen**:\r\n\r\nThings remain \"normal\".\r\n\r\n**How to reproduce it (as minimally and precisely as possible)**:\r\n\r\n1. Edit `metallb.yaml` to remove resource limits and `example-layer2-config.yaml`.\r\n2. Create a simple `LoadBalancer` (`lb.yaml`):\r\n```\r\napiVersion: v1\r\nkind: Service\r\nmetadata:\r\n  name: kubernetes-lb\r\n  namespace: kube-system\r\nspec:\r\n  externalTrafficPolicy: Cluster\r\n  ports:\r\n  - name: https\r\n    port: 6443\r\n    protocol: TCP\r\n    targetPort: 6443\r\n  selector:\r\n    component: kube-apiserver\r\n    tier: control-plane\r\n  type: LoadBalancer\r\n```\r\n3. Create minikube\r\n```\r\nminikube start\r\nkubectl create -f manifests/metallb.yaml\r\nkubectl create -f manifests/example-layer2-config.yaml\r\nkubectl create -f lb.yaml\r\n# Wait for metallb to start / allocate ip\r\nkubectl -n kube-system scale deployment kube-dns --replicas=2\r\n# Wait for kube-dns to scale\r\nkubectl -n kube-system scale deployment kube-dns --replicas=1\r\n# Wait for kube-dns to scale\r\nminikube ssh top\r\n```\r\nSpeaker logs:\r\n```\r\n{\"caller\":\"announcer.go:88\",\"event\":\"createARPResponder\",\"interface\":\"veth0de2337\",\"msg\":\"created ARP responder for interface\",\"ts\":\"2018-04-19T11:49:13.962397408Z\"}\r\n{\"caller\":\"announcer.go:93\",\"error\":\"creating NDP responder for \\\"veth0de2337\\\": listen ip6:ipv6-icmp fe80::8c3a:5eff:fe01:fd81%veth0de2337: bind: invalid argument\",\"interface\":\"veth0de2337\",\"msg\":\"failed to create NDP responder\",\"op\":\"createNDPResponder\",\"ts\":\"2018-04-19T11:49:13.962963259Z\"}\r\n...\r\n{\"caller\":\"announcer.go:105\",\"event\":\"deleteARPResponder\",\"interface\":\"veth0de2337\",\"msg\":\"deleted ARP responder for interface\",\"ts\":\"2018-04-19T11:50:33.98100683Z\"}\r\n{\"caller\":\"announcer.go:112\",\"event\":\"deleteNDPResponder\",\"interface\":\"veth0de2337\",\"msg\":\"deleted NDP responder for interface\",\"ts\":\"2018-04-19T11:50:33.981467945Z\"}\r\n```\r\n\r\nTop line:\r\n```\r\n  PID USER      PR  NI    VIRT    RES  %CPU %MEM     TIME+ S COMMAND \r\n 5458 root      20   0   41.8m  30.7m 157.6  1.5   1:18.84 S              `- speaker\r\n```\r\n\r\n**Anything else we need to know?**:\r\n\r\nThe NDP responder wasn't created for the pod interface, which may or may not have anything to do with this:\r\n```\r\n{\"caller\":\"announcer.go:93\",\"error\":\"creating NDP responder for \\\"veth0de2337\\\": listen ip6:ipv6-icmp fe80::8c3a:5eff:fe01:fd81%veth0de2337: bind: invalid argument\",\"interface\":\"veth0de2337\",\"msg\":\"failed to create NDP responder\",\"op\":\"createNDPResponder\",\"ts\":\"2018-04-19T11:49:23.964802177Z\"}\r\n```\r\n\r\n**Environment**:\r\n- MetalLB version: `(commit 83a2aedc, branch master)`\r\n- minikube version: `v0.26.1`\r\n- Kubernetes version: `v1.10.0`\r\n- BGP router type/version: `layer2`\r\n- OS (e.g. from /etc/os-release): `Buildroot 2017.11`\r\n- Kernel (e.g. `uname -a`): `Linux minikube 4.9.64 #1 SMP Fri Mar 30 21:27:22 UTC 2018 x86_64 GNU/Linux`"},"comment":{"url":"https://api.github.com/repos/google/metallb/issues/comments/382850629","html_url":"https://github.com/google/metallb/issues/246#issuecomment-382850629","issue_url":"https://api.github.com/repos/google/metallb/issues/246","id":382850629,"user":{"login":"danderson","id":1918,"avatar_url":"https://avatars0.githubusercontent.com/u/1918?v=4","gravatar_id":"","url":"https://api.github.com/users/danderson","html_url":"https://github.com/danderson","followers_url":"https://api.github.com/users/danderson/followers","following_url":"https://api.github.com/users/danderson/following{/other_user}","gists_url":"https://api.github.com/users/danderson/gists{/gist_id}","starred_url":"https://api.github.com/users/danderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danderson/subscriptions","organizations_url":"https://api.github.com/users/danderson/orgs","repos_url":"https://api.github.com/users/danderson/repos","events_url":"https://api.github.com/users/danderson/events{/privacy}","received_events_url":"https://api.github.com/users/danderson/received_events","type":"User","site_admin":false},"created_at":"2018-04-19T19:17:37Z","updated_at":"2018-04-19T19:17:37Z","author_association":"COLLABORATOR","body":"Thanks for the report. This smells like a responder goroutine spinning after deletion rather than cleaning itself up. I'll dig into it."}}
{"actor":{"display_login":"danderson"}}