Skip to content

go/types: data race due to lazy interface completion #47726

Closed
@findleyr

Description

@findleyr

Sample failure:

https://build.golang.org/log/66aed38eb7030ee6db09e17179d26ce42d59b316

Lazy interface completion causes data races in x/tools. We need to either make interface completion concurrency-safe, or ensure that all interfaces that escape the Checker have been completed.

CC @griesemer

Activity

added
NeedsFixThe path to resolution is known, but the work has not been done.
SoonThis needs action soon. (recent regressions, service outages, unusual time-sensitive situations)
on Aug 16, 2021
added this to the Go1.18 milestone on Aug 16, 2021
griesemer

griesemer commented on Aug 16, 2021

@griesemer
Contributor

Is this because Interface.Complete is not doing anything anymore? That is, would it be sufficient to revert that change? Or is it a bigger problem?

findleyr

findleyr commented on Aug 16, 2021

@findleyr
MemberAuthor

Is this because Interface.Complete is not doing anything anymore? That is, would it be sufficient to revert that change? Or is it a bigger problem?

Necessary but not sufficient. Here's a failure at the dev.typeparams merge:
https://build.golang.org/log/53e6ff359c770b04ed89035e59f2038b3d87268e

gopherbot

gopherbot commented on Aug 16, 2021

@gopherbot
Contributor

Change https://golang.org/cl/342710 mentions this issue: Revert "go/types: make Interface.Complete a no-op"

gopherbot

gopherbot commented on Aug 17, 2021

@gopherbot
Contributor

Change https://golang.org/cl/342749 mentions this issue: go/types: check if the interface is already complete in Complete

findleyr

findleyr commented on Aug 17, 2021

@findleyr
MemberAuthor

I believe this is fixed now, but I'll leave it open for visibility in case there are any additional flakes in the race builders.

Will close tomorrow if no additional failures.

findleyr

findleyr commented on Aug 17, 2021

@findleyr
MemberAuthor

Closing as the build dashboard looks clean.

locked and limited conversation to collaborators on Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.SoonThis needs action soon. (recent regressions, service outages, unusual time-sensitive situations)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @griesemer@gopherbot@findleyr

        Issue actions

          go/types: data race due to lazy interface completion · Issue #47726 · golang/go