Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20.10 backport] fix race condition in TestRemoveForce #3753

Merged

Commits on Aug 26, 2022

  1. fix race condition in TestRemoveForce

    This test uses two subtests that were sharing the same variable.
    Subtests run in a goroutine, which could lead to them concurrently
    accessing the variable, resulting in a panic:
    
        === FAIL: cli/command/container TestRemoveForce/without_force (0.00s)
        Error: Error: No such container: nosuchcontainer
            --- FAIL: TestRemoveForce/without_force (0.00s)
        panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        	panic: runtime error: invalid memory address or nil pointer dereference
        [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x40393f]
        goroutine 190 [running]:
        testing.tRunner.func1.2({0xb76380, 0x124c9a0})
        	/usr/local/go/src/testing/testing.go:1389 +0x24e
        testing.tRunner.func1()
        	/usr/local/go/src/testing/testing.go:1392 +0x39f
        panic({0xb76380, 0x124c9a0})
        	/usr/local/go/src/runtime/panic.go:838 +0x207
        sort.StringSlice.Less(...)
        	/usr/local/go/src/sort/sort.go:319
        sort.insertionSort({0xd87380, 0xc00051b3b0}, 0x0, 0x2)
        	/usr/local/go/src/sort/sort.go:40 +0xb1
        sort.quickSort({0xd87380, 0xc00051b3b0}, 0x18?, 0xb4f060?, 0xc000540e01?)
        	/usr/local/go/src/sort/sort.go:222 +0x171
        sort.Sort({0xd87380, 0xc00051b3b0})
        	/usr/local/go/src/sort/sort.go:231 +0x53
        sort.Strings(...)
        	/usr/local/go/src/sort/sort.go:335
        github.com/docker/cli/cli/command/container.TestRemoveForce.func2(0xc0005389c0?)
        	/go/src/github.com/docker/cli/cli/command/container/rm_test.go:36 +0x125
        testing.tRunner(0xc00053e4e0, 0xc00051b140)
        	/usr/local/go/src/testing/testing.go:1439 +0x102
        created by testing.(*T).Run
        	/usr/local/go/src/testing/testing.go:1486 +0x35f
        === FAIL: cli/command/container TestRemoveForce (0.00s)
    
    This patch changes the test to use to separate variables.
    
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    (cherry picked from commit 9688f62)
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 26, 2022
    Copy the full SHA
    6b25bc3 View commit details
    Browse the repository at this point in the history