Skip to content

Crashes on Http1ClientTransaction::handleEvent #8604

Description

@maskit

We've been seeing crashes on 9.2.x.

(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x0000564a7fd24e3a in handleEvent (this=<optimized out>, event=105, data=0x7f588a566ee0)
    at /path/to/ats/iocore/eventsystem/I_Continuation.h:219
#2  read_signal_and_update(int, UnixNetVConnection*) (event=105, vc=0x7f588a566cf0) at UnixNetVConnection.cc:83
#3  0x0000564a7fd25912 in UnixNetVConnection::mainEvent(int, Event*) (this=0x7f588a566cf0, event=<optimized out>, e=<optimized out>)
    at UnixNetVConnection.cc:1116
#4  0x0000564a7fd14dc0 in InactivityCop::check_inactivity(int, Event*) (this=0x7f992e0d0000, event=<optimized out>, e=0x7f9936b6efc0) at UnixNet.cc:96
#5  0x0000564a7fd4718b in handleEvent (this=<optimized out>, event=2, data=0x7f9936b6efc0) at ./I_Continuation.h:219
#6  EThread::process_event(Event*, int) (this=0x7f993580dc80, e=0x7f9936b6efc0, calling_code=2) at UnixEThread.cc:164
#7  0x0000564a7fd47bdd in EThread::execute_regular() (this=0x7f993580dc80) at UnixEThread.cc:273
#8  0x0000564a7fd48049 in EThread::execute() (this=0x7f993580dc80) at UnixEThread.cc:364
#9  0x0000564a7fd463d6 in spawn_thread_internal(void*) (a=0x7f99380506d0) at Thread.cc:91

I looked int the core file and found that handler is nullptr in handleEvent().

TS_INLINE int
handleEvent(int event = CONTINUATION_EVENT_NONE, void *data = nullptr)
{
// If there is a lock, we must be holding it on entry
ink_release_assert(!mutex || mutex->thread_holding == this_ethread());
return (this->*handler)(event, data);
}

The continuation (this in the code above) seems to be Http1ClientTransaction, and it doesn't make sense to me because Http1ClientTransaction doesn't have code for event handling.

I'm not 100% sure yet, but I suspect #7956 that passes Http1ClientTransaction to do_io_read is causing the crashes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions