Change:
PR moved some PD tests to flaky to resolve issue (and duplicate ). These tests started failing due to PR . is working on a patch to de-flake the tests. This issue is to track the fix and should be closed when: PD tests have been deflaked (verify by running the "" e2e tests back to back for a couple of hours to verify the issue is fixed). flaky label has been removed from the "" tests that were marked flaky in CC
how to watch the submit queue and find if the flake is gone?
I don't know. is there any way can verify whether test is no longer flaky?
I'm not sure what the publicly accessible link for test history is. I took a look for you: Pod Disks should schedule a pod w/ a RW PD shared between multiple containers, write to PD, delete pod, verify contents, and repeat in rapid succession Failed 3 times in the last 30 runs. Stability: 90 % Pod Disks should schedule a pod w/two RW PDs both mounted to one container, write to PD, verify contents, delete pod, recreate pod, verify contents, and repeat in rapid succession Failed 1 times in the last 30 runs. Stability: 96 % I have a PR pending that enables the new attach/detach controller and I was able to run the tests back to back overnight without any failures. So once that gets merged, we can take a look at moving these tests back.
Something in PD attach/detach affects also 'Dynamic provisioning' e2e test, a PD is still attached to a node ~15 minutes after appropriate pod was deleted and thus deleter can't delete it. From controller log:
please take a look at https://k8s-
thanks so at least one of the flake has a different error than "container not found" In one, the error is
^^ the above seems like a possible bug in exec
^
The error to me indicates that the original container is no longer around as exec can't find the ipc namespace fd. Are we sure the container that we are trying to join is still around?
my memory is rusty but did you have an idea to randomize the container id in this pd test?
see the info here:
Close we will track this with

Discussion:
diskName, err := createPDWithRetry() framework.ExpectNoError(err, "Error creating PD") numContainers := 4 <del> host0Pod := testPDPod([]string{diskName}, host0Name, false /* readOnly */, numContainers) </del> <ins> var host0Pod *api.Pod </ins> defer func() { By("cleaning up PD-RW test environment") // Teardown pods, PD. Ignore errors. // Teardown should do nothing unless test failed. <del> podClient.Delete(host0Pod.Name, api.NewDeleteOptions(0)) </del> <ins> if host0Pod != nil { podClient.Delete(host0Pod.Name, api.NewDeleteOptions(0)) } </ins> detachAndDeletePDs(diskName, []string{host0Name}) }()

for i := 0; i < 3; i++ { framework.Logf("PD Read/Writer Iteration #%v", i) By("submitting host0Pod to kubernetes") <ins> host0Pod = testPDPod([]string{diskName}, host0Name, false /* readOnly */, numContainers) </ins> _, err = podClient.Create(host0Pod) framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err))

By("creating PD2") disk2Name, err := createPDWithRetry() framework.ExpectNoError(err, "Error creating PD2") <del> host0Pod := testPDPod([]string{disk1Name, disk2Name}, host0Name, false /* readOnly */, 1 /* numContainers */) </del> <ins> var host0Pod *api.Pod </ins> defer func() { By("cleaning up PD-RW test environment") // Teardown pods, PD. Ignore errors. // Teardown should do nothing unless test failed. <del> podClient.Delete(host0Pod.Name, api.NewDeleteOptions(0)) </del> <ins> if host0Pod != nil { podClient.Delete(host0Pod.Name, api.NewDeleteOptions(0)) } </ins> detachAndDeletePDs(disk1Name, []string{host0Name}) detachAndDeletePDs(disk2Name, []string{host0Name}) }()

for i := 0; i < 3; i++ { framework.Logf("PD Read/Writer Iteration #%v", i) By("submitting host0Pod to kubernetes") <ins> host0Pod = testPDPod([]string{disk1Name, disk2Name}, host0Name, false /* readOnly */, 1 /* numContainers */) </ins> _, err = podClient.Create(host0Pod) framework.ExpectNoError(err, fmt.Sprintf("Failed to create host0Pod: %v", err))