Skip to content

Client never gets a GOAWAY frame #1673

@zizhong

Description

@zizhong

currently, at the end of Http2ConnectionState::send_goaway_frame()

  http2_write_goaway(goaway, frame.write());
  frame.finalize(HTTP2_GOAWAY_LEN);

  // xmit event
  SCOPED_MUTEX_LOCK(lock, this->ua_session->mutex, this_ethread());
  this->ua_session->handleEvent(HTTP2_SESSION_EVENT_XMIT, &frame);

  handleEvent(HTTP2_SESSION_EVENT_FINI, NULL);

it calls handleEvent(HTTP2_SESSION_EVENT_FINI, NULL), which calls cleanup_streams() and release_stream(), then ua_session->destroy(), and then closes the client_vc. so GOAWAY frame cannot be send.

From the code and local test result, the client can never get a GOAWAY frame.

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