jiebi/CodeConvo huggingface dataset:
Change:
kubeadm-kinder-latest-on-1-22 E2EKubeadm suite.[sig-cluster-lifecycle] [area-kubeadm] proxy addon kube-proxy ServiceAccount should be bound to the system:node-proxier cluster role ci-kubernetes-e2e-kubeadm-kinder-latest-on-1-22.Overall task-06-e2e-kubeadm 2021-11-09 23:31 CET : E2EKubeadm suite: [sig-cluster-lifecycle] [area-kubeadm] proxy addon kube-proxy ServiceAccount should be bound to the system:node-proxier cluster role No response /sig cluster-lifecycle
/assign
/triage accepted will have a look and send a fix if it's kubeadm related.
/area kubeadm
fix PR is here, needs LGTM:

Discussion:
// TODO: This k8s-generic, well-known constant should be fetchable from another source, not be in this package KubeProxyClusterRoleName = "system:node-proxier" <ins> // KubeProxyClusterRoleBindingName sets the name for the kube-proxy CluterRoleBinding KubeProxyClusterRoleBindingName = "kubeadm:node-proxier" </ins> // KubeProxyServiceAccountName describes the name of the ServiceAccount for the kube-proxy addon KubeProxyServiceAccountName = "kube-proxy" <del> // KubeProxyClusterRoleBindingName sets the name for the kube-proxy CluterRoleBinding KubeProxyClusterRoleBindingName = "kubeam:node-proxier" </del> // KubeProxyConfigMapRoleName sets the name of ClusterRole for ConfigMap KubeProxyConfigMapRoleName = "kube-proxy" )

// https://github.com/kubernetes/kubeadm/issues/1582 var UnversionedKubeletConfigMap bool if _, ok := m["featureGates"]; ok { <del> if featureGates, ok := m["featureGates"].(map[string]bool); ok { </del> <ins> if featureGates, ok := m["featureGates"].(map[interface{}]interface{}); ok { </ins> // TODO: update the default to true once this graduates to Beta. UnversionedKubeletConfigMap = false if val, ok := featureGates["UnversionedKubeletConfigMap"]; ok { <del> UnversionedKubeletConfigMap = val </del> <ins> if valBool, ok := val.(bool); ok { UnversionedKubeletConfigMap = valBool } else { framework.Failf("unable to cast the value of feature gate UnversionedKubeletConfigMap to bool") } </ins> } } else { framework.Failf("unable to cast the featureGates field in the %s ConfigMap", kubeadmConfigName)
Change:
Start kubelet on a cgroupv2 image with kubelet config option or the flag enabled. Kubelet will periodically log something like: This is because the kernel memcg notifications relies on kubelet's which uses evenfd on file which is cgroupv1 specific and not supported on cgroupv2. Kubelet will disable kernel memcg notifications on cgroupv2 if they are unsupported and consider long term support for more cgroupv2 "compatible" ways to monitor for memory pressure. The closest analogous cgroupv2 concept is using inotify notifications on file and or combination with PSI pressure. This requires to be set on pod cgroup which requires the MemoryQOS feature to be enabled Start kubelet on a cgroupv2 image with enabled.
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
/sig node /cc

Discussion:
"sync" "time" <ins> libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups" </ins> "golang.org/x/sys/unix" "k8s.io/klog/v2" )

// NewCgroupNotifier returns a linuxCgroupNotifier, which performs cgroup control operations required // to receive notifications from the cgroup when the threshold is crossed in either direction. func NewCgroupNotifier(path, attribute string, threshold int64) (CgroupNotifier, error) { <ins> // cgroupv2 does not support monitoring cgroup memory thresholds using cgroup.event_control. // Instead long term, on cgroupv2 kubelet should rely on combining usage of memory.low on root pods cgroup with inotify notifications on memory.events and or PSI pressure. // For now, let's return a fake "disabled" cgroup notifier on cgroupv2. // https://github.com/kubernetes/kubernetes/issues/106331 if libcontainercgroups.IsCgroup2UnifiedMode() { return &disabledThresholdNotifier{}, nil } </ins> var watchfd, eventfd, epfd, controlfd int var err error watchfd, err = unix.Open(fmt.Sprintf("%s/%s", path, attribute), unix.O_RDONLY|unix.O_CLOEXEC, 0)

unix.Close(n.epfd) close(n.stop) } <ins> // disabledThresholdNotifier is a fake diasbled threshold notifier that performs no-ops. type disabledThresholdNotifier struct{} func (*disabledThresholdNotifier) Start(_ chan<- struct{}) {} func (*disabledThresholdNotifier) Stop()                   {} </ins>
Change:
E2eNode Suite.[sig-node] Ephemeral Containers will start an ephemeral container in an existing pod node-kubelet-orphans Unknown, possibly was never green No response KEP: /sig node
Also need to fish this test out of the orphans by adding the label
can you please take a look?
yup, happy to /assign
could you explain this more? This label should exist even though the feature is no longer alpha?
Looks like the tests are still passing in the presubmits It looks like the kubectl invocation is asking for a username?
Moved to node features and now the error message is: kubectl isn't available to the node tests? Hmm..
/triage accepted
/reopen The test is flaking now, can you please take a look?
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
Ah, I think I know what the problem is. Didn't get a chance to look at it today but will get to it soon.
FYI, I spot checked several of the recent failures and so far none of them include the fix commit. Will keep an eye on it.
Yes, thank you. Looks very green now

Discussion:
imageutils "k8s.io/kubernetes/test/utils/image" "github.com/onsi/ginkgo" <ins> "github.com/onsi/gomega" </ins> ) <del> var _ = SIGDescribe("Ephemeral Containers", func() { </del> <ins> var _ = SIGDescribe("Ephemeral Containers [NodeFeature:EphemeralContainers]", func() { </ins> f := framework.NewDefaultFramework("ephemeral-containers-test") var podClient *framework.PodClient ginkgo.BeforeEach(func() {

framework.ExpectNoError(err, "Failed to patch ephemeral containers in pod %q", format.Pod(pod)) ginkgo.By("checking pod container endpoints") <del> _, err = framework.LookForStringInPodExecToContainer(pod.Namespace, pod.Name, ecName, []string{"/bin/echo", "marco"}, "marco", time.Minute) framework.ExpectNoError(err, "Failed to exec in pod %q ephemeral container %q", format.Pod(pod), ecName) _, err = framework.LookForStringInLog(pod.Namespace, pod.Name, ecName, "polo", time.Minute) framework.ExpectNoError(err, "Failed to find logs in pod %q ephemeral container %q", format.Pod(pod), ecName) </del> <ins> // Can't use anything depending on kubectl here because it's not available in the node test environment output := f.ExecCommandInContainer(pod.Name, ecName, "/bin/echo", "marco") gomega.Expect(output).To(gomega.ContainSubstring("marco")) log, err := e2epod.GetPodLogs(f.ClientSet, pod.Namespace, pod.Name, ecName) framework.ExpectNoError(err, "Failed to get logs for pod %q ephemeral container %q", format.Pod(pod), ecName) gomega.Expect(log).To(gomega.ContainSubstring("polo")) </ins> }) })
Change:
E2eNode Suite.[sig-node] Ephemeral Containers will start an ephemeral container in an existing pod node-kubelet-orphans Unknown, possibly was never green No response KEP: /sig node
Also need to fish this test out of the orphans by adding the label
can you please take a look?
yup, happy to /assign
could you explain this more? This label should exist even though the feature is no longer alpha?
Looks like the tests are still passing in the presubmits It looks like the kubectl invocation is asking for a username?
Moved to node features and now the error message is: kubectl isn't available to the node tests? Hmm..
/triage accepted
/reopen The test is flaking now, can you please take a look?
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
Ah, I think I know what the problem is. Didn't get a chance to look at it today but will get to it soon.
FYI, I spot checked several of the recent failures and so far none of them include the fix commit. Will keep an eye on it.
Yes, thank you. Looks very green now

Discussion:
EphemeralContainerCommon: v1.EphemeralContainerCommon{ Name:    ecName, Image:   imageutils.GetE2EImage(imageutils.BusyBox), <del> Command: e2epod.GenerateScriptCmd("while true; do sleep 2; echo polo; done"), </del> <ins> Command: e2epod.GenerateScriptCmd("while true; do echo polo; sleep 2; done"), </ins> Stdin:   true, TTY:     true, },
Change:
Seen in this job failing on multiple tests, this is just one of the stack traces it seems that for a long time :smile: it panics here I don't have a good understanding of those tests mechanics, but it seems a complex setup embedding functions and goroutines before the test setup, I suggest to move to something more simple No response_ /sig node
ping I don't have time for working on this unfortunately but happy to help on reviews, this can also be a good task for new contributors, also I don't consider a bad idea to rework the tests a bit to make them easier to read and simpler, I did that for sig-network and we have a pretty low flake rate since then
/assign /cc This probably came out of /triage accepted
/priority important-soon /milestone v1.23
Ooops - I'm assuming it's going through one of the paths where Features or whatever isn't initialized.

Discussion:
} // setting a threshold to 0% disables; non-empty map overrides default value (necessary due to omitempty) initialConfig.EvictionHard = map[string]string{"memory.available": "0%"} <ins> if initialConfig.FeatureGates == nil { initialConfig.FeatureGates = map[string]bool{} } </ins> initialConfig.FeatureGates[string(LSCIQuotaFeature)] = quotasRequested }) runEvictionTest(f, evictionTestTimeout, noPressure, noStarvedResource, logDiskMetrics, []podEvictSpec{
Change:
gce-master-scale-correctness Kubernetes e2e suite: [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume Kubernetes e2e suite: [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data 2021-11-11 (13:01 CET) Kubernetes e2e suite: [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should allow exec of files on the volume Kubernetes e2e suite: [sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should store data No response /sig scalability
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
/milestone v1.23 /priority important-soon
/cc
all are failing, likely due to , will add a skip to test-config

Discussion:
declare -r gcp_resources_before="${ARTIFACTS}/gcp-resources-before.txt" declare -r gcp_resources_cluster_up="${ARTIFACTS}/gcp-resources-cluster-up.txt" declare -r gcp_resources_after="${ARTIFACTS}/gcp-resources-after.txt" <del> # TODO(15492): figure out some way to run this script even if it doesn't exist # in the Kubernetes tarball. </del> if [[ ( ${KUBERNETES_PROVIDER} == "gce" || ${KUBERNETES_PROVIDER} == "gke" ) && -x "${gcp_list_resources_script}" ]]; then gcp_list_resources="true" <ins> # Always pull the script from HEAD, overwriting the local one if it exists. # We do this to pick up fixes if we are running tests from a branch or tag. curl -fsS --retry 3 "https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/gce/list-resources.sh" > "${gcp_list_resources_script}" </ins> else gcp_list_resources="false" fi
Change:
As mentioned in: We seem to be setting different flags for kubemark-scale. FWIW - I don't think it's the only thing actually. If seems that certain env-vars that we're setting in the kubemark configs: are actually unused - I don't see KUBEMARKCONTROLLERMANAGERTESTARGS (as an exammple) be propagated anywhere. We should fix that (add *TESTARGS env vars) and unify the setting [In particular for the sake of testing P&F configs.]
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
/triage accepted I will try to look into it later this week
This isn't really true - we have this logic that is appropriately setting KUBEMARK_-prefixed env-vars: So the only thing is to unify the settings.

Discussion:
set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. <del> KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. </del> source "${KUBE_ROOT}/hack/lib/init.sh" kube::golang::setup_env
Change:
panics with error when health probes time out. The following stack trace shows this error (from an apiserver that uses : The is thrown by net/http because attempts to call after the request had timed out (handler had completed) here is the code site that triggers the panic (on master): Is there any historical context why we use the original by calling . If we use the decorated object then the panic will be prevented: uses the underlying object only when the request handler has not completed yet. No panic hard to reproduce, maybe we should add a unit test to reproduce the issue.
/sig api-machinery cc
/assign
GitHub didn't allow me to assign the following users: benluddy. Note that only , repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. For more information please see <detailsIn response to : /assign 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
/assign
/triage accepted

Discussion:
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/endpoints/metrics" <del> "k8s.io/apiserver/pkg/endpoints/responsewriter" </del> <ins> "k8s.io/apiserver/pkg/server/httplog" </ins> "k8s.io/klog/v2" )

// always be verbose on failure if len(failedChecks) > 0 { klog.V(2).Infof("%s check failed: %sn%v", strings.Join(failedChecks, ","), name, failedVerboseLogOutput.String()) <del> http.Error(responsewriter.GetOriginal(w), fmt.Sprintf("%s%s check failed", individualCheckOutput.String(), name), http.StatusInternalServerError) </del> <ins> httplog.SetStacktracePredicate(r.Context(), func(int) bool { return false }) http.Error(w, fmt.Sprintf("%s%s check failed", individualCheckOutput.String(), name), http.StatusInternalServerError) </ins> return }

} } <ins> // SetStacktracePredicate sets a custom stacktrace predicate for the // logger associated with the given request context. func SetStacktracePredicate(ctx context.Context, pred StacktracePred) { if rl := respLoggerFromContext(ctx); rl != nil { rl.StacktraceWhen(pred) } } </ins> // Log is intended to be called once at the end of your request handler, via defer func (rl *respLogger) Log() { latency := time.Since(rl.startTime)
Change:
While investigating another issue, I noticed that the histograms never get an Observation of zero. This makes no sense. See and related following remarks for some details. I expected the count of seats occupied by executing requests to be zero some times. Start an apiserver and scrape it; look at and see that the value is zero. No response <details</details<detailsnone </details<details</details<details</details<details</details<details</details

Discussion:
state := meal.cfgCtlr.priorityLevelStates[pl.Name] if state == nil { labelValues := []string{pl.Name} <del> state = &priorityLevelState{reqsObsPair: meal.cfgCtlr.reqsObsPairGenerator.Generate(1, 1, labelValues), execSeatsObs: meal.cfgCtlr.execSeatsObsGenerator.Generate(1, 1, labelValues)} </del> <ins> state = &priorityLevelState{reqsObsPair: meal.cfgCtlr.reqsObsPairGenerator.Generate(1, 1, labelValues), execSeatsObs: meal.cfgCtlr.execSeatsObsGenerator.Generate(0, 1, labelValues)} </ins> } qsCompleter, err := queueSetCompleterForPL(meal.cfgCtlr.queueSetFactory, state.queues, pl, meal.cfgCtlr.requestWaitLimit, state.reqsObsPair, state.execSeatsObs) if err != nil {

klog.V(3).Infof("No %s PriorityLevelConfiguration found, imagining one", proto.Name) labelValues := []string{proto.Name} reqsObsPair := meal.cfgCtlr.reqsObsPairGenerator.Generate(1, 1, labelValues) <del> execSeatsObs := meal.cfgCtlr.execSeatsObsGenerator.Generate(1, 1, labelValues) </del> <ins> execSeatsObs := meal.cfgCtlr.execSeatsObsGenerator.Generate(0, 1, labelValues) </ins> qsCompleter, err := queueSetCompleterForPL(meal.cfgCtlr.queueSetFactory, nil, proto, requestWaitLimit, reqsObsPair, execSeatsObs) if err != nil { // This can not happen because proto is one of the mandatory
Change:
kube-apiserver has no --max-resource-write-bytes & --json-patch-max-copy-bytes option. Correct the error message to not use the "--max-resource-write-bytes" & "--json-patch-max-copy-bytes" string. Check the source code: No response v1.19 ~ v1.23 eg: </details<details</details<details</details<details</details<details</details<details</details
/sig api-machinery /area apiserver /kind cleanup /assign FYI:
/cc /triage accepted

Discussion:
} if s.JSONPatchMaxCopyBytes < 0 { <del> errors = append(errors, fmt.Errorf("--json-patch-max-copy-bytes can not be negative value")) </del> <ins> errors = append(errors, fmt.Errorf("ServerRunOptions.JSONPatchMaxCopyBytes can not be negative value")) </ins> } if s.MaxRequestBodyBytes < 0 { <del> errors = append(errors, fmt.Errorf("--max-resource-write-bytes can not be negative value")) </del> <ins> errors = append(errors, fmt.Errorf("ServerRunOptions.MaxRequestBodyBytes can not be negative value")) </ins> } if err := validateHSTSDirectives(s.HSTSDirectives); err != nil {

JSONPatchMaxCopyBytes:       -10 * 1024 * 1024, MaxRequestBodyBytes:         10 * 1024 * 1024, }, <del> expectErr: "--json-patch-max-copy-bytes can not be negative value", </del> <ins> expectErr: "ServerRunOptions.JSONPatchMaxCopyBytes can not be negative value", </ins> }, { name: "Test when MaxRequestBodyBytes is negative value",

JSONPatchMaxCopyBytes:       10 * 1024 * 1024, MaxRequestBodyBytes:         -10 * 1024 * 1024, }, <del> expectErr: "--max-resource-write-bytes can not be negative value", </del> <ins> expectErr: "ServerRunOptions.MaxRequestBodyBytes can not be negative value", </ins> }, { name: "Test when LivezGracePeriod is negative value",
Change:
The command is generating a couple of hardcoded which seemingly causes any commands wrapping this package downstream to break. In this example, the OpenShift client: This should generate the compdef based on the rather than forcing kubectl, for example with : It could be even cleaner with the compdef function removed and the extraneous tag repeated below the boilerplate: compdef command command boilerplate stuff body Such as: generates the same first two lines as There is also a related downstream issue: Ideally, this might get resolved here at the source as it might help anyone else wrapping these commands downstream. I also have a possible solution which involves changing the hardcoded values from to use the which fixes the downstream without changing anything upstream. <details</details<detailsDownstream client-side issue unrelated to a specific cloud provider. </details<details</details<details- Latest </br- OpenShift client = 4.9 </detailsNo response <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
/sig cli

Discussion:
package completion import ( <ins> "fmt" </ins> "io" "github.com/spf13/cobra"

} func runCompletionZsh(out io.Writer, boilerPlate string, kubectl *cobra.Command) error { <del> zshHead := "#compdef kubectlncompdef _kubectl kubectln" </del> <ins> zshHead := fmt.Sprintf("#compdef %[1]sncompdef _%[1]s %[1]sn", kubectl.Name()) </ins> out.Write([]byte(zshHead)) if len(boilerPlate) == 0 {
Change:
This test asserts on the value of a global counter. When run with - 1, it passes once and fails all subsequent runs. /kind failing-test /sig api-machinery
/assign
/assign /triage accepted

Discussion:
target := &targetHTTPHandler{} for name, tc := range tests { target.Reset() <ins> legacyregistry.Reset() </ins> func() { targetServer := httptest.NewUnstartedServer(target)
Change:
sig-node-containerd#cos-cgroupv2-containerd-node-e2e-serial 11/30, maybe earlier No response No response /sig node /priority important-soon
The failure is caused by the execution error.
In cgroup v1, memory.force_empty can trigger forced page reclaim I am not sure which is the suggested way to force reclaim page in group v2. I open a PR to skip this logic once cgroup v2 is detected. BTW, set smaller may be a way to trigger.
/reopen The test is still failing. can I assign it to you to take a look (feel free to un-assign). /assign
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
/triage accepted
OK. Let me take a look. At my first glance, I find cadvisor logged an error: cgroup v2 is not detected successfully. I will check if there are other errors. some other errors in log
do you want to keep working on this? Can I assign the bug to you?
/cc
I believe this is due to the test running a cAdvisor pod which does not support cgroupv2. I think aims to address it
So I will wait for the merging and see if this is fixed.
/assign
merged but the density tests are still failing. Example: The error is different now: It appears the test is for some reason unable to collect resource data for runtime (containerd) container -
The issue might be that , but the test installs a custom version of containerd which runs under , so is unable to find it which appears to be scanning /proc/{allpids}/cmdline and matching against regex:
/assign /unassign
why not use instead. The default value of --container-runtime-process-name is dockerd.
Should we replace it across all tests to use just a ? Is there any reason to keep longer path at all?
/reopen still failing even after the last PR fixing the containerd name
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
It's green now. Yay!
Awesome, thank you!

Discussion:
# If the user does not set a GCI image for master, we run both master and nodes # using the latest GCI dev image. if [[ "${MASTER_IMAGE}" != gci* ]]; then <del> MASTER_IMAGE=$(gcloud compute images list | grep "gci-dev" | cut -d ' ' -f1) </del> <ins> gci_images=( $(gcloud compute images list --project google-containers | grep "gci-dev" | cut -d ' ' -f1) ) MASTER_IMAGE="${gci_images[0]}" </ins> NODE_IMAGE="${MASTER_IMAGE}" NODE_IMAGE_PROJECT="${MASTER_IMAGE_PROJECT}" fi