Skip to content
  • Thayumanavar S's avatar
    79ed5d7e
    BUG#21906010 - ASSERT DIAGNOSTICS_AREA::SET_EOF_STATUS(THD) ! IS_SET() FOR HANDLERS · 79ed5d7e
    Thayumanavar S authored
    Problem Description & Fix:
    When KILL CONNECTION is done on a client that has initiated a
    HANDLER READ operation, it results in an assert in debug builds.
    The assert happens when sending EOF back to client. During
    kill connection, we close the client write end socket descriptor
    on the server and this triggers a write error and sets the
    diagnostic area of the client connection handle with the
    ER_NET_ERROR_ON_WRITE. This failure is not handled in the
    HANDLER READ code paths. Hence we send EOF back to client
    but the Diagnostics Area is non empty thereby resulting in
    an assert in Debug Builds. In release builds, there shall
    be no asserts and the client won't see the error.
    The fix is to handle the return values of network write error
    in the HANDLER .. READ code paths.
    79ed5d7e
    BUG#21906010 - ASSERT DIAGNOSTICS_AREA::SET_EOF_STATUS(THD) ! IS_SET() FOR HANDLERS
    Thayumanavar S authored
    Problem Description & Fix:
    When KILL CONNECTION is done on a client that has initiated a
    HANDLER READ operation, it results in an assert in debug builds.
    The assert happens when sending EOF back to client. During
    kill connection, we close the client write end socket descriptor
    on the server and this triggers a write error and sets the
    diagnostic area of the client connection handle with the
    ER_NET_ERROR_ON_WRITE. This failure is not handled in the
    HANDLER READ code paths. Hence we send EOF back to client
    but the Diagnostics Area is non empty thereby resulting in
    an assert in Debug Builds. In release builds, there shall
    be no asserts and the client won't see the error.
    The fix is to handle the return values of network write error
    in the HANDLER .. READ code paths.
Loading