x/net/context/ctxhttp: implementation for <1.7 may not be correct #16668
Labels
FrozenDueToAge
WaitingForInfo
Issue is not actionable because of missing required information, which needs to be provided.
I dont think the ctx implementation in go 1.6 is semantically correct
https://github.com/golang/net/blob/master/context/ctxhttp/ctxhttp_pre17.go
It simply start a goroutine to do the request and discard response
It will send request first and the peer will receive the request and make response, which will make some mistake in some specific situations
Like a MQ server will consider A client has been received message so that the message cannot be consumed by B client who should have received this message.
consider following flow:
A
client, but the requestR
is under flying, forR
is a blocking requestB
and send a messageM
A
client may have chance to receive the messageM
for we cannot determine who will receive the message, so i have to wait allA
's requests fail then start B which may a waste of timeThe text was updated successfully, but these errors were encountered: