You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My guess is that there is some call to newInterface (e.g. here) that isn't finalized by setting of tset, causing the incomplete interface to be exposed. When it is accessed concurrently during type-checking of two dependent packages, both race to fill in the type set.
Thanks Matt, this did appear to be the cause. I had initially suspected a second root cause because I didn't realize this test uses export data, but then I remembered that it doesn't use facts, allowing it to optimize by reading export data instead of syntax. Adding a nonempty FactTypes list to the checker_test.go caused the race to go away, and the cause and effect were confirmed in an A/B/A/B test.
See https://farmer.golang.org/try?commit=79d5f0e3, linux-amd64-race
Change-ID: I0576d03fcfffe0c8df157cf6c6520c9d402f8803
Commit: 79d5f0e35886839bd2f67d2485de47566d51ca26
Log: https://storage.googleapis.com/go-build-log/e4bed415/linux-amd64-race_db9e5b45.log
The first example is typical:
The text was updated successfully, but these errors were encountered: