jiebi/CodeConvo huggingface dataset:
Change:
type netlinkHandle struct { netlink.Handle <ins> isIPv6 bool </ins> } // NewNetLinkHandle will crate a new NetLinkHandle <del> func NewNetLinkHandle() NetLinkHandle { return &netlinkHandle{netlink.Handle{}} </del> <ins> func NewNetLinkHandle(isIPv6 bool) NetLinkHandle { return &netlinkHandle{netlink.Handle{}, isIPv6} </ins> } // EnsureAddressBind checks if address is bound to the interface and, if not, binds it. If the address is already bound, return true.

Discussion:
Is this a BUG REPORT or FEATURE REQUEST?: /kind bug /area ipv6 /area ipvs /sig network What happened: In an ipv6-only cluster with proxy-mode=ipvs the entries for NodePort in ipvs are created for ipv4 addresses. The target's (if there are any) consists of ipv6 addresses (wrongly) interpreted as ipv4; Attempts to use the NodePort with ipv6 addresses are black-holed. What you expected to happen: Ipv6 addresses to the nodes should be used for NotePort and the LB-targets shall be the ipv6 address of the pods. Traffic to NodePorts shall be distributed among the (ipv6) endpoints. How to reproduce it (as minimally and precisely as possible): Setup an ipv6-only cluster Create a service with type with endpoints Try to connect to the NodePort Do Anything else we need to know?: The nodes have both ipv4 and ipv6 addresses and it is possible that if the nodes only had ipv6 addresses it would work (I havn't tested). But even in an ipv6-only k8s cluster the nodes almost always need ipv4 addresses for other purposes. Environment: Kubernetes version (use ):Cloud provider or hardware configuration: Kvm VMs on Ubuntu 18.04.01 LTS OS (e.g. from /etc/os-release): Own BusyBox based system Kernel (e.g. ):Install tools: None Others:
The NodeIPs() function seem to return only ipv4 addresses.
I can't see why (yet) since is used in the GetLocalAddresses function
/cc Please give a hint before I dive into the netlink code.
This issue is used as an example here;
The functions filters on Src != nil . But ipv6 addresses seems to have Src == nil always. As it is this function will never return any ipv6 addresses.
Change:
createTagFactor       = 2.0 createTagSteps        = 9 <del> // encryptedCheck* is configuration of poll for created volume to check // it has not been silently removed by AWS. </del> <ins> // volumeCreate* is configuration of exponential backoff for created volume. </ins> // On a random AWS account (shared among several developers) it took 4s on <del> // average. encryptedCheckInterval = 1 * time.Second encryptedCheckTimeout  = 30 * time.Second </del> <ins> // average, 8s max. volumeCreateInitialDelay  = 5 * time.Second volumeCreateBackoffFactor = 1.2 volumeCreateBackoffSteps  = 10 </ins> // Number of node names that can be added to a filter. The AWS limit is 200 // but we are using a lower limit on purpose

Discussion:
What happened: When creating an EBS volume, we're currently waiting for the volume be in the correct state before proceeding: However, we're using the interval defined in (e.g., 1 second), which was meant to be used for another reason and might be too soon for this specific case. Also, this might contribute to the API quota being exceeded. CC /sig storage /sig aws
Yeah I think, this should be considered a regression. Many of our AWS clusters run on very thin margin of API quota and this would tip them over the edge.
Change:
// given a wwn and lun, find the device and associated devicemapper parent func findDisk(wwn, lun string, io ioHandler, deviceUtil volumeutil.DeviceUtil) (string, string) { <del> fcPath := "-fc-0x" + wwn + "-lun-" + lun </del> <ins> fcPathExp := "^(pci-.*-fc|fc)-0x" + wwn + "-lun-" + lun r := regexp.MustCompile(fcPathExp) </ins> devPath := byPath if dirs, err := io.ReadDir(devPath); err == nil { for _, f := range dirs { name := f.Name() <del> if strings.Contains(name, fcPath) { </del> <ins> if r.MatchString(name) { </ins> if disk, err1 := io.EvalSymlinks(devPath + name); err1 == nil { dm := deviceUtil.FindMultipathDeviceForDevice(disk) klog.Infof("fc: find disk: %v, dm: %v", disk, dm)

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --What happened: Currently, we have logic here to look for the disk names with but this fails when we have devices which are starting with e.g: on ppc64le architecture, NPIV based fc disks are discovered as follows: and here is the udev information for one of the disk: Because of the existing logic k8s fails to detect the disk because it does not start with instead starts with , so pod creation fails with the following error: What you expected to happen: FC disk should get attached properly to the pod How to reproduce it (as minimally and precisely as possible): sample pod yaml on a machine with path names starts with Anything else we need to know?: Environment:
/sig storage
/triage accepted
Change:
app: federated-cluster module: federation-controller-manager spec: <ins> volumes: - name: ssl-certs hostPath: path: /etc/ssl/certs </ins> containers: - name: controller-manager <ins> volumeMounts: - name: ssl-certs readOnly: true mountPath: /etc/ssl/certs </ins> image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}} command: - /usr/local/bin/federation-controller-manager

Discussion:
Current the federation-controller-manager docker images does not include a root ca cert bundle which causes syncing with DNS providers to fail: To fix this issue I created my own container image using the following Dockerfile: This resulted in a working image with a root cert bundle. Syncing with the GCE DNS provider now works.
cc: FYI...
I'm willing to grab this tomorrow.
Cool, thanks . Re-assigning.
Change:
t.Errorf("The code did panic") } }() n.OnNodeAdd(node) }) } } func TestNodePodCIDRHandlerUpdate(t *testing.T) { <ins> oldKlogOsExit := klog.OsExit defer func() { klog.OsExit = oldKlogOsExit }() klog.OsExit = customExit </ins> tests := []struct { name            string oldNodePodCIDRs []string

Discussion:
There are some cases when kube-proxy has to exit and restart, in order to do that we panic, but this has the problem that the log output shows a literal "panic" message and engineers, support, customers and automation gets confused, thinking that is a problem when is the expected behavior. As suggested by in , we can replace by /sig network /help /kind cleanup
This request has been marked as needing help from a contributor. Please ensure that the issue body includes answers to the following questions: Why are we solving this issue? To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points? Does this issue have zero to low barrier of entry? How can the assignee reach out to you for help? For more details on the requirements of such an issue, please see and ensure that they are met. If this request no longer meets these requirements, the label can be removed by commenting with the command. <detailsIn response to : There are some cases when kube-proxy has to exit and restart, in order to do that we panic, but this has the problem that the log output shows a literal "panic" message and engineers, support, customers and automation gets confused, thinking that is a problem when is the expected behavior. /help /kind cleanup </details
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the label and provide further guidance. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/assign I would like to raise a PR to fix this.
Change:
// It is more extensive than IsLikelyNotMountPoint // and it detects bind mounts in linux func IsNotMountPoint(mounter Interface, file string) (bool, error) { <ins> // Resolve any symlinks in file, kernel would do the same and use the resolved path in /proc/mounts resolvedFile, err := mounter.EvalHostSymlinks(file) if err != nil { return true, err } </ins> // IsLikelyNotMountPoint provides a quick check // to determine whether file IS A mountpoint <del> notMnt, notMntErr := mounter.IsLikelyNotMountPoint(file) </del> <ins> notMnt, notMntErr := mounter.IsLikelyNotMountPoint(resolvedFile) </ins> if notMntErr != nil && os.IsPermission(notMntErr) { // We were not allowed to do the simple stat() check, e.g. on NFS with // root_squash. Fall back to /proc/mounts check below.

Discussion:
This is related to and , but these issues contain several different bugs, so I am creating a new one. Steps to reproduce: must be a symlink somewhere else. If you don't have a symlink, then it's a different bug. a pod with ConfigMap volume with SubPath: (the pod should run just fine) -The pod is Terminating forever From the logs: You can see there is no "Unmounting /var/lib/kubelet/pods/-ba83-11e8-983c-/volume-subpaths/vol/busybox/0", so kubelet did not even try to unmount it. Environment: Kubernetes version 1.9.x (and today's master). /kind bug /sig storage another subpath bug :-)
Posted , kubelet gets confused by /var/lib/kubelet being a symlinks and it looks for /var/lib/kubelet/pods/... in /proc/mounts instead of target of the symlink.
Change:
}, []string{"group", "version", "kind"}, ) <del> // Because of volatality of the base metric this is pre-aggregated one. Instead of reporing current usage all the time </del> <ins> // Because of volatility of the base metric this is pre-aggregated one. Instead of reporting current usage all the time </ins> // it reports maximal usage during the last second. currentInflightRequests = compbasemetrics.NewGaugeVec( &compbasemetrics.GaugeOpts{

Discussion:
What happened: When the kube-apiserver timeouts on a request, we end up doubling the counts measured in : apiserverrequestcounts apiserverrequesttotal apiserverrequestlatencies apiserverrequestlatenciessummary apiserverrequestdurationseconds apiserverresponsesizes What you expected to happen: We only count our requests a single time in our metrics. How to reproduce it (as minimally and precisely as possible): Add a 60 second sleep in the func . You may want to filter by resource (like pods or something) and verb for testing (otherwise this will be quite annoying). Manually hit that endpoint and look at the metric output. /assign
/sig api-machinery instrumentation /cc
Thanks for filing. Can we, while fixing this, add a metric counting timed-out requests? You can't tell from the latency distribution, even if we made the buckets more useful.
Yeah, that's the current plan. I've relayed the idea to offline and he has concurred.
Change:
// SkipUnlessSSHKeyPresent skips if no SSH key is found. func SkipUnlessSSHKeyPresent() { <del> if _, err := e2essh.GetSigner(TestContext.Provider); err != nil { skipInternalf(1, "No SSH Key for provider %s: '%v'", TestContext.Provider, err) </del> <ins> if _, err := e2essh.GetSigner(framework.TestContext.Provider); err != nil { skipInternalf(1, "No SSH Key for provider %s: '%v'", framework.TestContext.Provider, err) </ins> } }

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --What happened: Flexvolume e2e tests are skipped in https://k8s-, so as far as I can tell we don't have Flexvolume test coverage. They are skipped because they require SSH access to drop the Flexvolume plugin onto the host, but these test clusters do not have SSH access. We should change all Flexvolume tests to use the DaemonSet installation mechanism instead which does not require SSH access. See and Flexvolume tests I'm aware of are below, but there could be more: Looking for help with this bug! /sig storage /priority important-soon /help
This request has been marked as needing help from a contributor. Please ensure the request meets the requirements listed . If this request no longer meets these requirements, the label can be removed by commenting with the command. <detailsIn response to : <!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! --What happened: Flexvolume e2e tests are skipped in https://k8s-, so as far as I can tell we don't have Flexvolume test coverage. /priority important-soon /help Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
Hi, Can I work on this issue? I think i know how to handle it.
are you still working on this? I'm interested in helping out as well.
/assign
Change:
serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, slicesParam:  []*discovery.EndpointSlice{epSlice1NewerGen}, expectNewer:  false, <ins> }, { name: "slice in params is expected to be deleted", tracker: &endpointSliceTracker{ generationsByService: map[types.NamespacedName]generationsBySlice{ {Name: "svc1", Namespace: "ns1"}: { epSlice1.UID: deletionExpected, }, }, }, serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, slicesParam:  []*discovery.EndpointSlice{epSlice1}, expectNewer:  true, }, { name: "slice in tracker but not in params", tracker: &endpointSliceTracker{ generationsByService: map[types.NamespacedName]generationsBySlice{ {Name: "svc1", Namespace: "ns1"}: { epSlice1.UID: epSlice1.Generation, }, }, }, serviceParam: &v1.Service{ObjectMeta: metav1.ObjectMeta{Name: "svc1", Namespace: "ns1"}}, slicesParam:  []*discovery.EndpointSlice{}, expectNewer:  true, </ins> }} for _, tc := range testCases {

Discussion:
The controllers can create a second EndpointSlice after an immediate sync if the first EndpointSlice they created is not in the cache yet. Here's what can happen: gets event that triggers sync for Service syncs and creates EndpointSlice gets event that triggers sync for same Service syncs and creates EndpointSlice (the slice created in 2 has not made it to the cache yet) A single EndpointSlice to be created. Run integration tests hundreds of times that involve 2 consecutive events that will trigger a sync. Example: /assign /sig network
/triage accepted
/cc
When this bug is fixed, we'll need to rollback
just amend it in the PR that fix the bug, so we merge all together
Change:
# Prepare a RBD volume "foo" (only with layering feature, the others may # require newer clients). # NOTE: we need Ceph kernel modules on the host that runs the client! <ins> # As the default pool `rbd` might not be created on arm64 platform for ceph deployment, # should create it if it does not exist. arch=$(uname -m) if [[ ${arch} = 'aarch64' || ${arch} = 'arm64' ]]; then if [[ $(ceph osd lspools) = "" ]]; then ceph osd pool create rbd 8 rbd pool init rbd fi fi </ins> rbd import --image-feature layering block foo # Prepare a cephfs volume

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --When I run some e2e storage testcases locally, below testcases as an example, I consistently saw the below error message, ceph should be deployed successfully and testcase should pass. Run the testcases mentioned above. e.g. Kubernetes version (use ): ALL Cloud provider or hardware configuration: ARM64 OS (e.g: ): ubuntu18 Kernel (e.g. ): Install tools: Network plugin and version (if this is a network-related bug): Others:
/sig testing /sig storage
/assign
is this happening in CI? please provide links to occurences?
Hey, Ben, I update the issue description a little bit, this won't be an issue on X86 which is currently the default arch CI is running, but tons of testcases will fail on ARM64 due to this issue. Eventually, we hope the k8s will have a ARM CI along with the more adoption of arch beside the X86, and thus, those e2e testcases should workable on ARM64 firstly. I will explain why it failed on ARM64 in the PR desc, pls help to review, thanks!
/triage accepted
Change:
podutil.DropDisabledPodFields(pod, nil) <del> applyWaitingForSchedulingGatesCondition(pod) </del> <ins> applySchedulingGatedCondition(pod) </ins> mutatePodAffinity(pod) }

Discussion:
<img width="844" alt="image" src="" <img width="942" alt="image" src="" Here are some incorrect comments and function name about SchedulingGated Comments and function names need to be changed to SchedulingGated nothing No response <details</details<details</details<details</details<details</details<details</details<details</details
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the label and provide further guidance. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/assign
/sig scheduling
/remove-kind bug /kind cleanup
Change:
"context" "testing" <del> "github.com/google/go-cmp/cmp" </del> "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions" "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/validation/field" <del> "k8s.io/apiserver/pkg/features" utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" </del> "k8s.io/utils/pointer" )

Discussion:
This is the tracking issue of promoting CRD validation rules to GA: Listed the blocking issues/features below: [x] [x] [x] [x] Issues be aware of but should not be a GA blocker [ ] [ ] [ ] [ ] [ ] /sig api-machinery /triage accepted
/assign
/cc
Change:
path      string success   bool }{ <del> "basic":            {pod, &api.Container{Name: "foo"}, "spec.containers[0]", true}, "basic2":           {pod, &api.Container{Name: "baz"}, "spec.containers[2]", true}, "basicSamePointer": {pod, &pod.Spec.Containers[0], "spec.containers[0]", true}, </del> <ins> "basic":            {pod, &api.Container{Name: "foo"}, "spec.containers{foo}", true}, "basic2":           {pod, &api.Container{Name: "baz"}, "spec.containers{baz}", true}, "emptyName":        {pod, &api.Container{Name: ""}, "spec.containers[2]", true}, "basicSamePointer": {pod, &pod.Spec.Containers[0], "spec.containers{foo}", true}, </ins> "missing":          {pod, &api.Container{Name: "qux"}, "", false}, }

Discussion:
Forked from ... The event generated from kubelet for BoundPod and displayed by kubectl should have Container(s) column ; otherwise, the user might think the entire pod is at the running state, but actually only one or some containers are running. When there are missing event(s) for failed containers, the thing gets worse. For example, in case, only net container is running. $ get events | grep testpd Running: cluster/../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl get events Mon, 29 Dec 2014 20:58:38 +0000 testpd BoundPod waiting created Created with docker id eb3f53865a8825a3db3b64f6f319b64bfecbcbabc7115a73c2358c8c73793004 Mon, 29 Dec 2014 20:58:38 +0000 testpd Pod Pending scheduled Successfully assigned testpd to kubernetes-minion- Mon, 29 Dec 2014 20:58:38 +0000 testpd BoundPod waiting pulled Successfully pulled image kubernetes/pause:latest Mon, 29 Dec 2014 20:58:39 +0000 testpd BoundPod running started Started with docker id eb3f53865a8825a3db3b64f6f319b64bfecbcbabc7115a73c2358c8c73793004
Change:
} func (c *BlobDiskController) getAllStorageAccounts() (map[string]*storageAccountState, error) { <del> accountListResult, err := c.common.cloud.StorageAccountClient.List() </del> <ins> accountListResult, err := c.common.cloud.StorageAccountClient.ListByResourceGroup(c.common.resourceGroup) </ins> if err != nil { return nil, err }

Discussion:
Is this a BUG REPORT or FEATURE REQUEST?: /kind bug What happened: Deploy a cluster on azure with managed identity. The controller manager won't start: The following code tries to list all storage account in subscription, while it only has permission for the containing resource group. This issue would also apply for service principals with permission for the cluster resource group only. What you expected to happen: The cluster works correctly. How to reproduce it (as minimally and precisely as possible): Refer to: Anything else we need to know?: Environment: Updated: The client would only list the resources it has permission to, so the issue's cause here is not RBAC permission. Please see below comments for detail.
/sig azure
Checked the inner cause of the error log, the response returned by local msi endpoint is: There are 2 issues need to be fixed here: now needs metadata header Pending on integration with: storage account in current resource group master branch already contains that fix in 'go-autorest' , the issue is for v1.8 only
I have the same issue and expect fix for 1.8. Thanks
I don't think there would be a cherry-pick of azure SDK upgrade for a preview feature.
Change:
glog.Warningf("Warning: Unmount skipped because path does not exist: %v", mountPath) return nil } <del> corruptedMnt := isCorruptedMnt(pathErr) </del> <ins> corruptedMnt := IsCorruptedMnt(pathErr) </ins> if pathErr != nil && !corruptedMnt { return fmt.Errorf("Error checking path: %v", pathErr) }

Discussion:
/kind bug What happened: Kubelet failed to unmount volumes if the backend ISCSI volume is not available. This also applies to other network attached volumes. What you expected to happen: Kubelet should be able to unmount the volumes. A manual unmount works even when the backend network volume is not available. How to reproduce it (as minimally and precisely as possible): Mount an ISCSI/network volume and disconnect/de-provision ISCSI target. Anything else we need to know?: XFS shuts down the filesystem due to I/O errors. Kubelet uses "stat" calls to figure out if it is a valid mount point or it is already unmounted. Stat calls fail with EIO and Kubelet never proceeds to unmount the volume. Environment: Kubernetes version (use ): Kubernetes 1.10.5 Cloud provider or hardware configuration: Bare metal OS (e.g. from /etc/os-release): Centos 7.4 Kernel (e.g. ): Linux appserv37 3.10.0-693.el7.x8664 SMP Tue Aug 22 21:09:27 UTC 2017 x8664 x8664 x8664 GNU/Linux Install tools: Manual bring up Others:
/sig storage
IsLikelyNotMountPoint is using stat call to figure the filesystem is mounted or not. Stat calls are failing with EIO when there are I/O errors on the backend and Kubelet never proceeds to unmount the filesystem. Also, isLikelyNotMountPoint is not looking for "isCorruptedMnt" errors. All other calls have it.
looks like the nfs plugin is calling . Can iscsi use that?
didn't include error "Input/output error" () We should add it. I make a fix, PTAL, Thank you!
Thanks. Trying out the change. Will keep you posted if we need any other changes.
Stock ISCSI driver is working fine with EIO change. But more changes are required for making it work with Flexvolume drivers. I have the change list. I can club your change in or let me know if you want to go ahead and push this fix. I will push another PR to fix flexvolume issues.
Please club my change, I will close my PR. Thanks!