That’s not only a read/write race, it’s also a write/write race. Every
request to the server creates a new Go routine that might increment
newConns in parallel, so it may get corrupted. Same for lines 39/40.

You might claim, that for infrastructural reasons, there can be no
concurrent requests to your server, but that would just mean that the race
is not triggered, it’s there nevertheless.

Caleb Spare <cesp...@gmail.com> schrieb am Mi. 7. Juni 2023 um 01:31:

> 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.
>
> 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/CAFwXxZSzEUtf9M-b0nNYa%2B%3DiaxK%2BmfnJk%3DASKDp1kj2Cx7WqQA%40mail.gmail.com.

Reply via email to