On Tue, Jun 6, 2023 at 5:31 PM Caleb Spare <cesp...@gmail.com> wrote:
> Can someone explain why the following test shows a race between the > indicated lines? > > > https://github.com/cespare/misc/blob/b2e201dfbe36504c88e521e02bc5d8fbb04a4532/httprace/httprace_test.go#L12-L43 > > The race seems to be triggered by the very last line of the test: > > get(client1) > > If I comment that out, then the race detector doesn't complain. But > then it seems that a read of a variable which happens before an HTTP > request which causes a write of the variable ultimately races with the > original read, which doesn't make sense. > I ran that test. As you said, the race detector complains about the concurrent write to a variable that was read before in another goroutine. It is technically what the race detector calls a race because it is unsynchronized concurrent access to a shared variable. It does look like a false-positive though. > > It seems like a false positive (perhaps the race detector doesn't > understand causality across a TCP connection?), but so far I've never > seen the race detector have a false positive, so I think I must be > missing something. > > I wrote a slightly simpler test (see TestHTTPRace2 right below in the > same file) which tries to make the race happen using a regular HTTP > handler and a single client and the race detector doesn't complain. > > Caleb > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAGeFq%2B%3DZGE5agaLYDgsdYvykbaWwHgjtKJf9q%2B1YJhR26%3DY45Q%40mail.gmail.com > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAMV2Rqpj%2BpGo49kbfWp%2BF4WrdP_xYpKyjfWuLaOx9vi8hQ1Nhw%40mail.gmail.com.