Fix chromedp shutdown temporary file race condition #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In some situations, cleanup of an otherwise successful test suite fails with the error
[FAILED] DeferCleanup callback returned error: unlinkat /tmp/ginkgo$RANDOMID/Default: directory not emptyreported to be at
$GOPATH/pkg/mod/github.com/onsi/ginkgo/v2@v2.14.0/internal/testingtproxy/testing_t_proxy.go:153As best I can tell, this is a result of the spawned chrome instance writing a temporary file after ginkgo attempts to run a
DeferCleanup-edos.Removeon its directory as a result of a race condition.This patch, at least empirically, fixes this by calling
chromedp.Cancelwhich, according to its docstring, ensures chrome is cleaned up before returning.As a test, a test suite which would previously fail with this error at a rate of about 1 in 10 was run with
--until-it-failsfor 10 minutes without error. Removing this line and running again resulted in a failure within a minute.