|
Ran
|
Jobs
1
|
Files
306
|
Run time
29s
|
Badge
README BADGES
|
push
travis-ci
iproto: don't destroy a session during disconnect Binary session disconnect trigger yield could lead to use after free of the session object. That happened because iproto thread sent two requests to TX thread at disconnect: - Close the session and run its on disconnect triggers; - If all requests are handled, destroy the session. When a connection is idle, all requests are handled, so both these requests are sent. If the first one yielded in TX thread, the second one arrived and destroyed the session right under the feet of the first one. This can be solved in two ways - in TX thread, and in iproto thread. Iproto thread solution (which is chosen in the patch): just don't send destroy request until disconnect returns back to iproto thread. TX thread solution (alternative): add a flag which says whether disconnect is processed by TX. When destroy request arrives, it checks the flag. If disconnect is not done, the destroy request waits on a condition variable until it is. The iproto is a bit tricker to implement, but it looks more correct. Closes #4627 (cherry picked from commit 6da9d3953)
18 of 18 new or added lines in 1 file covered. (100.0%)
41711 of 50564 relevant lines covered (82.49%)
830670.53 hits per line
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 4 | 19598.4 (TARGET=coverage) | 0 |
82.49 |
Travis Job 19598.4 |