boulder
boulder copied to clipboard
Fix race in pause_identifier unittest
The admin pause-identifier subcommand and its associated unittests were introduced in https://github.com/letsencrypt/boulder/pull/7668 and improved in https://github.com/letsencrypt/boulder/pull/7689. We've now seen a CI unit test failure due to a data race in these new unit tests:
==================
WARNING: DATA RACE
Read at 0x00c00048a460 by goroutine 60:
github.com/letsencrypt/boulder/cmd/admin.(*mockSAPaused).PauseIdentifiers()
/boulder/cmd/admin/pause_identifier_test.go:91 +0x44
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier.go:84 +0x289
Previous write at 0x00c00048a460 by goroutine 53:
github.com/letsencrypt/boulder/cmd/admin.(*mockSAPaused).PauseIdentifiers()
/boulder/cmd/admin/pause_identifier_test.go:91 +0xf1
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier.go:84 +0x289
Goroutine 60 (running) created at:
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers()
/boulder/cmd/admin/pause_identifier.go:81 +0x51d
github.com/letsencrypt/boulder/cmd/admin.TestPauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier_test.go:188 +0x27b
testing.tRunner()
/usr/local/go/src/testing/testing.go:1689 +0x21e
testing.(*T).Run.gowrap1()
/usr/local/go/src/testing/testing.go:1742 +0x44
Goroutine 53 (finished) created at:
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers()
/boulder/cmd/admin/pause_identifier.go:81 +0x51d
github.com/letsencrypt/boulder/cmd/admin.TestPauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier_test.go:188 +0x27b
testing.tRunner()
/usr/local/go/src/testing/testing.go:1689 +0x21e
testing.(*T).Run.gowrap1()
/usr/local/go/src/testing/testing.go:1742 +0x44
==================
--- FAIL: TestSerialsFromFile (0.00s)
testing.go:[139](https://github.com/letsencrypt/boulder/actions/runs/10709127483/job/29693034354#step:6:140)8: race detected during execution of test
==================
WARNING: DATA RACE
Read at 0x00c00045e548 by goroutine 60:
runtime.growslice()
/usr/local/go/src/runtime/slice.go:155 +0x0
github.com/letsencrypt/boulder/cmd/admin.(*mockSAPaused).PauseIdentifiers()
/boulder/cmd/admin/pause_identifier_test.go:91 +0x7b
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier.go:84 +0x289
Previous write at 0x00c00045e548 by goroutine 53:
github.com/letsencrypt/boulder/cmd/admin.(*mockSAPaused).PauseIdentifiers()
/boulder/cmd/admin/pause_identifier_test.go:91 +0xa4
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier.go:84 +0x289
Goroutine 60 (running) created at:
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers()
/boulder/cmd/admin/pause_identifier.go:81 +0x51d
github.com/letsencrypt/boulder/cmd/admin.TestPauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier_test.go:188 +0x27b
testing.tRunner()
/usr/local/go/src/testing/testing.go:1689 +0x21e
testing.(*T).Run.gowrap1()
/usr/local/go/src/testing/testing.go:1742 +0x44
Goroutine 53 (finished) created at:
github.com/letsencrypt/boulder/cmd/admin.(*admin).pauseIdentifiers()
/boulder/cmd/admin/pause_identifier.go:81 +0x51d
github.com/letsencrypt/boulder/cmd/admin.TestPauseIdentifiers.func1()
/boulder/cmd/admin/pause_identifier_test.go:188 +0x27b
testing.tRunner()
/usr/local/go/src/testing/testing.go:[168](https://github.com/letsencrypt/boulder/actions/runs/10709127483/job/29693034354#step:6:169)9 +0x21e
testing.(*T).Run.gowrap1()
/usr/local/go/src/testing/testing.go:1742 +0x44
==================
--- FAIL: TestPauseIdentifiers (0.00s)
--- FAIL: TestPauseIdentifiers/valid_multiple_entries_with_duplicates (0.00s)
testing.go:1398: race detected during execution of test
--- FAIL: TestPauseIdentifiers/valid_single_entry_but_broken_SA (0.00s)
testing.go:1398: race detected during execution of test
--- FAIL: TestRevokeSerials (0.00s)
testing.go:1398: race detected during execution of test
--- FAIL: TestReadingUnpauseAccountsFile (0.00s)
testing.go:1398: race detected during execution of test
--- FAIL: TestUnpauseAccounts (0.00s)
testing.go:1398: race detected during execution of test
--- FAIL: TestReadingPauseCSV (0.00s)
testing.go:1398: race detected during execution of test
FAIL
FAIL github.com/letsencrypt/boulder/cmd/admin 0.046s