When we close a memdclient we close the underlying tcp connection and we also release the connection back into the pool. A part of releasing the connection is that we reset the buffer, which sets internal bits to nil. If a close call returns an error then we immediately release the connection, and don't use the protection mechanism that we use on successful close to prevent a read happening after we release the connection. This means that a read can occur after we release the connection, triggering a panic.
|For Gerrit Dashboard: GOCBC-1387|
|186185,4||GOCBC-1387: Update memdclient close to wait for release channel||master||gocbcore||Status: MERGED||+2||+1|
|186476,2||GOCBC-1387: Update memdclient close to wait for release channel||v10.1||gocbcore||Status: MERGED||+2||+1|
|187144,2||MB-55288/MB-55498: Upgrade to firstname.lastname@example.org||master||cbgt||Status: MERGED||+2||+1|
|187145,2||MB-55288/MB-55498: Upgrade to email@example.com||master||cbft||Status: MERGED||+2||+1|