Skip to content

Crashes on Http1ClientTransaction::handleEvent #8604

@maskit

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.

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