I found that in many places in the code, the struct object containing the map field will be directly passed in as a log parameter, which will trigger the iteration of the map when logging, but the map is not locked, so there is a hidden danger of triggering a panic.
internal.Logger.Printf(
ctx, "redis: %s channel is full for %s (message is dropped)",
c, c.chanSendTimeout)
The error is reported as above.
I found that in many places in the code, the struct object containing the map field will be directly passed in as a log parameter, which will trigger the iteration of the map when logging, but the map is not locked, so there is a hidden danger of triggering a panic.