GitHub user hopkings2008 opened a pull request: https://github.com/apache/trafficserver/pull/147
TS-3196: Core dump when handle event check_inactivity From the core dump, if we use ssl and spdy, so in the function 'ProtocolProbeTrampoline::ioCompletionEvent', it will first disable the read io adn handover the continuation of read.vio._cont from 'ProtocolProbeTrampoline' to 'SpdyClientSession' by below two steps: 1. first disable current io by using 'netvc->do_io_read(this, 0, NULL)'. 2. change the read.vio._cont by using 'probeParent->endpoint[key]>accept(netvc, this>iobuf, reader);' which will be 'SpdySessionAccept::accept' in our case. and in the end, it will call 'SpdyClientSession::state_session_start' which will call 'this->vc->do_io_read' to set read.vio._cont to SpdyClientSession. the main point is that the function 'SpdySessionAccept::accept' function will put an SpdyClientSession event into eventProcessor for net 'eventProcessor.schedule_imm(sm, ET_NET);' and because each 'net' thread will put a check_inactivity event into the queue So, in the end, between 'netvc->do_io_read(this, 0, NULL)' and spdy handler is set, the check_inactivity may be executed, and if so, the crash will occur. You can merge this pull request into a Git repository by running: $ git pull https://github.com/yahoo/trafficserver TS-3196 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/trafficserver/pull/147.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #147 ---- commit e943879c5961a18aa9146d32c805ae80a3a5d894 Author: zouyu <z...@yahoo-inc.com> Date: 2014-11-14T06:23:43Z TS-3196: Core dump when handle event check_inactivity ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---