jiebi/CodeConvo huggingface dataset:
Change:
Looking at [1], we can see that the plugin Watcher is traversing the plugin directory, and check whether a new file is a unix socket or not. However, : Those file should not have been ignored. Instead of using, which also has a Windows implementation [2]. This issue may also cause the unit tests to flake [3]. [1] [2] [3] Instead of using, which also has a Windows implementation [2]. This will result in the plugin Watcher to work as intended. Run the ` unit test. No response Kubernetes v1.25, v1.24. N/A Windows Server 2019 or newer. <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
/sig windows /sig testing /milestone v1.25 /priority important-soon
/assign

Discussion:
return nil } <del> switch mode := info.Mode(); { case mode.IsDir(): </del> <ins> mode := info.Mode() if mode.IsDir() { </ins> if err := w.fsWatcher.Add(path); err != nil { return fmt.Errorf("failed to watch %s, err: %v", path, err) } <del> case mode&os.ModeSocket != 0: </del> <ins> } else if isSocket, _ := util.IsUnixDomainSocket(path); isSocket { </ins> event := fsnotify.Event{ Name: path, Op:   fsnotify.Create,

if err := w.handleCreateEvent(event); err != nil { klog.ErrorS(err, "Error when handling create", "event", event) } <del> default: </del> <ins> } else { </ins> klog.V(5).InfoS("Ignoring file", "path", path, "mode", mode) }
Change:
Currently, when kubelet will try to compress the logs to a .gz file, it will attempt to rename the archive before closing its file handles, which results in an error on Windows. An error should not occur while compressing the logs. This error can easily be reproduced by running the unit tests on Windows: /sig windows Kubernetes v1.22. N/A Any Windows OS. <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

Discussion:
if _, err := io.Copy(w, r); err != nil { return fmt.Errorf("failed to compress %q to %q: %v", log, tmpLog, err) } <ins> // The archive needs to be closed before renaming, otherwise an error will occur on Windows. w.Close() f.Close() </ins> compressedLog := log + compressSuffix if err := c.osInterface.Rename(tmpLog, compressedLog); err != nil { return fmt.Errorf("failed to rename %q to %q: %v", tmpLog, compressedLog, err) } // Remove old log file. <ins> r.Close() </ins> if err := c.osInterface.Remove(log); err != nil { return fmt.Errorf("failed to remove log %q after compress: %v", log, err) }
Change:
Kubernetes e2e suite [It] [sig-network] Firewall rule should have correct firewall rules for e2e cluster See also a similar cluster with the same test failing: /kind failing-test /kind flake /sig network
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

Discussion:
--allow "tcp:3389" & fi fi <ins> kube::util::wait-for-jobs || { code=$? echo -e "${color_red}Failed to create firewall rules.${color_norm}" >&2 exit $code } </ins> } function expand-default-subnetwork() {

# Wait for last batch of jobs kube::util::wait-for-jobs || { <del> echo -e "${color_red}Some commands failed.${color_norm}" >&2 </del> <ins> code=$? echo -e "${color_red}Failed to create firewall rule.${color_norm}" >&2 exit $code </ins> } }
Change:
We've seen this line of panic from time to time. It is caused by an index out of bounds. The array length check on that line seems to be incorrect. We see this flakiness when running in ipv6 or dualstack-ipv6-primary environments. We do not see this flakiness in ipv4 environments. We've seen these flakes over several months. No response incorrect array length check on , and the right most is out of bounds. No response /sig
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 testing
/milestone 1.25 as this is a networking conformance test that fails
The provided milestone is not valid for this repository. Milestones in this repository: [, , , , , , , , , , , ] Use to clear the milestone. <detailsIn response to : /milestone 1.25 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
/milestone v1.25
/sig network
/assign
thanks for catching it
There is confusion whether or not this is a conformance test. We don't believe it is. The test description does not include . I'll remove the label from the PR.

Discussion:
t.checkDNSRecordFrom( fmt.Sprintf("%s.%s.svc.%s", serviceNameLocal, f.Namespace.Name, framework.TestContext.ClusterDNSDomain), func(actual []string) bool { <del> return len(actual) >= 1 && actual[0] == fooHostname+"." && actual[1] == "2001:db8::29" </del> <ins> return len(actual) >= 2 && actual[0] == fooHostname+"." && actual[1] == "2001:db8::29" </ins> }, "cluster-dns-ipv6", moreForeverTestTimeout)
Change:
https://k8s- CSIInlineVolumes should support ephemeral VolumeLifecycleMode in CSIDriver API 8/5 https://k8s- No response /sig storage
/triage accepted
/assign

Discussion:
driver1 := &storagev1.CSIDriver{ ObjectMeta: metav1.ObjectMeta{ Name: "inline-driver-" + string(uuid.NewUUID()), <ins> Labels: map[string]string{ "test": f.UniqueName, }, </ins> }, Spec: storagev1.CSIDriverSpec{

driver2 := &storagev1.CSIDriver{ ObjectMeta: metav1.ObjectMeta{ Name: "inline-driver-" + string(uuid.NewUUID()), <ins> Labels: map[string]string{ "test": f.UniqueName, }, </ins> }, Spec: storagev1.CSIDriverSpec{

}, } <del> ginkgo.By("listing existing drivers") driverList, err := client.List(context.TODO(), metav1.ListOptions{}) framework.ExpectNoError(err) numDriversBefore := len(driverList.Items) numDriversAfter := numDriversBefore + 2 </del> ginkgo.By("creating") createdDriver1, err := client.Create(context.TODO(), driver1, metav1.CreateOptions{}) framework.ExpectNoError(err)

framework.ExpectEqual(retrievedDriver2.UID, createdDriver2.UID) ginkgo.By("listing") <del> driverList, err = client.List(context.TODO(), metav1.ListOptions{}) </del> <ins> driverList, err := client.List(context.TODO(), metav1.ListOptions{LabelSelector: "test=" + f.UniqueName}) </ins> framework.ExpectNoError(err) <del> framework.ExpectEqual(len(driverList.Items), numDriversAfter, "list should have %d items, got: %s", numDriversAfter, driverList) </del> <ins> framework.ExpectEqual(len(driverList.Items), 2, "filtered list should have 2 items, got: %s", driverList) </ins> ginkgo.By("deleting") <del> err = client.Delete(context.TODO(), createdDriver1.Name, metav1.DeleteOptions{}) framework.ExpectNoError(err) err = client.Delete(context.TODO(), createdDriver2.Name, metav1.DeleteOptions{}) framework.ExpectNoError(err) driverList, err = client.List(context.TODO(), metav1.ListOptions{}) framework.ExpectNoError(err) framework.ExpectEqual(len(driverList.Items), numDriversBefore, "list should have %d items, got: %s", numDriversBefore, driverList) </del> <ins> for _, driver := range driverList.Items { err := client.Delete(context.TODO(), driver.Name, metav1.DeleteOptions{}) framework.ExpectNoError(err) retrievedDriver, err := client.Get(context.TODO(), driver.Name, metav1.GetOptions{}) switch { case apierrors.IsNotFound(err): // Okay, normal case. case err != nil: framework.Failf("expected 404, got %#v", err) case retrievedDriver.DeletionTimestamp != nil: // Okay, normal case. default: framework.Failf("CSIDriver should have been deleted or have DeletionTimestamp, but instead got: %s", retrievedDriver) } } </ins> }) // TODO: promote to framework.ConformanceIt
Change:
when i rollout undo a pause deployment, it prints a command without namespace. Then i copy and run, it failed with a not found error. it should print a command that can be run correctly. kubectl rollout pause a deployment, then kubectl rollout undo it. copy the command in printed message. No response <details25.0 </details<detailsno </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
/sig cli

Discussion:
return printTemplate(&rsForRevision.Spec.Template) } if deployment.Spec.Paused { <del> return "", fmt.Errorf("you cannot rollback a paused deployment; resume it first with 'kubectl rollout resume deployment/%s' and try again", name) </del> <ins> return "", fmt.Errorf("you cannot rollback a paused deployment; resume it first with 'kubectl rollout resume' and try again") </ins> } // Skip if the revision already matches current Deployment
Change:
[X] Test approval issue: [X] Test PR: 27 Aug 2022 [x] Two weeks soak end date: 9 Sept 2022 [x] Test promotion PR: According to this APIsnoop query, there are still a remaining Namespace endpoint which is untested. replaceCoreV1Namespace Using a number of existing e2e test practices a new has been created for 1 Namespace endpoint. The e2e logs for this test are listed below. This query shows the following 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

Discussion:
framework.ExpectEqual(statusUpdated.Status.Conditions[len(statusUpdated.Status.Conditions)-1].Message, "Updated by an e2e test", "The Message returned was %v", statusUpdated.Status.Conditions[0].Message) framework.Logf("Status.Condition: %#v", statusUpdated.Status.Conditions[len(statusUpdated.Status.Conditions)-1]) }) <ins> ginkgo.It("should apply an update to a Namespace", func() { var err error var updatedNamespace *v1.Namespace ns := f.Namespace.Name cs := f.ClientSet ginkgo.By(fmt.Sprintf("Updating Namespace %q", ns)) err = retry.RetryOnConflict(retry.DefaultRetry, func() error { updatedNamespace, err = cs.CoreV1().Namespaces().Get(context.TODO(), ns, metav1.GetOptions{}) framework.ExpectNoError(err, "Unable to get Namespace %q", ns) updatedNamespace.Labels[ns] = "updated" updatedNamespace, err = cs.CoreV1().Namespaces().Update(context.TODO(), updatedNamespace, metav1.UpdateOptions{}) return err }) framework.ExpectNoError(err, "failed to update Namespace: %q", ns) framework.ExpectEqual(updatedNamespace.ObjectMeta.Labels[ns], "updated", "Failed to update namespace %q. Current Labels: %#v", ns, updatedNamespace.Labels) framework.Logf("Namespace %q now has labels, %#v", ns, updatedNamespace.Labels) }) </ins> }) func unstructuredToNamespace(obj *unstructured.Unstructured) (*v1.Namespace, error) {
Change:
[X] Test approval issue: [X] Test PR: 27 Aug 2022 [x] Two weeks soak end date: 9 Sept 2022 [x] Test promotion PR: According to this APIsnoop query, there are still a remaining Namespace endpoint which is untested. replaceCoreV1Namespace Using a number of existing e2e test practices a new has been created for 1 Namespace endpoint. The e2e logs for this test are listed below. This query shows the following 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

Discussion:
MUST cause pods created by that RC to be orphaned. release: v1.9 file: test/e2e/apimachinery/garbage_collector.go <ins> - testname: Namespace, apply update to a namespace codename: '[sig-api-machinery] Namespaces [Serial] should apply an update to a Namespace [Conformance]' description: When updating the namespace it MUST succeed and the field MUST equal the new value. release: v1.26 file: test/e2e/apimachinery/namespace.go </ins> - testname: Namespace, apply changes to a namespace status codename: '[sig-api-machinery] Namespaces [Serial] should apply changes to a namespace status [Conformance]'

framework.Logf("Status.Condition: %#v", statusUpdated.Status.Conditions[len(statusUpdated.Status.Conditions)-1]) }) <del> ginkgo.It("should apply an update to a Namespace", func() { </del> <ins> /* Release: v1.26 Testname: Namespace, apply update to a namespace Description: When updating the namespace it MUST succeed and the field MUST equal the new value. */ framework.ConformanceIt("should apply an update to a Namespace", func() { </ins> var err error var updatedNamespace *v1.Namespace ns := f.Namespace.Name
Change:
Reading TestRESTClientLimiter in I noticed a few things. test case struct is defined to have a name field, and its value is used in naming the subtests, but the actual test cases leave the name blank. error statements do not identify which case is failing (do not identify the expected value). Should be clear from the above. Read the code. No response_ <detailsbranch </details<detailsN/A </details<detailsN/A </details<details</details<details</details<details</details
/sig api-machinery
/assign
/triage accepted

Discussion:
Limiter flowcontrol.RateLimiter }{ { <ins> Name:    "with no QPS", </ins> Config:  Config{}, Limiter: flowcontrol.NewTokenBucketRateLimiter(5, 10), }, { <ins> Name:    "with QPS:10", </ins> Config:  Config{QPS: 10}, Limiter: flowcontrol.NewTokenBucketRateLimiter(10, 10), }, { <ins> Name:    "with QPS:-1", </ins> Config:  Config{QPS: -1}, Limiter: nil, }, { <ins> Name: "with RateLimiter", </ins> Config: Config{ RateLimiter: flowcontrol.NewTokenBucketRateLimiter(11, 12), },

t.Fatalf("unexpected error: %v", err) } if !reflect.DeepEqual(testCase.Limiter, client.rateLimiter) { <del> t.Fatalf("unexpected rate limiter: %#v", client.rateLimiter) </del> <ins> t.Fatalf("unexpected rate limiter: %#v, expected %#v at %s", client.rateLimiter, testCase.Limiter, testCase.Name) </ins> } }) t.Run("Unversioned_"+testCase.Name, func(t *testing.T) {

t.Fatalf("unexpected error: %v", err) } if !reflect.DeepEqual(testCase.Limiter, client.rateLimiter) { <del> t.Fatalf("unexpected rate limiter: %#v", client.rateLimiter) </del> <ins> t.Fatalf("unexpected rate limiter: %#v, expected %#v at %s", client.rateLimiter, testCase.Limiter, testCase.Name) </ins> } }) }
Change:
once the we hit a beta release, we can reset the default value for strict handling to false to prep for 1.26. /kind cleanup /priority important-soon /milestone v1.26 /assign /cc
/sig api-machinery
/triage accepted
Looks like Nov 10 ( ) <img width="946" alt="image" src="https://user-"
/milestone v1.26
please don't drop the milestone from issues without asking first... this is why CI is failing on master currently (my fault for not remembering to resolve this between beta and rc, sorry)
I removed all with code freeze and the ones back that got approved as exception request / are big fixes. Missed this one; sorry.

Discussion:
func NewResourceExpirationEvaluator(currentVersion apimachineryversion.Info) (ResourceExpirationEvaluator, error) { ret := &resourceExpirationEvaluator{ <del> // TODO https://github.com/kubernetes/kubernetes/issues/111972 set this back to false after beta is tagged. strictRemovedHandlingInAlpha: true, </del> <ins> strictRemovedHandlingInAlpha: false, </ins> } if len(currentVersion.Major) > 0 { currentMajor64, err := strconv.ParseInt(currentVersion.Major, 10, 32)
Change:
crio-e2e tests The following tests fail when run on a node with SELinux enabled: Probably since these tests were . No response The host path volumes created under /tmp/hostpathpv don't have the right SELinux label set for access by containers started during the test. No response_ /sig node
/triage accepted
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules: After 90d of inactivity, is applied After 30d of inactivity since was applied, is applied After 30d of inactivity since was applied, the issue is closed You can: Mark this issue or PR as fresh with Mark this issue or PR as rotten with Close this issue or PR with Offer to help out with [Issue Triage][1] Please send feedback to sig-contributor-experience at . /lifecycle stale [1]:
/remove-lifecycle stale

Discussion:
DefaultKubeletPluginContainersDirName    = "plugin-containers" DefaultKubeletPodResourcesDirName        = "pod-resources" KubeletPluginsDirSELinuxLabel            = "system_u:object_r:container_file_t:s0" <ins> KubeletContainersSharedSELinuxLabel      = "system_u:object_r:container_file_t:s0" </ins> DefaultKubeletCheckpointsDirName         = "checkpoints" )

"os" "regexp" <del> "k8s.io/mount-utils" </del> <ins> "github.com/opencontainers/selinux/go-selinux" </ins> v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/uuid" <ins> "k8s.io/kubernetes/pkg/kubelet/config" </ins> "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/kubernetes/pkg/volume/util/hostutil" "k8s.io/kubernetes/pkg/volume/util/recyclerclient" "k8s.io/kubernetes/pkg/volume/validation" <ins> "k8s.io/mount-utils" </ins> ) // ProbeVolumePlugins is the primary entrypoint for volume plugins.

pv.Spec.AccessModes = r.plugin.GetAccessModes() } <del> return pv, os.MkdirAll(pv.Spec.HostPath.Path, 0750) </del> <ins> if err := os.MkdirAll(pv.Spec.HostPath.Path, 0750); err != nil { return nil, err } if selinux.GetEnabled() { err := selinux.SetFileLabel(pv.Spec.HostPath.Path, config.KubeletContainersSharedSELinuxLabel) if err != nil { return nil, fmt.Errorf("failed to set selinux label for %q: %v", pv.Spec.HostPath.Path, err) } } return pv, nil </ins> } // hostPathDeleter deletes a hostPath PV from the cluster.
Change:
The port forwarding client leaks memory when a port forwarding session is reused over time. The port forwarder client should not leak memory. forwarding a port with kubectl. and close many connections to the forwarded port. The amount of memory leaked for each connection is quite small, so many connections are needed to observe the leak. This is related to , which was reported for the kubelet and fixed in . However, the same problem happens to the client. The client needs to call on the , otherwise the streams created by will be kept in memory until the port forwarder itself is closed, even if the streams themselves closed long before. <details</details<detailsN/A </details<details</details<details</details<details</details<details</details
/sig api-machinery
/cc /triage accepted
/cc

Discussion:
} // we're not writing to this stream errorStream.Close() <ins> defer pf.streamConn.RemoveStreams(errorStream) </ins> errorChan := make(chan error) go func() {

runtime.HandleError(fmt.Errorf("error creating forwarding stream for port %d -> %d: %v", port.Local, port.Remote, err)) return } <ins> defer pf.streamConn.RemoveStreams(dataStream) </ins> localError := make(chan struct{}) remoteDone := make(chan struct{})

closeChan   chan bool dataStream  *fakeStream errorStream *fakeStream <ins> streamCount int </ins> } func newFakeConnection() *fakeConnection {

func (c *fakeConnection) CreateStream(headers http.Header) (httpstream.Stream, error) { switch headers.Get(v1.StreamType) { case v1.StreamTypeData: <ins> c.streamCount++ </ins> return c.dataStream, nil case v1.StreamTypeError: <ins> c.streamCount++ </ins> return c.errorStream, nil default: return nil, fmt.Errorf("fakeStream creation not supported for stream type %s", headers.Get(v1.StreamType))

return c.closeChan } <del> func (c *fakeConnection) RemoveStreams(_ ...httpstream.Stream) { </del> <ins> func (c *fakeConnection) RemoveStreams(streams ...httpstream.Stream) { for range streams { c.streamCount-- } </ins> } func (c *fakeConnection) SetIdleTimeout(timeout time.Duration) {

// Test handleConnection pf.handleConnection(localConnection, ForwardedPort{Local: 1111, Remote: 2222}) <ins> assert.Equal(t, 0, remoteConnection.streamCount, "stream count should be zero") </ins> assert.Equal(t, "test data from local", remoteDataReceived.String()) assert.Equal(t, "test data from remote", localConnection.receiveBuffer.String()) assert.Equal(t, "Handling connection for 1111n", out.String())

// Test handleConnection, using go-routine because it needs to be able to write to unbuffered pf.errorChan pf.handleConnection(localConnection, ForwardedPort{Local: 1111, Remote: 2222}) <ins> assert.Equal(t, 0, remoteConnection.streamCount, "stream count should be zero") </ins> assert.Equal(t, "", remoteDataReceived.String()) assert.Equal(t, "", localConnection.receiveBuffer.String()) assert.Equal(t, "Handling connection for 1111n", out.String())
Change:
In GCE cluster startup, kubelet-start (which puts the cluster DNS server into the containerized mounter when the containerized mounter is enabled) race with prepare-mounter-rootfs (which copies the instance into the containerized mounter fs). This causes domain resolution from the containerized mounter to be flakey. No race to occur. Create a GCE cluster with the containerized mounter enabled. Create several nodes. The nameserver in the file in the mounter fs will not be the same. Note that while it appears the race has existed for a long time, it's only started to manifest around v1.23. No response <detailsv1.23+ </details<detailsGCE </detailsNo response No response No response No response
/sig storage /assign
/triage accepted

Discussion:
fi log-end 'SetupKubePodLogReadersGroupDir' <ins> # Note prepare-mounter-rootfs must be called before the kubelet starts, as # kubelet startup updates its nameserver. log-wrap 'PrepareMounterRootfs' prepare-mounter-rootfs </ins> log-wrap 'StartKubelet' start-kubelet if [[ "${KUBERNETES_MASTER:-}" == "true" ]]; then

fi fi log-wrap 'ResetMotd' reset-motd <del> log-wrap 'PrepareMounterRootfs' prepare-mounter-rootfs </del> # Wait for all background jobs to finish. wait