Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
0
Description
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.
Attachments
Gerrit Reviews
For Gerrit Dashboard: GOCBC-1387 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
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 gocbcore@v10.1.7 | master | cbgt | Status: MERGED | +2 | +1 |
187145,2 | MB-55288/MB-55498: Upgrade to gocbcore@v10.1.7 | master | cbft | Status: MERGED | +2 | +1 |