jiebi/CodeConvo huggingface dataset:
Change:
// known that the count does not need to be accurate. // BTW, the count only needs to be accurate in a test that // uses FakeEventClock::Run(). <del> klog.V(6).Infof("QS(%s): Context of request %q %#+v %#+v is Done", qs.qCfg.Name, fsName, descr1, descr2) </del> <ins> klog.V(6).Infof("QS(%s): Context of request %q %#+v %#+v is Done", configName, fsName, descr1, descr2) </ins> qs.cancelWait(req) qs.goroutineDoneOrBlocked() }()

Discussion:
Which jobs are flaking: ci-kubernetes-cached-make-test ci-kubernetes-generate-make-test-count10 pull-kubernetes-unit Which test(s) are flaking: TestPriorityAndFairnessWithPanicRecoveryAndTimeoutFilter Testgrid link: Reason for failure: Data race: Reproduced in ~2% of runs with : Triage board: /sig api-machinery
cc
The test is timing out after 300 seconds, but I couldn't reproduce this over 1000 runs (with and without )
(In case it's not clear from comments: the actual failure is the timeout, not the panic as stated in the OP.)
Finally reproduced the issue locally after many runs:
thank you for reproducing it! are you planning to try to fix it? Thanks!
I tried to, but I couldn't find the root cause. I'll take another look today. /assign
/accept triage
/triage accepted
/milestone v1.21 /priority critical-urgent Raising priority and adding to the milestone for triage since this looks like a data race in non-test code in a default-enabled filter. This unit test did not exist in 1.20 so it's not clear if this is a regression in 1.21 or not. If this issue existed in 1.20, priority can be lowered to important-soon and it does not block 1.21, but should be fixed and picked to 1.20.x and 1.21.x
I'm afraid I won't have the time to look into this in the short term. Unassigning so that someone else can take a look. /unassign
(looking at it now) /assign
found the data race and put out a quick fix for this:
I ran , and it looks good so far:
cherry-picked it for - Can someone please let me know if I did it correctly?
Change:
} volumeObj.globallyMounted = globallyMounted <ins> volumeObj.devicePath = devicePath </ins> asw.attachedVolumes[volumeName] = volumeObj return nil }

Discussion:
We fixed invalid device path in bunch of places via - but call still could use invalid device path. That check can sometimes use invalid path and hence can cause UnmountDevice operation to fails even though device has already been unmounted. /sig storage /sig openstack /assign
Actually this does not affect version 1.10 onwards. Not sure if 1.9 is still supported. I think I will close this for now. /close
I just noticed that 1.9 is still supported and hence it is probably worth fixing there for now.
How come the check can "sometimes" use invalid device path?
So on Cinder for example - call would return something like as attach device path. But if you see the linked PR(), will do a and use that device path for global mount. In general it is always a good idea to use device path returned by as single source of truth. This applies to something like EBS with NVMe too where device is discovered via call (but nvme disks aren't directly affected by this bug because returned device path on EBS is bogus).
So on EBS with NVMe for example - check will always fail (but still return success) because it will use something like as device path which does not actually exist on the node.
You said the issue only happens "sometimes". Can you clarify why it only happens occasionally?
doesn't the linked PR make it clear? detection based on the drive serial number (aka It's cinder ID) on the kubelet itself. As for why - Cinder sometimes returns wrong device path on call, I don't know. But it happens and we have worked around it.
Fixed by
Change:
} if len(awsInstances) == 0 { <del> glog.V(2).Infof("DisksAreAttached will assume no disks are attached to any node on AWS cluster.") </del> <ins> glog.V(2).Infof("DisksAreAttached found no instances matching node names; will assume disks not attached") </ins> return attached, nil } <del> awsInstanceMap := make(map[types.NodeName]*ec2.Instance) </del> <ins> // Note that we check that the volume is attached to the correct node, not that it is attached to _a_ node </ins> for _, awsInstance := range awsInstances { <del> awsInstanceMap[mapInstanceToNodeName(awsInstance)] = awsInstance } </del> <ins> nodeName := mapInstanceToNodeName(awsInstance) </ins> <del> // Note that we check that the volume is attached to the correct node, not that it is attached to _a_ node for nodeName, diskNames := range nodeDisks { awsInstance := awsInstanceMap[nodeName] if awsInstance == nil { // If instance no longer exists, safe to assume volume is not attached. glog.Warningf( "Node %q does not exist. DisksAreAttached will assume disks %v are not attached to it.", nodeName, diskNames) </del> <ins> diskNames := nodeDisks[nodeName] if len(diskNames) == 0 { continue } awsInstanceState := "<nil>" if awsInstance != nil && awsInstance.State != nil { awsInstanceState = aws.StringValue(awsInstance.State.Name) } if awsInstanceState == "terminated" { // Instance is terminated, safe to assume volumes not attached // Note that we keep volumes attached to instances in other states (most notably, stopped) </ins> continue }

Discussion:
In we stopped filtering nodes by their running state. But this means that the NodeName is no longer a unique key. We need to rework the volume status checker to deal with this.
There are no sig labels on this issue. Please by:<br(1) mentioning a sig: <br(2) specifying the label manually: <br<brNote: method (1) will trigger a notification to the team. You can find the team list and label list
Was discussing this with offline. Why can't we extend the filter to exclude terminated ones? I understand that AWS API doesn't provide a documented way of doing negative filtering, but can we not simply list all the known states we care about? such as - , , etc.
We can do that too :-)
Change:
// ServiceAnnotationLoadBalancerInternal is the annotation used on the service // to indicate that we want an internal loadbalancer service. <del> // If the value of ServiceAnnotationLoadBalancerInternal is false, it indicates that we want an external loadbalancer service. Default to true. </del> <ins> // If the value of ServiceAnnotationLoadBalancerInternal is false, it indicates that we want an external loadbalancer service. Default to false. </ins> ServiceAnnotationLoadBalancerInternal = "service.beta.kubernetes.io/openstack-internal-load-balancer" )

Discussion:
Is this a BUG REPORT or FEATURE REQUEST?: /kind bug What happened: Creating a service with created a load balancer without a floating IP. What you expected to happen: Load balancer should have a floating IP assigned by default. How to reproduce it (as minimally and precisely as possible): Deploy this manifest on a cluster and check the resulting load balancer. No floating IP will be assigned. Anything else we need to know?: The default behavior changed from k8s 1.7.x. It appears that an annotation that will add a floating IP, but the default should not have changed without warning. This also breaks the workflow. For example: Environment: Kubernetes version (use ): v1.8.0-rc.1+coreos.0 Cloud provider or hardware configuration**: openstack OS (e.g. from /etc/os-release): Container Linux by CoreOS 1520.4.0 (Ladybug) Kernel (e.g. ): 4.13.3-coreos Install tools: Others:
There are no sig labels on this issue. Please by: a sig: e.g., to notify the contributor experience sig, OR the label manually: e.g., to apply the label Note: Method 1 will trigger an email to the group. You can find the group list and label list . The in the method 1 has to be replaced with one of these: bugs, feature-requests, pr-reviews, test-failures, proposals
/sig openstack
Reiterating the mentions to trigger a notification: <detailsIn response to : 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
Oops, default should be external. /assign
Change:
// Validate checks that the provided debug options are specified. func (o *DebugOptions) Validate(cmd *cobra.Command) error { <ins> // Attach if o.Attach && o.attachChanged && len(o.Image) == 0 && len(o.Container) == 0 { return fmt.Errorf("you must specify --container or create a new container using --image in order to attach.") } </ins> // CopyTo if len(o.CopyTo) > 0 { if len(o.Image) == 0 && len(o.SetImages) == 0 && len(o.Args) == 0 {

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: Using without specifying should modify existing container images without trying to create a new one. Instead it tries to create a new container and returns an error that isn't set: What you expected to happen: This command should change all container images to instead of returning an error. /sig cli /kind bug /priority important-soon
/assign /triage accepted
My kubernetes cluster version is 1.19.0,and i use kubectl-debug version 0.1.1 try to debug my pod,bug i got error: <img width="1470" alt="image" src="https://user-"Who one know about that
Change:
var _ Manager = &manager{} // NewManager creates new cpu manager based on provided policy <del> func NewManager( cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, nodeAllocatableReservation v1.ResourceList, stateFileDirecory string, ) (Manager, error) { </del> <ins> func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo *cadvisorapi.MachineInfo, nodeAllocatableReservation v1.ResourceList, stateFileDirecory string) (Manager, error) { </ins> var policy Policy switch policyName(cpuPolicyName) {

Discussion:
Is this a BUG REPORT or FEATURE REQUEST?: /kind bug What happened: When enable cpumanager by , but not set and , kubelet will get panic error in log What you expected to happen: Should graceful exit with error not panic. How to reproduce it (as minimally and precisely as possible): set and but not set and Anything else we need to know?:
/sig node
Great that it's not panicing anymore, but I'd also love to get the "requires + to be greater than zero" hint in this particular case. It looks like even with this doesn't seem to be the case (since it errors out with the non-actionable "unable to determine reserved CPU resources for static policy". Should I open another issue for this?
Change:
endpointsChanges:      proxy.NewEndpointChangeTracker(hostname, nil, &isIPv6, recorder), syncPeriod:            syncPeriod, minSyncPeriod:         minSyncPeriod, <del> excludeCIDRs:          excludeCIDRs, </del> <ins> excludeCIDRs:          ParseExcludedCIDRs(excludeCIDRStrs), </ins> iptables:              ipt, masqueradeAll:         masqueradeAll, masqueradeMark:        masqueradeMark,

Discussion:
What would you like to be : Change excludeCIDRs from []string to []*IPNet in Proxier and perform the parsing at construction of Proxier. Why is this needed: This was proposed by over comments in Pr This improves the performance of isIPInExcludeCIDRs since the cost of parsing becomes one time.
/sig network /kind cleanup
/remove-kind feature
/triage unresolved I am a bot run by ‍
ping
Change:
framework.Logf("Reconciled root ca configmap in namespace %q", f.Namespace.Name) }) <del> ginkgo.It("should update a ServiceAccount", func() { </del> <ins> /* Release: v1.26 Testname: ServiceAccount, update a ServiceAccount Description: A ServiceAccount is created which MUST succeed. When updating the ServiceAccount it MUST succeed and the field MUST equal the new value. */ framework.ConformanceIt("should update a ServiceAccount", func() { </ins> saClient := f.ClientSet.CoreV1().ServiceAccounts(f.Namespace.Name) saName := "e2e-sa-" + utilrand.String(5)

Discussion:
[X] Test approval issue: [X] Test PR: 5 Oct 2022 [X] Two weeks soak end date: 19 Oct 2022 [X] Test promotion PR: According to this APIsnoop query, there are still three remaining LimitRange endpoints which are untested. replaceCoreV1NamespacedServiceAccount Using a number of existing e2e test practices a new has been created for one ServiceAccount endpoint. The e2e logs for this test are listed below. This query shows which ServiceAccount endpoints are hit within a short period of running this e2e test If a test with these calls gets merged, test coverage will go up by 1 point This test is also created with the goal of conformance promotion. /sig testing /sig architecture /area conformance
/triage accepted
/reopen
Reopened this issue. <detailsIn response to : /reopen 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
Change:
var map_VolumeError = map[string]string{ "":        "VolumeError captures an error encountered during a volume operation.", "time":    "Time the error was encountered.", <del> "message": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", </del> <ins> "message": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", </ins> } func (VolumeError) SwaggerDoc() map[string]string {

Discussion:
This came up as a follow up to Also rather than opening 5 different issues - we are going to use this github issue to track all follow up items mentioned here -
/sig storage
/assign /assign
: PR
and the rest is fixed in
Change:
} } <ins> func TestDefaultStatefulSetControlBlocksOnTerminating(t *testing.T) { set := newStatefulSet(3) client := fake.NewSimpleClientset(set) informerFactory := informers.NewSharedInformerFactory(client, controller.NoResyncPeriodFunc()) spc := newFakeStatefulPodControl(informerFactory.Core().V1().Pods(), informerFactory.Apps().V1beta1().StatefulSets()) ssc := NewDefaultStatefulSetControl(spc) spc.SetUpdateStatefulPodError(apierrors.NewInternalError(errors.New("API server failed")), 0) stop := make(chan struct{}) defer close(stop) informerFactory.Start(stop) cache.WaitForCacheSync( stop, informerFactory.Apps().V1beta1().StatefulSets().Informer().HasSynced, informerFactory.Core().V1().Pods().Informer().HasSynced, ) if err := scaleUpStatefulSetControl(set, ssc, spc); err != nil { t.Fatalf("Unexpected error: %v", err) } var err error set, err = spc.setsLister.StatefulSets(set.Namespace).Get(set.Name) if err != nil { t.Fatalf("Error getting updated StatefulSet: %v", err) } if set.Status.Replicas != 3 { t.Fatal("Failed to scale StatefulSet to 3 replicas") } // scale the set and add a terminated pod *set.Spec.Replicas = 4 pods, err := spc.addTerminatingPod(set, 2) if err != nil { t.Fatal(err) } if err := ssc.UpdateStatefulSet(set, pods); err != nil { t.Fatal(err) } pods, err = spc.podsLister.List(labels.Everything()) if err != nil { t.Fatalf("Error listing pods: %v", err) } if len(pods) != 3 { t.Fatalf("Expected 3 pods, got %d", len(pods)) } sort.Sort(ascendingOrdinal(pods)) spc.DeleteStatefulPod(set, pods[2]) pods, err = spc.podsLister.List(labels.Everything()) if err != nil { t.Fatalf("Error listing pods: %v", err) } if len(pods) != 2 { t.Fatalf("Expected 3 pods, got %d", len(pods)) } if err := scaleUpStatefulSetControl(set, ssc, spc); err != nil { t.Fatalf("Unexpected error: %v", err) } set, err = spc.setsLister.StatefulSets(set.Namespace).Get(set.Name) if err != nil { t.Fatalf("Error getting updated StatefulSet: %v", err) } if set.Status.Replicas != 4 { t.Fatal("Failed to scale StatefulSet to 3 replicas") } } </ins> func TestDefaultStatefulSetControlUpdateSetStatusFailure(t *testing.T) { set := newStatefulSet(3) client := fake.NewSimpleClientset(set)

Discussion:
/assign flakes in PR jobs more than once per day The can filter down to searching for results for a single test:
This test continues to flake PRs at least once per day:
https://k8s-
looking at it
Change:
] }, { <del> "path": "/api/v1/namespaces/{namespace}/componentstatuses/{name}", </del> <ins> "path": "/api/v1/componentstatuses/{name}", </ins> "description": "API at /api/v1", "operations": [ {

Discussion:
The selflink provided in the api response for component statuses (/api/v1/componentstatuses) is broken. For example: /api/v1/namespaces/componentstatuses/controller-manager (as specified in the response of /api/v1/componentstatuses), will return: { "kind": "Status", "apiVersion": "v1", "metadata": {}, "status": "Failure", "message": "the server could not find the requested resource", "reason": "NotFound", "details": {}, "code": 404 } while: /api/v1/namespaces/default/componentstatuses/controller-manager, will return the data. In addition, and this is asked for better understanding, are the component statuses namespace scoped? as far as I understood etcd, the scheduler and the controller manager were shared across the kubernetes cluster. If they aren't namespace scoped, what is the logic behind specifing a namespace in these api requests (as shown in ): /api/v1/namespaces/{namespace}/componentstatuses /api/v1/namespaces/{namespace}/componentstatuses/{name} If they are in fact namespace scoped, would you be kind and share an explanation/link to a documentation page?
I agree that it doesn't make a lot of sense for this to be namespaced given what's in it at the moment. Given what I'd like it to contain, the namespace might make more sense in the future. The self link is super broken right now, though, probably due to lack of actual namespace. there's probably a bug in the go-restful setup code for this. Can you take a look at some point? Also it might be worth mentioning that this will probably change in the near future, is working on a replacement.
The whole /componentstatus API is just broken. It needs rewriting.
Change:
local file=$2 rm -f ${file} <del> add-to-env ${file} ENV_TIMESTAMP "$(date -uIs)" # Just to track it add-to-env ${file} KUBERNETES_MASTER "${master}" add-to-env ${file} INSTANCE_PREFIX "${INSTANCE_PREFIX}" add-to-env ${file} NODE_INSTANCE_PREFIX "${NODE_INSTANCE_PREFIX}" add-to-env ${file} SERVER_BINARY_TAR_URL "${SERVER_BINARY_TAR_URL}" add-to-env ${file} SALT_TAR_URL "${SALT_TAR_URL}" add-to-env ${file} PORTAL_NET "${PORTAL_NET}" add-to-env ${file} ENABLE_CLUSTER_MONITORING "${ENABLE_CLUSTER_MONITORING:-false}" add-to-env ${file} ENABLE_NODE_MONITORING "${ENABLE_NODE_MONITORING:-false}" add-to-env ${file} ENABLE_CLUSTER_LOGGING "${ENABLE_CLUSTER_LOGGING:-false}" add-to-env ${file} ENABLE_NODE_LOGGING "${ENABLE_NODE_LOGGING:-false}" add-to-env ${file} LOGGING_DESTINATION "${LOGGING_DESTINATION:-}" add-to-env ${file} ELASTICSEARCH_LOGGING_REPLICAS "${ELASTICSEARCH_LOGGING_REPLICAS:-}" add-to-env ${file} ENABLE_CLUSTER_DNS "${ENABLE_CLUSTER_DNS:-false}" add-to-env ${file} DNS_REPLICAS "${DNS_REPLICAS:-}" add-to-env ${file} DNS_SERVER_IP "${DNS_SERVER_IP:-}" add-to-env ${file} DNS_DOMAIN "${DNS_DOMAIN:-}" add-to-env ${file} MASTER_HTPASSWD "${MASTER_HTPASSWD}" </del> <ins> cat >$file <<EOF ENV_TIMESTAMP: $(yaml-quote $(date -uIs)) KUBERNETES_MASTER: $(yaml-quote ${master}) INSTANCE_PREFIX: $(yaml-quote ${INSTANCE_PREFIX}) NODE_INSTANCE_PREFIX: $(yaml-quote ${NODE_INSTANCE_PREFIX}) SERVER_BINARY_TAR_URL: $(yaml-quote ${SERVER_BINARY_TAR_URL}) SALT_TAR_URL: $(yaml-quote ${SALT_TAR_URL}) PORTAL_NET: $(yaml-quote ${PORTAL_NET}) ENABLE_CLUSTER_MONITORING: $(yaml-quote ${ENABLE_CLUSTER_MONITORING:-false}) ENABLE_NODE_MONITORING: $(yaml-quote ${ENABLE_NODE_MONITORING:-false}) ENABLE_CLUSTER_LOGGING: $(yaml-quote ${ENABLE_CLUSTER_LOGGING:-false}) ENABLE_NODE_LOGGING: $(yaml-quote ${ENABLE_NODE_LOGGING:-false}) LOGGING_DESTINATION: $(yaml-quote ${LOGGING_DESTINATION:-}) ELASTICSEARCH_LOGGING_REPLICAS: $(yaml-quote ${ELASTICSEARCH_LOGGING_REPLICAS:-}) ENABLE_CLUSTER_DNS: $(yaml-quote ${ENABLE_CLUSTER_DNS:-false}) DNS_REPLICAS: $(yaml-quote ${DNS_REPLICAS:-}) DNS_SERVER_IP: $(yaml-quote ${DNS_SERVER_IP:-}) DNS_DOMAIN: $(yaml-quote ${DNS_DOMAIN:-}) MASTER_HTPASSWD: $(yaml-quote ${MASTER_HTPASSWD}) EOF </ins> if [[ "${master}" != "true" ]]; then <del> add-to-env ${file} KUBERNETES_MASTER_NAME "${MASTER_NAME}" add-to-env ${file} ZONE "${ZONE}" add-to-env ${file} EXTRA_DOCKER_OPTS "${EXTRA_DOCKER_OPTS}" add-to-env ${file} ENABLE_DOCKER_REGISTRY_CACHE "${ENABLE_DOCKER_REGISTRY_CACHE:-false}" </del> <ins> cat >>$file <<EOF KUBERNETES_MASTER_NAME: $(yaml-quote ${MASTER_NAME}) ZONE: $(yaml-quote ${ZONE}) EXTRA_DOCKER_OPTS: $(yaml-quote ${EXTRA_DOCKER_OPTS}) ENABLE_DOCKER_REGISTRY_CACHE: $(yaml-quote ${ENABLE_DOCKER_REGISTRY_CACHE:-false}) EOF </ins> fi }

Discussion:
I tried to spin up GCE kube environment using kube-up and got the following error: The script would then hang on a subsequent command. The verify-prereqs for kube-up should require yaml support for python and fail early. To rectify, I had to do the following:
Thanks for the report Derek!
Yeah, this broke our Jenkins a while ago, and I thought I fixed it, but didn't. The real fix is in
Change:
// checkerNames returns the names of the checks in the same order as passed in. func checkerNames(checks ...HealthzChecker) []string { <del> if len(checks) > 0 { // accumulate the names of checks for printing them out. checkerNames := make([]string, 0, len(checks)) for _, check := range checks { // quote the Name so we can disambiguate checkerNames = append(checkerNames, fmt.Sprintf("%q", check.Name())) } return checkerNames </del> <ins> // accumulate the names of checks for printing them out. checkerNames := make([]string, 0, len(checks)) for _, check := range checks { checkerNames = append(checkerNames, check.Name()) </ins> } <del> return nil </del> <ins> return checkerNames } // formatQuoted returns a formatted string of the health check names, // preserving the order passed in. func formatQuoted(names ...string) string { quoted := make([]string, 0, len(names)) for _, name := range names { quoted = append(quoted, fmt.Sprintf("%q", name)) } return strings.Join(quoted, ",") </ins> }

Discussion:
What happened: The logic in the checkerNames test for is faulty. Failing the test when the 'wanted' value equals the actual result is the opposite behavior of what we want. What you expected to happen: I expect the test to fail when the desired output is not the same as the actual output. <!-- DO NOT EDIT BELOW THIS LINE --/kind bug
/sig api-machinery /assign