Merge pull request #1952 from carsonip/fix-epoll-hang-2

Do not move throttled session to epoll
pull/1926/head
René Cannaò 7 years ago committed by GitHub
commit b84271f82d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2910,7 +2910,9 @@ __mysql_thread_exit_add_mirror:
if (myds->DSS==STATE_SLEEP && myds->sess->status==WAITING_CLIENT_DATA) {
unsigned long long _tmp_idle = mypolls.last_recv[n] > mypolls.last_sent[n] ? mypolls.last_recv[n] : mypolls.last_sent[n] ;
if (_tmp_idle < ( (curtime > (unsigned int)mysql_thread___session_idle_ms * 1000) ? (curtime - mysql_thread___session_idle_ms * 1000) : 0)) {
if (myds->sess->client_myds == myds && myds->PSarrayOUT->len==0 && (myds->queueOUT.head - myds->queueOUT.tail)==0 ) { // extra check
// make sure data stream has no pending data out and session is not throttled (#1939)
// because epoll thread does not handle data stream with data out
if (myds->sess->client_myds == myds && !myds->available_data_out() && myds->sess->pause_until <= curtime) {
unsigned int j;
int conns=0;
for (j=0;j<myds->sess->mybes->len;j++) {

Loading…
Cancel
Save